X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fcompat.h;h=e7719bcd7c258f8457fd108934c4d31d55214e62;hb=932748db6dd2a7225c9f12bc34339fcb2f37c319;hp=299b32a88bb560758252f7f15f0c640634b605fe;hpb=f79e9a3e8019be35edd95cd4455910212f872ce9;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/compat.h b/include/compat.h index 299b32a88..e7719bcd7 100644 --- a/include/compat.h +++ b/include/compat.h @@ -28,9 +28,11 @@ #if defined _LIBCPP_VERSION || defined _WIN32 # define TR1NS std # include +# include #else # define TR1NS std::tr1 # include +# include #endif /** @@ -41,7 +43,6 @@ #if defined __clang__ || defined __GNUC__ # define CUSTOM_PRINTF(stringpos, firstpos) __attribute__((format(printf, stringpos, firstpos))) #else -# pragma message ("Warning! CUSTOM_PRINTF() does not work on your compiler!") # define CUSTOM_PRINTF(stringpos, firstpos) #endif @@ -71,6 +72,24 @@ # define CXX11_OVERRIDE #endif +/** + * These macros enable the detection of the C++11 variadic templates in + * compilers which support them. + */ +#if __cplusplus >= 201103L +# define HAS_CXX11_VARIADIC_TEMPLATES +#elif defined __clang__ +# if __has_feature(cxx_variadic_templates) +# define HAS_CXX11_VARIADIC_TEMPLATES +# endif +#elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) +# if defined __GXX_EXPERIMENTAL_CXX0X__ +# define HAS_CXX11_VARIADIC_TEMPLATES +# endif +#elif _MSC_FULL_VER >= 170051025 +# define HAS_CXX11_VARIADIC_TEMPLATES +#endif + /** * This macro allows methods to be marked as deprecated. To use this, wrap the * method declaration in the header file with the macro. @@ -80,7 +99,6 @@ #elif defined _MSC_VER # define DEPRECATED_METHOD(function) __declspec(deprecated) function #else -# pragma message ("Warning! DEPRECATED_METHOD() does not work on your compiler!") # define DEPRECATED_METHOD(function) function #endif @@ -90,8 +108,11 @@ */ #if defined _WIN32 # include "inspircd_win32wrapper.h" +# include "threadengines/threadengine_win32.h" #else +# define ENTRYPOINT int main(int argc, char** argv) +# define DllExport __attribute__ ((visibility ("default"))) +# define CoreExport __attribute__ ((visibility ("default"))) # include -# define DllExport -# define CoreExport +# include "threadengines/threadengine_pthread.h" #endif