我想編譯下面的代碼。嵌套模板typedef - 類型定義
文件Class12.h
template <class T1>
class class1
{
public:
typedef T1 Type1;
void class1Method();
};
template <class T1>
void class1<T1>::class1Method()
{
}
template <class T1, class T2>
class class2
{
public:
typedef T2 Type2;
void class2Method();
};
template <class T1, class T2>
void class2<T1,T2>::class2Method()
{
typedef typename::class2<typename class1<T1>::Type1, T2> Type3;
}
文件class.h
#include "class12.h"
template<>
class class2<int,double>
{
};
但是我得到以下錯誤:
g++ -g -c class.h -o class.o
In file included from class.h:1:
class12.h: In member function `void class2<T1, T2>::class2Method()':
class12.h:27: error: expected nested-name-specifier
class12.h:27: error: expected init-declarator before "Type3"
class12.h:27: error: expected `,' or `;' before "Type3"
make: *** [class.o] Error 1
有人可以幫我嗎?
非常感謝您的時間提前。 謝謝。
唉,標籤濫用...你能編輯你的文章嗎? – 2013-03-06 21:25:57
@Kerrek SB你是什麼意思?現在好嗎? :) – geraldCelente 2013-03-06 23:36:39
要格式化您的代碼,您必須使用空格或製表符,但不能同時使用兩者。如果混合,縮進不會按照你想要的方式出現。它仍然是壞的。 – 2013-03-07 08:45:36