gpt4 book ai didi

c++ - 函数模板参数编译错误

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

<分区>

我正在尝试做这样的事情:

#include <iostream>
#include <array>
using namespace std;

template <size_t A>
class Test {
public:
typedef array<int, A> TestType;
};

template <size_t A>
void foo(Test<A>::TestType t) {
cout << "test\n";
}

int main() {
Test<5>::TestType q;

foo(q);
return 0;
}

但是 foo 不能编译。在 gcc 中我得到

prog.cpp:12:19: error: variable or field ‘foo’ declared void
void foo(Test<A>::TestType t) {
^
prog.cpp:12:28: error: expected ‘)’ before ‘t’
void foo(Test<A>::TestType t) {

在 Visual Studio 2010 中我得到

error C2975: 'Test' : invalid template argument for 'A', expected compile-time constant expression

我不明白我做错了什么,因为 A 是一个编译时常量。我应该改变什么?

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