C++14, Sol2 and Unreal 4, how?

Thank you very much for your answer.
It turns out that the main culprit was that both sol2 and UE4 have their own macros for “check”, which i fixed by undefining and redefining UE4s check before/after i included sol2s hpp

#undef check
#include "sol.hpp"
#define check(expr)				{ if(UNLIKELY(!(expr))) { Debug::LogAssertFailedMessage( #expr, __FILE__, __LINE__ ); DebugBreakAndPromptForRemote(); FDebug::AssertFailed( #expr, __FILE__, _LINE__ ); CA_ASSUME(false); } }

This seems to get rid of the errors, however two new errors orrcur:

That gets rid of all the errors, only a few new errors are thrown:

2>\sol2\Includes\sol.hpp(1028):` error C4583: 'sol::storage_t<T>::value_': destructor is not implicitly called

and

2>\sol2\Includes\sol.hpp(1028): error C4583: 'sol::storage_t<T>::value_': destructor is not implicitly called

All these two constructor/destructor errors get thrown by this template in sol.hpp:

template <class T>
union storage_t
{
  unsigned char dummy_;
  T value_;

  constexpr storage_t( trivial_init_t ) noexcept : dummy_() {};

  template <class... Args>
  constexpr storage_t( Args&&... args ) : value_(constexpr_forward<Args>(args)...) {}

  ~storage_t(){}
};

Does UE4 have any special convention for using constructors/destructors in third party code? Because again, with any other game project i’ve worked on sol2 worked, so i guess it must be some UE4 quirk.