diff --git a/include/chaiscript/dispatchkit/dynamic_cast_conversion.hpp b/include/chaiscript/dispatchkit/dynamic_cast_conversion.hpp index 5da9839..63fab9b 100644 --- a/include/chaiscript/dispatchkit/dynamic_cast_conversion.hpp +++ b/include/chaiscript/dispatchkit/dynamic_cast_conversion.hpp @@ -7,7 +7,11 @@ #include "bad_boxed_cast.hpp" #include #include +#include + +#ifndef CHAISCRIPT_NO_THREADS #include +#endif namespace chaiscript { @@ -221,6 +225,14 @@ namespace chaiscript typedef boost::shared_ptr Dynamic_Cast_Conversion; + /// Create a new base class registration for applying to a module or to the chaiscript engine + /// Currently, due to limitations in module loading on Windows, and for the sake of portability, + /// if you have a type that is introduced in a loadable module and is used by multiple modules + /// (through a tertiary dll that is shared between the modules, static linking the new type + /// into both loadable modules would not be portable), you need to register the base type + /// relationship in all modules that use the newly added type in a polymorphic way. + /// \todo Move share static type registration code into a mechanism that allows it to be properly + /// shared by all modules template Dynamic_Cast_Conversion base_class() { diff --git a/src/stl_extra.cpp b/src/stl_extra.cpp index 9ac88af..27a1c99 100644 --- a/src/stl_extra.cpp +++ b/src/stl_extra.cpp @@ -1,5 +1,6 @@ #include +#include #include