以下に示すようにテンプレート型を宣言するのは非常に困難です。`typedef typename Foo <T> :: Bar Bar 'のテンプレート宣言
#include <cstdlib>
#include <iostream>
using namespace std;
template <class T>
class Foo
{
typedef T Bar;
};
template <class T>
typedef typename Foo<T>::Bar Bar;
int main(int argc, char *argv[])
{
Bar bar;
Foo<int> foo;
system("PAUSE");
return EXIT_SUCCESS;
}
私は型名はFooを書く避ける::バーは、私のコードをthroughtたいので、私はこれをやっているエラー
template declaration of `typedef typename Foo<T>::Bar Bar'
ラインについて
template <class T>
typedef typename Foo<T>::Bar Bar;
を取得します。
私は間違っていますか?
ありがとうございました!皆さんも同じように役立っています。私は受け取った3つの答えをすべて受け入れることができたらいいなあとにかく、私は3つすべての答えを投票します。 – geraldCelente
@geraldCelente:私はそれが問題ではないと思います。誰かが怒っていると思います。あなたが最も役に立つと思う答えを選んでください:-)(またはコインを投げる) –
そこには "backaround "(gcc/mingwコンパイラのように)C++ 11のバンドワゴンから落ちているコンパイラでは? –