OSDN Git Service

Various improvements to known_folder() function, again.
[mutilities/MUtilities.git] / include / MUtils / Global.h
index c56d8f1..41e1180 100644 (file)
@@ -41,10 +41,6 @@ template<typename K, typename V> class QHash;
  //Interface version
 #define MUTILS_INTERFACE 2
 
-//Build key
-#define MUTILS_BUILD_KEY_HELPER(X,Y) X##" "##Y
-#define MUTILS_BUILD_KEY MUTILS_BUILD_KEY_HELPER(__DATE__, __TIME__)
-
 //MUtils API
 #ifdef _MSC_VER
 #      ifdef MUTILS_DLL_EXPORT
@@ -80,14 +76,20 @@ template<typename K, typename V> class QHash;
        #endif
 #endif
 
+//Library initializer
+#define MUTILS_GLUE_NAME_HELPER(X,Y) X##Y
+#define MUTILS_GLUE_NAME(X,Y) MUTILS_GLUE_NAME_HELPER(X,Y)
+#if MUTILS_DEBUG
+#define MUTILS_INITIALIZER MUTILS_GLUE_NAME(initialize_d, MUTILS_INTERFACE)
+#else
+#define MUTILS_INITIALIZER MUTILS_GLUE_NAME(initialize_r, MUTILS_INTERFACE)
+#endif
+
+//Compiler warnings
 #define MUTILS_MAKE_STRING_HELPER(X) #X
 #define MUTILS_MAKE_STRING(X) MUTILS_MAKE_STRING_HELPER(X)
 #define MUTILS_COMPILER_WARNING(TXT) __pragma(message(__FILE__ "(" MUTILS_MAKE_STRING(__LINE__) ") : warning: " TXT))
 
-#define MUTILS_INIT_GLUE_HELPER(X,Y) X##Y
-#define MUTILS_INIT_GLUE(X,Y) MUTILS_INIT_GLUE_HELPER(X,Y)
-#define MUTILS_INITIALIZER MUTILS_INIT_GLUE(initialize_, MUTILS_INTERFACE)
-
 /** \endcond INTERNAL
  */
 
@@ -361,11 +363,11 @@ namespace MUtils
        */
        MUTILS_API fp_parts_t break_fp(const double value);
 
-       //Internal
+       //Internal (do *not* call directly!)
        namespace Internal
        {
-               MUTILS_API int MUTILS_INITIALIZER(const char *const buildKey, const bool debug);
-               static const int s_initializedFlag = MUTILS_INITIALIZER(MUTILS_BUILD_KEY, MUTILS_DEBUG);
+               MUTILS_API unsigned int MUTILS_INITIALIZER(const unsigned int interfaceId);
+               static const unsigned int init_flag = MUTILS_INITIALIZER(MUTILS_INTERFACE);
        }
 }