
I'm digging up a previous topic of mine : http://article.gmane.org/gmane.comp.lib.boost.user/39236/match=config Basically, is it possible to consolidate the boost/config headers so they provide a macro usable in #ifdef and such so we can use Boost comprehensive platform/compiler tests in library ? I know some are already usable (like testing for BOOST_MSVC and such) but it lacks in some area like platform. My proposal is the following : For platform, stdlib and compiler config flag, add a macro called respectively : BOOST_ACTIVE_PLATFORM_CONFIG BOOST_ACTIVE_STDLIB_CONFIG BOOST_ACTIVE_COMPILER_CONFIG That contains a numeric value that identify the current chosen configuration. For each type of configuration, files called boost/config/platform_list.hpp,boost/config/stdlib_list.hpp and boost/config/compiler_list.hpp are provided. Those files contains the global list of possible active configuration and give them proper usable symbol. eg : platform_list.hpp #ifndef __BOOST_CONFIG_PLATFORM_LIST_HPP__INCLUDED__ #define __BOOST_CONFIG_PLATFORM_LIST_HPP__INCLUDED__ #define BOOST_AIX_PLATFORM_CONFIG 100 #define BOOST_AMIGAOS_PLATFORM_CONFIG 101 /// and so on ... #define BOOST_WIN32_PLATFORM_CONFIG 111 #define BOOST_UNKNOWN_PLATFORM_CONFIG 999 #endif Then in win32.hpp, the following definition is provided : #define BOOST_ACTIVE_PLATFORM_CONFIG BOOST_WIN32_PLATFORM_CONFIG In user code, it can be checked like this : #if (BOOST_ACTIVE_PLATFORM_CONFIG == BOOST_WIN32_PLATFORM_CONFIG) // Some Win32 code #else // some other code for non-win32 #endif Does this sound useful or am I overlooking some already existing boost system that may already do this ?
participants (1)
-
Joel Falcou