2

重複の可能性:
「template」および「typename」キーワードをどこに、なぜ配置する必要があるのですか?

#include <iostream>
using namespace std;

template <class T>
class Test
{
    union obj
    {
        union obj* next;
        int num;
    };

    static const int SZ=3;
    static obj* volatile list[SZ];
};

template <class T>
Test<T>::obj* volatile
Test<T>::list[SZ]=
{
    0, 0, 0
};

int main()
{
    return 0;
}

g ++では、次のエラーが発生します。

18 |エラー:'*'トークンの前にコンストラクタ、デストラクタ、または型変換が必要です
4

1 に答える 1

3

Test<T>::obj*メンバーの定義の前にキーワードtypenameを追加します。

于 2012-04-08T04:14:41.997 に答える