4
我有以下代碼如何解決使用模板類與靜態constexpr時的鏈接錯誤?
#include <iostream>
template <class T>
class A
{
public:
static constexpr int arr[5] = {1,2,3,4,5};
};
template<> constexpr int A<int>::arr[5];
int main()
{
A<int> a;
std::cout << a.arr[0] << std::endl;
return 0;
}
編譯通過得很好,但我有一個鏈接錯誤,我不明白
g++ -std=c++11 test.cpp -o test
/tmp/ccFL19bt.o: In function `main':
test01.cpp:(.text+0xa): undefined reference to `A<int>::arr'
collect2: error: ld returned 1 exit status
+1。 [正確](http://coliru.stacked-crooked.com/a/4ff77fb898d3c00a)。 – Nawaz
假設我有'typedef A B;'在我的頭文件中,有沒有一種方法可以使用'B'類型來分配'arr'或者我必須使用'A'類型? –
e271p314
@ e271p314 AFAIK你需要使用'A'。 –