37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
[/
|
|
(C) Copyright Edward Diener 2011-2015
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt).
|
|
]
|
|
|
|
[section:vmd_vc Visual C++ define]
|
|
|
|
Microsoft's Visual C++ compiler, abbreviated VC++, is a very popular compiler
|
|
but does not implement the standard C++ preprocessor correctly in a number of respects.
|
|
Because of this the programmer using the VMD needs to occasionally do things
|
|
differently when VC++ is being used. These "quirks" of VC++ have been smoothed over
|
|
as much as possible in the VMD library, but are mentioned in further topics and
|
|
occasionally must be addressed by the programmer using VMD.
|
|
|
|
The VMD has a macro that indicates when VC++ is the compiler being used. The
|
|
macro is an object-like macro called BOOST_VMD_MSVC. It is set to 1 when VC++
|
|
is being used and set to 0 when VC++ is not being used. You can use this macro
|
|
in your own macro code whenever you include a VMD header file to write code
|
|
which may need special processing for VC++ as outlined in this documentation.
|
|
Your macro processing may therefore occasional take the form of:
|
|
|
|
#include <boost/vmd/some_header.hpp>
|
|
|
|
#if BOOST_VMD_MSVC
|
|
|
|
#define SOME_MACRO ... code for VC++
|
|
|
|
#else
|
|
|
|
#define SOME_MACRO ... code for all other compilers
|
|
|
|
#endif
|
|
|
|
[endsect]
|