Std::type_info fails to build in development configuration but works in development_editor

I have a Crypto++ linked as a static lib, when building in “development editor” configuration everything build and work fine, but when I switch into “development” only configuration I got a bunch of the following error at build time:

…includes\cryptlib.h(234): error C2039: ‘type_info’ : is not a member of ‘std’

I’m currently out of option, any help on this issue would be appreciated.

Here is the catch, in visual studio the std::type_info class seems to be declared outside of the std namespace c++ - Why is type_info declared outside namespace std? - Stack Overflow , so we need to redefine it inside std :

// at the top of the file

#ifdef WIN32

#pragma warning( push )
#pragma warning( disable: 4530 )

namespace std{
typedef type_info type_info;
}

// other includes here…

#endif

// code here…

// And at the end of the code file
#ifdef WIN32

#pragma warning( pop )

#endif

and I got no idea why this is not happening in “development editor” configuration build.

Hi DavidNSilva, to answer your question as in which file we need to redefine the type_info class, it depends on where you are including the crypto++ lib, in my case it was into the cpp code def of my custom crypto code implementation, for example in Private/ModuleX/CryptoImplX.cpp, hope this answer your question.

Oh, I actually ended up editing type_info itself from the std libraries in visual studio and it seems to have worked. Yes I am trying to ship a project with cryptoPP in it. Thanks for answering, I had removed my previous comment as I had solved it somehow. I’ll take a look at that file as I felt what I did was a bit “wrong”. Thanks again for helping out

edit: “<” not appearing

You are aware that UE4 provides some encryption APIs wrapped?

Yeah, but I wanted to use the GCM-AES cipher mode and it wasn’t available back then, don’t know if it’s still the case?