diff options
Diffstat (limited to 'boost/geometry/util/condition.hpp')
-rw-r--r-- | boost/geometry/util/condition.hpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/boost/geometry/util/condition.hpp b/boost/geometry/util/condition.hpp new file mode 100644 index 0000000000..aea4ad3ad1 --- /dev/null +++ b/boost/geometry/util/condition.hpp @@ -0,0 +1,44 @@ +// Boost.Geometry + +// Copyright (c) 2015 Oracle and/or its affiliates. + +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to 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) + +#ifndef BOOST_GEOMETRY_UTIL_CONDITION_HPP +#define BOOST_GEOMETRY_UTIL_CONDITION_HPP + + +#include <boost/config.hpp> + + +// The macro defined in this file allows to suppress the MSVC +// compiler warning C4127: conditional expression is constant + +#ifdef BOOST_MSVC + +// NOTE: The code commented out below contains an alternative implementation +// of a macro using a free function. It was left here in case if in the future +// version of MSVC for the code currently used in the macro implementation +// the warning was generated. + +//#ifndef DOXYGEN_NO_DETAIL +//namespace boost { namespace geometry { namespace detail { +//BOOST_FORCEINLINE bool condition(bool const b) { return b; } +//}}} // boost::geometry::detail +//#endif // DOXYGEN_NO_DETAIL +//#define BOOST_GEOMETRY_CONDITION(CONDITION) boost::geometry::detail::condition(CONDITION) + +#define BOOST_GEOMETRY_CONDITION(CONDITION) ((void)0, (CONDITION)) + +#else + +#define BOOST_GEOMETRY_CONDITION(CONDITION) (CONDITION) + +#endif + + +#endif // BOOST_GEOMETRY_UTIL_CONDITION_HPP |