Я пытаюсь переключиться с компилятора Visual Studio 14 2015
на Visual Studio 16 2019
для компиляции моего проекта (также пробовал Visual Studio 15 2017
, но это привело к тем же проблемам). Я использую irrequietus / typestring , который прекрасно работал со старым компилятором, но теперь приводит к ошибкам.
Вот класс, который должен использоваться с строкой типизированных данных:
// my_custom_class.h
template<typename T>
class MyCustomClass
{
public:
static bool compareTheTypestring(const std::string& other) const {
return std::strcmp(data(), other.c_str()) == 0;
}
}
Вот как я использую класс:
// use_it.cpp
#include "typestring.hh"
#include "my_custom_class.h"
typedef MyCustomClass<typestring_is("Foo")> FooCompare;
, который выдает следующую ошибку в typestring.hh
:
compiler is out of heap space (C1060)
.
И другие ошибки в use_it.cpp
:
irqus::typeek: no matching overloaded function found (C2672)
Failed to specialize function template 'unknown-type irqus::typeek(irqus::typestring<C...>)'
- не может вывести аргументы шаблона для
MyCustomClass
В хранилище есть похожая проблема, но сопровождающий, похоже, не отвечает. Я пытался найти альтернативные реализации типизирования, но не смог. Может кто-нибудь помочь мне решить эту проблему, пожалуйста?