gcc 4.0.0

MSVC で開発した template を使ったコードを gcc に食わせたら、たくさんエラーをはいてくれた。修正方法を調べなければ....。

template <typename T> class Hoge
{
public:
    typedef std::map<int id, int data> IntMap;
    
    IntMap& Map();
private:
    IntMap  m_map;
}

template <typename T>
Hoge<T>::IntMap& Hoge<T>::Map()
{
    return m_map;
}

こんなのを MSVC は通してしまって、gcc 4.0.0 は constructor がどーのこーのというエラーを返す。class 宣言の中で

    IntMap& Map() { return m_map; }

とする分には文句いわないんだけど。