C++将内部结构作为参数传递
有一个结构体 TOut 包含内部结构体 TIn:
template <typename T>
struct TOut
{
struct TIn
{
bool b;
};
TIn in;
T t;
};
如何正确地将 TIn 作为某个方法的形式参数传递?
class Test
{
public:
template <typename T>
static void test ( const TOut<T>::TIn &i) {} //Error
};
int main()
{
TOut <double> o;
Test::test(o.in);
}
该程序编译时出现以下错误:
Error 4 error C2998: 'int test' : cannot be a template definition
There is a structure TOut containing inner structure TIn:
template <typename T>
struct TOut
{
struct TIn
{
bool b;
};
TIn in;
T t;
};
How to correctly pass TIn in as a formal parameter of some method?
class Test
{
public:
template <typename T>
static void test ( const TOut<T>::TIn &i) {} //Error
};
int main()
{
TOut <double> o;
Test::test(o.in);
}
The program compiles with the following error:
Error 4 error C2998: 'int test' : cannot be a template definition
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
typename
关键字:请参阅我必须在哪里以及为什么必须放置“template”和“typename”关键字?
You need to use the
typename
keyword:See Where and why do I have to put the "template" and "typename" keywords?
为什么不能用更简单的
来代替呢?
Why cannot you use the simpler
instead?