由买买提看人间百态

topics

全部话题 - 话题: templating
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
M**********n
发帖数: 432
1
来自主题: Programming版 - question on template and inheritance?
Suppose we have the following declaration:
template
class Derived: public Base::Nested {
......
For this declaration,
Is Base or Nested the class name for the base?
If base is base class name, then what is Nested?
If Nested is the base class name, what is Base?
M**********n
发帖数: 432
2
来自主题: Programming版 - question on template and inheritance?
You are saying namespace can also be templated?
P********e
发帖数: 2610
3
来自主题: Programming版 - question on template and inheritance?
我估计你程序应该是这样的
template
class Base
{
pulic: class Nested{};
};
所以Nested is base
r*********r
发帖数: 3195
4
来自主题: Programming版 - How does template work in C++
c++ uses type expansion. java uses type erasure. exactly opposite.
c++'s way may lead to code bloating.
but c++'s template uses integers as type parameters,
which makes the mechanism Turing complete.
n**d
发帖数: 9764
5
来自主题: Programming版 - Default function template arguments
My questionn is how to understand the "words" from the book. N=100 is about
the default parameter, but I don't think the "words" is talking about it. In
fact, you can not have (int N) as function template parameter.

,
t****t
发帖数: 6806
6
来自主题: Programming版 - template question
MyVector::Iterator is a dependent type, so use the keyword "typename"
template
typename MyVector::Iterator MyVector::begin()
// same for end
// <<
{
typename MyVector::Iterator iter;
....
w******g
发帖数: 67
7
来自主题: Programming版 - C++ question about template typedef
I have a question about template typedef. The question is that I want to use
the data structure like map>.
So I define the following:
#ifndef DATATEMPLATE_H_
#define DATATEMPLATE_H_
#include
#include
using namespace std;
/***************************************************************************
***********************************
* The following code define the type"MapOfVec"
* Map >
*
* Note: KeyType, ElementType are si
B********e
发帖数: 1062
8
来自主题: Programming版 - C++ question about template typedef
template
struct MapofVec{
typedef vector VecType;
typedef typename vector::iterator VecIter;
typedef map MapType;
typedef typename map::iterator MapIter;
};

use
**
B********e
发帖数: 1062
9
来自主题: Programming版 - C++ question about template typedef
This may work.
template
class MapOfVec{
public:
typedef vector VecType;
typedef typename vector::iterator VecIter;
typedef map MapType;
typedef typename map::iterator MapIter;
void print(MapType& map);
};

agian.
w******g
发帖数: 67
10
来自主题: Programming版 - C++ template problem
Yes, it works when I put both the declaration and implementation in the head
file, like:
In DataTemplate.h:
template
ElemType* getVecElemPointer(int index, vector& vec)
{
if( (index0) )
{
return &vec[index];
}
return (ElemType*) 0;
}
The linkage works. Can you explain why? Thanks.
w******g
发帖数: 67
b***y
发帖数: 2799
12
来自主题: Programming版 - [合集] 关于C++ Class Template编程一问
☆─────────────────────────────────────☆
qr (非凡公子) 于 (Fri Apr 11 18:03:21 2008) 提到:
我想在一个class的constructor里面初始化某些数据,希望这些数据类型可以是float
或者double的,现在的问题是如果我把constructor写在xxx.h文件中,程序不报错。但
是如果单独写在xxx.cpp中,然后include xxx.h中的declartion,在主程序中再调用这
个xxx.h然后定义该class的一个实例,编程器总是报告link错误,说这个constrctor函
数是unresolved external symbol。如果把程序改成正常的class就没有这个问题,百
思不得其解,请高手赐教。
☆─────────────────────────────────────☆
jobseek (seeking+jobs) 于 (Fri Apr 11 18:23:00 2008) 提到:
这是template的毛病,
得把declaration and definit
b***y
发帖数: 2799
13
☆─────────────────────────────────────☆
TonnyZB (Hallo) 于 (Sat Sep 24 16:01:42 2005) 提到:
can someone recommend a C++ book esp. on template? Thanks!
以下是附件内容:
b***y
发帖数: 2799
14
来自主题: Programming版 - [合集] C++ template question
☆─────────────────────────────────────☆
crystalike (Vader) 于 (Mon Sep 26 16:46:54 2005) 提到:
I sort of remember that there is a occation that you have to use
this pointer to access the member func in a template class.
this->foo () ...
just can not remember exactly how and why?
anyone got the idea?
☆─────────────────────────────────────☆
pptwo (pp) 于 (Mon Sep 26 17:50:42 2005) 提到:
http://gcc.gnu.org/onlinedocs/gcc-4.0.1/gcc/Name-lookup.html#Name-lookup

☆─────────────────────────────────
t****t
发帖数: 6806
15
来自主题: Programming版 - template 类的继承问题
因为编译器不知道到哪里去找numarray
base类是个模板, 在template parameter确定以前, 不能肯定有什么, 所以缺省是不找
base类的. 你必须显式声明numarray 是个dependent name, 才能让编译器暂时忽略这
个找不到的名字.
g*****u
发帖数: 298
16
来自主题: Programming版 - C++ template function一个问题
想打印一个STL container里的元素,但不知道是哪种container,应该怎么写?写成下
面的G++编译不通过,VC8可以。
template
void printContainer(ostream& os, const T& con)
{
T::const_iterator iter = con.begin();
while(iter != con.end())
{
os<<*iter<<" ";
iter++;
}
os< }
a*n
发帖数: 32
17
来自主题: Programming版 - C++ template function一个问题
How about use copy?
template
void printContainer(ostream& os,const T& con)
{
ostream_iterator out(os," ");
copy(con.begin(), con.end(),out);
}
X****r
发帖数: 3557
18
来自主题: Programming版 - 一个C++ template的问题
是我用词不当,instantiation这个词在C++里专用的,我指的是创建对象。
只有类(class)才能用来创建对象,类模板(class template)不能。
y****i
发帖数: 23
19
来自主题: Programming版 - 问个c++的template的问题
假设要写一个通用类型的binary search tree
class的定义大致是这样子的
template
class BST{
private:
T key;
T * left;
T * right;
public:
insert...
delete...
}
问题是,在写插入算法的时候牵涉到数据的比较,但是T啥类型我们又不知道,有可能
int,也有可能是struct,怎么比较两个T类型的变量呢?
t****t
发帖数: 6806
20
来自主题: Programming版 - 问个c++的template的问题
参考STL的做法.
STL的做法是在模板参数里提供一个compare类型, 有缺省值, 比如map
template , ...>
class map { ... };
less::operator()(T, T)对于大多数类型, 就是operator<.
对于struct S, 你可以提供
bool operator<(const S&, const S&)
或者你不想要<, 你想要>, 可以写map >
y****i
发帖数: 23
21
来自主题: Programming版 - 问个c++的template的问题
我明白你的意思啦,多谢。
从你的建议的提示,我想到可以这么做
template
class BST{
.....
}
在T的定义里面overload <,>,=这些需要用到的operator
这样在class BST里面就可以直接比较两个T类型的变量
z****e
发帖数: 2024
22
来自主题: Programming版 - template 疑问
template
void apply(Seq& sq, R(T::*f)(A) const, A a) {
typename Seq::iterator it = sq.begin();
while(it != sq.end())
((*it++)->*f)(a);
}
请问
1. how does the compiler understand T::*f? a member function of T, which
returns R and take A? what does "f" represent?
2. if i change T::*f to be T::*g, all other code remain the same, is this
still alright?
s*****g
发帖数: 5159
23
来自主题: Programming版 - A C++ template question
I am a beginner of C++ template, in the follow piece of code:
s*****g
发帖数: 5159
24
来自主题: Programming版 - C++ Template Question
I tried and this this does now work.
vector *p must have template defined at declaration.
I am also thinking of using typedef, but I do not know if there is a type fo
r variables's type, like
d*******n
发帖数: 524
25
来自主题: Programming版 - 关于template的这个做法可以么?
写了段code,编译通不过,怀疑是如下原因导致的。
我有个template,叫做
TTT
然后我定义了一个class A,在这个class,我定义了如下指针:
TTT * pTTT;
注意,上面这一行是写在A的定义里面的,即“A.h”里面。
这样做合法么?
如果不合法,那我在class A里面需要指向TTT类型的class的话怎么办呢?
X****r
发帖数: 3557
26
来自主题: Programming版 - [请教]friend class in C++ template
Before defining class Job, forward-declare class Scheduler:
template class Scheduler;
z****e
发帖数: 2024
27
来自主题: Programming版 - C++ template question
template std::ostream& operator<< (std::ostream& , const
Rational& );
把operator<<后边的去掉。
你加上,是一个specialization的形式, 但是无从specialize 起,本身就错误的语法。
另外,你根本不需要friend呀,都是通过公有interface干的事情。
如果class里边没有,是一个普通函数,你没定义过,编译器找不到。
或者你根本用不着模板,就直接把friend定义class里边,也不用,也不用forward delcare,这样,每次,class模板生成一次,都新生成一个overload friend,的普通函数。
明白否?
z****e
发帖数: 2024
28
来自主题: Programming版 - C++ template question
如果你是编译器,看到forward 已经就是一个模板了,紧接着后面又看到一个,作
何感想?
template std::ostream& operator<<, 明明白白说了是个模板,后面再
加一个是画蛇添足吗?但是善良的编译器,会最大耐心的去理解你,会认为你是最
有聪明才智的人,不会犯这种错误,肯定是你有特殊的目的,才会告诉编译器,这不仅
仅是个模板,而且要用类型T,这个特殊的目的就是specialization。
但是,编译器猛然发现,你根本没有定义普通形式的模板,而且这个类型也不存在
,啊!原来你刷我,我就和死磕。
y***a
发帖数: 840
29
来自主题: Programming版 - recursive template?
is this related with something called generative template?
I wish I attended the programming language courses when I was in school.

static
templa
mu
t****t
发帖数: 6806
30
来自主题: Programming版 - recursive template?
template
A foo(const A&, const A&);
isn't it straightforward?

T
c***d
发帖数: 996
31
来自主题: Programming版 - static variable in template header
in c++:
Orange.h:
#include "fruit.h"
class Orange : public fruit {
}
Apple.h:
#include "fruit.h"
class Apple : public fruit {
}
fruit.h:
class fruit {
static string brand;
}
string fruit:brand = "dole";
if I compile this I will get multiple definition error at linking phrase. I
can not move the static variable definition to a cpp file since it is a
template file which i can not change. What would be a sensible way to work
around this?
r****t
发帖数: 10904
32
来自主题: Programming版 - static variable in template header
可能没有 fruit.o 给你 link,他这个是 template header
z****e
发帖数: 2024
33
来自主题: Programming版 - 问个template
我就是不行啊,没经验,没工作,一穷二白。
基本的也不清楚了。
template不也重复定义了吗?如果在很多cpp里边include的话,难道不算重复定义?
X****r
发帖数: 3557
34
来自主题: Programming版 - 问个template
好,那我问你,先不说template,就是一个普通的class,它在头文件里定义的,
被很多cpp包含,算不算重复定义?
X****r
发帖数: 3557
35
来自主题: Programming版 - 问个template
从C++语言的角度讲,one definition rule有两个主要方面:
一是在同一个translation unit里面,几乎所有东西都最多只能定义一次。
二是在同一个程序里,几乎所有被用到的对象和非inline的函数必须定义恰好一次。
两条都有一些例外,比如就class template来说,它的静态数据成员可以不符合二。
z****e
发帖数: 2024
36
来自主题: Programming版 - 也问个template 的问题(C++)
see: template specialization.
t****t
发帖数: 6806
37
来自主题: Programming版 - 也问个template 的问题(C++)
that's not the correct chapter to refer to. check [14.3.2 Template non-type
arguments].
c**********e
发帖数: 2007
38
来自主题: Programming版 - C++ Q04: template member
#include
using namespace std;
void f() { cout << "::f" << endl; }
struct P {
void f() { cout << "P::f" << endl; }
};
template
struct X : public T {
void g1() { f(); }
};
int main()
{
X

x;
x.g1();
return 0;
}
Choices
a. ::f
b. P::f
c. The program exhibits undefined behavior.

a****d
发帖数: 114
39
来自主题: Programming版 - 一个关于C++ template和overload的问题
第一个版本里面的template也有const啊。。。
为了不混淆我小改了一下。

value, compiler 用 0 所以能 const int
的了。高人能不能从 standard 里面找
j***i
发帖数: 1278
40
来自主题: Programming版 - 一个关于C++ template和overload的问题
我想的是,template instantiation 也是visable 的overload resolution candidate
set,when T is binded to int* , is matched
j***i
发帖数: 1278
41
来自主题: Programming版 - 一个关于C++ template和overload的问题
another question, if const is just delete,
in first function both templalte and plain function becomes int*, they
we should prefer plain function instead of template
I am comfusing now, master

candidate
p********7
发帖数: 549
42
来自主题: Programming版 - 问个C++ TEMPLATE 的问题
这个也算基本问题? template我经常用,没看到这么用的啊
我猜的是C,不知道是不是
w********i
发帖数: 244
43
Deal All,
Project Management Source Codes | Template bassed on .net. Please recommend
one!!!
Thank you very much!!!
d****p
发帖数: 685
44
来自主题: Programming版 - no partial specialize function templates?
Yes. function template could not be partially specialized
r*******m
发帖数: 109
45
来自主题: Programming版 - C++ template Questions (转载)
template
typename Container::value_type
Reduce(const Container& c, Function fn)
{
if (c.size()<1) throw NotEnoughElement();
typename Container::value_type T(0);
for (typename Container::const_iterator it=c.begin();it!=c.end();++it)
T=fn(T,*it);
return T;
}
b**a
发帖数: 1375
46
下面这个function在visual studio 2010下没问题
template
typename T::value_type reduce(const T& t, Fn f)
{
T::value_type result = *t.begin();
T::const_iterator it=t.begin();
for (++it; it!=t.end(); ++it)
result = f(result, *it);
return result;
}
调用的话比如:
vectorv;
v.push_back(1); v.push_back(2); v.push_back(3);
cout << reduce(v, plus())< 但是在linux的gcc(4.1 -> 4.6)下出现好几个类似
error: need ‘typename’ before ‘T:: value_type’ becau... 阅读全帖
b******n
发帖数: 592
47
来自主题: Programming版 - C++ template
0 vector a;
1 C<0>(a); // container
I tried to implement C as
template
class C{
const T & mT;
public:
C(const T& t) : mT(t) {};
}
Compiler always complains about T is missing in 1. Is there any way to get
around this?
e****d
发帖数: 895
48
来自主题: Programming版 - C++ template
Use a template function to generate C<>.
s*w
发帖数: 729
49
来自主题: Programming版 - C++ template
你的 vector 没类型啊? 貌似你想做的是 template specification. N 也没用上啊,
去了得了
h********n
发帖数: 1671
50
来自主题: Programming版 - C++ class template specialization question
试了一下,在gcc中直接写进一个常数时会报错
template class Bar{};
但是用T代替1时就不会报错,虽然编译器此时应知道T是一个整数。
这可能是compiler的一个bug,在进行模板参数检查时漏掉了一个case,没能认出T的类
型。模板声明时只进行最基本的检查,可能会漏掉一些错误。如果没有真正用到,这些
错误不会造成任何问题。如果真正用到了,那时更详细的检查就会发现错误。
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)