std ::map-containerのキーとしてstd::tm()を使用したいと思います。しかし、コンパイルしようとすると、多くの(10)エラーが発生します。
例えば:
1.1。
エラーC2784:'bool std :: operator <(const std :: basic_string <_Elem、_Traits、_Alloc>&、const _Elem *)':'const std :: basic_string <_Elem、_Traits、_Alloc>のテンプレート引数を推測できませんでした&'from' const tm'c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ include \ xfunctional 125
2.2。
エラーC2784:'bool std :: operator <(const _Elem *、const std :: basic_string <_Elem、_Traits、_Alloc>&)':'const_Elem*'のテンプレート引数を'consttm' c:\から推測できませんでしたプログラムファイル(x86)\ microsoft visual studio 10.0 \ vc \ include \ xfunctional 125
3.3。
エラーC2784:'bool std :: operator <(const std :: vector <_Ty、_Ax>&、const std :: vector <_Ty、_Ax>&)':'const std ::vector<のテンプレート引数を推測できませんでした_Ty、_Ax>&'from' const tm'c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ include \ xfunctional 125
これはすべて、2つのstd :: tmを比較する関数オブジェクトを「単に」作成する必要があることを意味します。これには標準比較が定義されていないためですか?それとも別のトリックがありますか?(または私には不可能かもしれませんか?^^)
コード:
#include <map>
#include <ctime>
#include <string>
int main()
{
std::map<std::tm, std::string> mapItem;
std::tm TM;
mapItem[TM] = std::string("test");
return 0;
};