これまで、私はテンプレートとC++での動的バインディングの両方を使用していましたが、最近はそれらを一緒に使用しようとしましたが、コンパイルできませんでした。動的バインディングクラスでのC++テンプレートの使用
std::map<MyClass, unsigned int> mymap;
MyClassのは、バインディングの動的メモリを利用したクラスであることを起こる:私が何をしようとしています何
はこのようなものです。数時間の検索の後、私はこれがまだ解決できない影響を与えているという印象を受けているので、問題のガイダンスと解決方法を期待していました。
私の最終目標は、このような何かを行うことができるようにすることです:
std::vector<MyClass> MyClassPool;
//fill the vector with MyClass objects...
for(usigned int i=0 ; i<MyClassPool.size() ; i++)
{
mymap[ MyClassPool[i] ] = i;
}
私はさまざまな方法でポインタを使用して試してみましたが、それは働いていないと私は何ができるのか確認するために失敗します。
私は、上記と次のエラーを取得:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_function.h: In member function `bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = Instance]':
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_map.h:338: instantiated from `_Tp& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key = Instance, _Tp = float, _Compare = std::less<Instance>, _Alloc = std::allocator<std::pair<const Instance, float> >]'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_function.h:227: error: no match for 'operator<' in '__x < __y'
"ダイナミックメモリバインディング"とはどういう意味ですか?とにかく、コードが正しいように見えます。あなたは私たちに 'MyClass'の定義を与える必要があります。 –
あなたは 'ベクトル'の代わりに 'ベクトル'を意味しませんでしたか?標準の組み込み 'std :: vector'を使用していますか? –
「それは機能していません」とはどういう意味ですか?あなたは私たちにより良い情報を与えなければなりません。それはコンパイルされますか?どのようなエラーメッセージが表示されますか?奇妙なことに私はライブラリに私を誘導するコンパイルエラーが発生する。 –