У меня написана следующая простая функция - неупорядоченная карта, которая принимает 2 GUIDS в качестве ключа и значения. Однако я не думаю, что у них определен GUID-компаратор, поэтому он выдает эту ошибку со всеми GUID-компараторами, которые я пробовал.
#include <unordered_map>
#include<iostream>
#include<stdio.h>
#include<Objbase.h>
typedef unordered_map<GUID, GUID, less_guid> Mymap;
Mymap c1;
int __cdecl wmain(int /*argc*/, __in_ecount(argc) WCHAR * /*argv[ ]*/)
{
GUID TargetC;
GUID TargetA;
CoCreateGuid(&TargetC); CoCreateGuid(&TargetA);
c1.insert(Mymap::value_type(TargetC,TargetA)); /
getch();
return 0;
}
Это ошибка, которая показывает вверх:
"> c: \ program files (x86) \ microsoft visual studio 10.0 \ vc \ include \ xhash (154): ошибка C2064: термин не оценивает функцию, принимающую 1 аргумент
1> class не определяет 'operator ()' или определенный пользователем оператор преобразования в указатель на функцию или ссылку на функцию, которая принимает соответствующее количество аргументов "
Я остро нуждаюсь в решении. Буду признателен за ваш вклад. Спасибо!