由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 一个partial specialization的问题
相关主题
C++ 菜鸟问一个关于template 的问题。c++ template specialization 参数
请问const myClass &src 和myClass const &src有什么区别?[菜鸟问题]类模板问题
no partial specialize function templates?typedef basic_string string;
sgi stl 源代码一问C++ Template Question
今天没有上班,说一个FEATURE吧,concept litec++ template question:
one template questionboost::function 的 syntax 问题
C++ linking 弱问 (one file)C++ question about template typedef
C++ class template specialization questionC++里get array size的问题 (转载)
相关话题的讨论汇总
话题: datatype话题: partial话题: typedef话题: template
进入Programming版参与讨论
1 (共1页)
p****o
发帖数: 1340
1
我定义了一个模板类:
template class myclass
{
typedef T datatype;
...
};
我希望当使用myclass的时候,这个datatype
的定义不是T,而是一个另外的类型S。我的问题是这个
是不是可行的?如果可以的话,syntax是什么呢?
我可以用full specialization的,不过这个类有好多
函数的,所以不想这样搞。google了半天也未果。
谢了!
p***o
发帖数: 1252
2

搞个traits,就是说把上面那个typedef T datatype换成
typedef typename traits::datatype datatype,然后full/partial
specialization traits这个类:
template class traits{typedef T datatype;};

【在 p****o 的大作中提到】
: 我定义了一个模板类:
: template class myclass
: {
: typedef T datatype;
: ...
: };
: 我希望当使用myclass的时候,这个datatype
: 的定义不是T,而是一个另外的类型S。我的问题是这个
: 是不是可行的?如果可以的话,syntax是什么呢?
: 我可以用full specialization的,不过这个类有好多

t****t
发帖数: 6806
3
不管是partial specialization还是full specialization,类都要重写过.
你倒是可以试着把datatype做成模板,比如说:
template struct datatype_trait
{
typedef T1 data_type;
};
template <> struct datatype_trait
{
typedef S data_type;
};
template class myclass
{
typedef typename datatype_trait::data_type datatype;
...
};


【在 p****o 的大作中提到】
: 我定义了一个模板类:
: template class myclass
: {
: typedef T datatype;
: ...
: };
: 我希望当使用myclass的时候,这个datatype
: 的定义不是T,而是一个另外的类型S。我的问题是这个
: 是不是可行的?如果可以的话,syntax是什么呢?
: 我可以用full specialization的,不过这个类有好多

p****o
发帖数: 1340
4
可以不完全重写的:只用改几个函数了。我也在看这个
data_trait的东东。。。

【在 t****t 的大作中提到】
: 不管是partial specialization还是full specialization,类都要重写过.
: 你倒是可以试着把datatype做成模板,比如说:
: template struct datatype_trait
: {
: typedef T1 data_type;
: };
: template <> struct datatype_trait
: {
: typedef S data_type;
: };

p***o
发帖数: 1252
5
还是你快一步 ... 呵呵

【在 t****t 的大作中提到】
: 不管是partial specialization还是full specialization,类都要重写过.
: 你倒是可以试着把datatype做成模板,比如说:
: template struct datatype_trait
: {
: typedef T1 data_type;
: };
: template <> struct datatype_trait
: {
: typedef S data_type;
: };

t****t
发帖数: 6806
6
ping

【在 p***o 的大作中提到】
: 还是你快一步 ... 呵呵
t****t
发帖数: 6806
7
explicit specialization of a member of class template may be provided,
however they must be fully specialized. in other words, if you partial
specialize a class, you must rewrite everything.
BTW, your case is not called "partial specialization". partial
specialization will still have template parameter. if you specialize for T->
char*, then it's not partial (all parameter have values)

【在 p****o 的大作中提到】
: 可以不完全重写的:只用改几个函数了。我也在看这个
: data_trait的东东。。。

p****o
发帖数: 1340
8
thanks a lot. i'll read and think a bit more, :)

->

【在 t****t 的大作中提到】
: explicit specialization of a member of class template may be provided,
: however they must be fully specialized. in other words, if you partial
: specialize a class, you must rewrite everything.
: BTW, your case is not called "partial specialization". partial
: specialization will still have template parameter. if you specialize for T->
: char*, then it's not partial (all parameter have values)

1 (共1页)
进入Programming版参与讨论
相关主题
C++里get array size的问题 (转载)今天没有上班,说一个FEATURE吧,concept lite
如何 define/initialize static data member of a class templone template question
compile errorC++ linking 弱问 (one file)
Traited Python object attributes -for java peopleC++ class template specialization question
C++ 菜鸟问一个关于template 的问题。c++ template specialization 参数
请问const myClass &src 和myClass const &src有什么区别?[菜鸟问题]类模板问题
no partial specialize function templates?typedef basic_string string;
sgi stl 源代码一问C++ Template Question
相关话题的讨论汇总
话题: datatype话题: partial话题: typedef话题: template