0
typedef a map
を使用し、関数への戻りパラメーターとしてtypedef
名前を使用すると失敗します。以下は関数への戻り値型としてのtypedefマップは、コンパイラエラーをスローします。
はシナリオを説明する擬似コードである:
/**
* a.h
*/
class A
{
public:
typedef std::map<string,int> Int_map;
A();
~A();
const Int_map& getMap();
private:
Int_map my_map;
}
/**
* a.cpp
*/
A::A() {}
A::~A() {}
const Int_map& A::getMap() // gives a compiler error : Int_map does not name a type
{
return my_map;
}
私は「a.cpp」で次の宣言を使用している場合ただし、コンパイラエラーがありません。 (注意:a.hファイルがまだのconst Int_map& A::getMap()
として宣言を含む)
const std::map<string,int>& A::getMap()
この動作の原因は何?同じ動作と同様に
、私はstd::string
に関連した別の質問があります。私は、その文字列でもC++でのtypedefで、テンプレートが使用されて理解
を。 string
を返す関数はC++で動作し、typedef map
はどのようにエラーを送出しますか?
Int_map - > A :: Int_map –