Visual Studio 2012 を使用すると、次のようにコンパイルされます。
void Stuff()
{
CMap <int, int, int, int > myMap;
}
しかし、このような CMap を返そうとすると、次のようになります。
CMap<int, int, int, int> GetEncodingMap()
{
CMap <int, int, int, int> encodingMap;
return encodingMap;
}
次のコンパイル エラーが発生します。
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afx.h(559) : see declaration of 'CObject::CObject'
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afx.h(534) : see declaration of 'CObject'
1> This diagnostic occurred in the compiler generated function 'CMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::CMap(const CMap<KEY,ARG_KEY,VALUE,ARG_VALUE> &)'
1> with
1> [
1> KEY=int,
1> ARG_KEY=int,
1> VALUE=int,
1> ARG_VALUE=int
1> ]
これは、CMap で使用する型に関係なく、常に当てはまるようです。
誰かが彼が何をしているのかを理解するのを手伝ってくれませんか? 関数から CMap を返すことは可能ですか?