gpt4 book ai didi

c++ - 使用模板对象的模板函数中无法识别的内容

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:06 25 4
gpt4 key购买 nike

Gcc (4.7.2) 在编译这段代码时抛出一个小错误:

#include <iostream>

template<typename T>
struct test
{
template<int n>
int select() const
{
return n;
}
};

template<typename T>
struct test_wrapper
{
void print() const
{
std::cout << t.select<3>() << std::endl; // L.18
}

test<T> t;
};

int main()
{}

错误是:

test3.cpp: In member function 'void test_wrapper<T>::print() const':
test3.cpp:18:34: error: expected primary-expression before ')' token

如果我改变 test<T> t按特殊类型,例如 test<void> t ,此错误消失。

问题出在哪里?

最佳答案

在模板构造中调用模板方法时需要使用template关键字:

t.template select<3>();

关于c++ - 使用模板对象的模板函数中无法识别的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com