メンバーとして boost.bimap を使用してテンプレート クラスを作成しようとしています。ただし、通常の typedef プロトコルに従うと、コンパイラ (私は Visual Studio Express 2012 を使用しています) が大量の C4512 (代入演算子を生成できませんでした) 警告を生成します。奇妙なことに、コードはコンパイルされ、クラスを完全に実装すると、正しく動作します。ただし、警告の原因と、可能であればそれを回避する方法を知りたいです。誰かにアイデアがあれば、とても感謝しています!
#ifndef TESTCLASS_H
#define TESTCLASS_H
#include <map>
#include <boost/bimap.hpp>
template<typename T>
class TestClass
{
public:
TestClass()
{
}
private:
typedef boost::bimap<int,int> bimap_t;
typedef bimap_t::value_type valuetype;
};
#endif // TESTCLASS_H
テンプレートの外側にある bimap コードでは、警告は表示されません。