I am attempting to compile a project I've forked to emscripten. Compiling natively works fine. Compiling with the latest version of emsdk will cause a lot of errors along the lines of
error: implicit instantiation of undefined template 'std::char_traits<LibraryType>' and after trying to figure out what causes it, I think is attributed to there being classes such as class LibraryString : public std::basic_string<LibraryType> { . . . }
All "LibraryType"s used with std::basic_string are enums that represent characters, for instance, one is enum Unicode { . . . } (I'm not fully sure why this is done).
From what I understand, reading cppreference.com, the way forward would be to define templates of std::char_traits on the enums that are used by std::basic_string that fill out the static member functions required by it. Is this the right way?
But I'm confused why this implicit instantiation works on native compilation but suddenly breaks with emscripten, any ideas why this is the case?
🔥