avatar
c++ template question:# Programming - 葵花宝典
F*i
1
trying a sample code from template complete:
template
class IsClassT {
private:
typedef char One;
typedef struct { char a[2]; } Two;
template static One test(int C::*);
template static Two test((B!DB);
public:
enum { Yes = sizeof(IsClassT::test(0)) == 1 }; //ERROR LINE
enum { No = !Yes };
};
It is supposed to work from the book, however, the g++ complains as:
line 21: error: expected primary-expression before '>' token
do not
avatar
b*n
2
加括号试试看。

【在 F*******i 的大作中提到】
: trying a sample code from template complete:
: template
: class IsClassT {
: private:
: typedef char One;
: typedef struct { char a[2]; } Two;
: template static One test(int C::*);
: template static Two test((B!DB);
: public:
: enum { Yes = sizeof(IsClassT::test(0)) == 1 }; //ERROR LINE

avatar
r*r
3
菜啊,看不懂这个template

【在 F*******i 的大作中提到】
: trying a sample code from template complete:
: template
: class IsClassT {
: private:
: typedef char One;
: typedef struct { char a[2]; } Two;
: template static One test(int C::*);
: template static Two test((B!DB);
: public:
: enum { Yes = sizeof(IsClassT::test(0)) == 1 }; //ERROR LINE

avatar
D*a
4

不懂template,不过这行是不是少了括号?

【在 F*******i 的大作中提到】
: trying a sample code from template complete:
: template
: class IsClassT {
: private:
: typedef char One;
: typedef struct { char a[2]; } Two;
: template static One test(int C::*);
: template static Two test((B!DB);
: public:
: enum { Yes = sizeof(IsClassT::test(0)) == 1 }; //ERROR LINE

avatar
r*r
5

这行啥意思啊?一个右括号?

【在 F*******i 的大作中提到】
: trying a sample code from template complete:
: template
: class IsClassT {
: private:
: typedef char One;
: typedef struct { char a[2]; } Two;
: template static One test(int C::*);
: template static Two test((B!DB);
: public:
: enum { Yes = sizeof(IsClassT::test(0)) == 1 }; //ERROR LINE

avatar
r*r
6
peng自己一下

【在 r****r 的大作中提到】
:
: 这行啥意思啊?一个右括号?

avatar
c*d
7
change IsClassT:: to IsClassT::template .

【在 F*******i 的大作中提到】
: trying a sample code from template complete:
: template
: class IsClassT {
: private:
: typedef char One;
: typedef struct { char a[2]; } Two;
: template static One test(int C::*);
: template static Two test((B!DB);
: public:
: enum { Yes = sizeof(IsClassT::test(0)) == 1 }; //ERROR LINE

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。