Я реализую некоторый модульный тест, используя cpp инфраструктуру модульного теста для visual studio. Я хочу иметь возможность сравнивать перечисления в тесте, но всегда появляется ошибка, которая продолжает появляться.
Это код, который вызывает у меня ошибку.
ClauseEntities ent1 = varMap.at("a");
ClauseEntities ent2 = varMap.at("v");
Assert::AreEqual(ent1, ASSIGN_STATEMENT);
Assert::AreEqual(ent1, VARIABLE);
ent1 - это состояние перечисления, а ASSIGN_STATEMENT - также состояние перечисления из того же перечисления.
Severity Code Description Project File Line Suppression State
Error C2338 Test writer must define specialization of ToString<const Q& q>
for your class class std::basic_string<wchar_t,struct
std::char_traits<wchar_t>,class std::allocator<wchar_t> > __cdecl
Microsoft::VisualStudio::CppUnitTestFramework::ToString<enum ClauseEntities>
(const enum ClauseEntities &).
UnitTesting C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\VS\UnitTest\include\CppUnitTestAssert.h 66
Не уверен, как я должен создать специализацию шаблона для строки перечислений ..