#include <list>
template < class TYPE >
class CIndex : protected std::list <TYPE>
{
public:
typedef std::list <TYPE>::iterator CIndexIt;
typedef std::list <TYPE>::difference_type CIndexDiff;
上記のコードの最後の行でエラーが発生します。テンプレートの場合:エラーC4430:型指定子がありません - intが仮定されています。注:C++はdefault-intをサポートしていません
私はthisとthe msdn pageを見ましたが、両方とも私のエラーを解決しません。
問題を引き起こしている可能性のあることは誰でも知っていますか?
編集:だから私
#include<hash_map>
class CWItems
{
typedef stdext::hash_map < unsigned long, CWksItem* > CItem;
CItem mItems;
:最初のリンクのソリューションは、仕事がtypename
を追加すると、上記のコードのために働いていたがために、それは以下のコードでは動作しませんでしたしていなかった
理由私はどこにでもtypename
を追加して間違ったことをしていると思った。このコードでtypedef
このエラーの原因となった後typename
を使用して:
error C2899: typename cannot be used outside a template declaration
typename
なければ、示されたエラーはCItem mItems;
行で、error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
あります。あなたがにリンクされている
[テンプレート引数で定義された型を使用する](http://stackoverflow.com/questions/741597/using-types-defined-in-template-arguments) –
あなたが投稿したリンクを持つと便利です。私の問題はまだ解決されていません。詳細を追加するために私の質問を編集しました。助けて? – Nav
'CWItems'はクラステンプレートではないので、従属名は使用できません。 'CWksItem'はどこで宣言されていますか? –