diff DEPENDENCIES/generic/include/boost/units/config.hpp @ 16:2665513ce2d3

Add boost headers
author Chris Cannam
date Tue, 05 Aug 2014 11:11:38 +0100
parents
children c530137014c0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DEPENDENCIES/generic/include/boost/units/config.hpp	Tue Aug 05 11:11:38 2014 +0100
@@ -0,0 +1,105 @@
+// Boost.Units - A C++ library for zero-overhead dimensional analysis and 
+// unit/quantity manipulation and conversion
+//
+// Copyright (C) 2003-2008 Matthias Christian Schabel
+// Copyright (C) 2008 Steven Watanabe
+//
+// 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)
+
+#ifndef BOOST_UNITS_CONFIG_HPP
+#define BOOST_UNITS_CONFIG_HPP
+
+#include <boost/config.hpp>
+#include <boost/version.hpp>
+
+#ifndef BOOST_UNITS_HAS_BOOST_TYPEOF
+    #if (BOOST_VERSION >= 103400)
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_BOOST_TYPEOF    1
+    #else
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_BOOST_TYPEOF    0
+    #endif
+#endif 
+
+#if (BOOST_UNITS_HAS_BOOST_TYPEOF)
+    #include <boost/typeof/typeof.hpp> 
+    ///INTERNAL ONLY
+    #define BOOST_UNITS_HAS_TYPEOF          1
+#else    
+    #if (__GNUC__ && __cplusplus && __GNUC__ >= 3)
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_TYPEOF          1
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_GNU_TYPEOF      1
+    #elif defined(__MWERKS__)
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_TYPEOF          1
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_MWERKS_TYPEOF   1
+    #else
+        ///INTERNAL ONLY
+        #define BOOST_UNITS_HAS_TYPEOF          0
+    #endif
+#endif
+
+// uncomment this to test without typeof support at all
+//#undef BOOST_UNITS_HAS_TYPEOF
+//#define BOOST_UNITS_HAS_TYPEOF          0
+
+#ifndef BOOST_UNITS_NO_COMPILER_CHECK
+
+    #ifdef BOOST_NO_MEMBER_TEMPLATES
+        #error Boost.Units requires member template
+    #endif
+
+    #ifdef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+        #error Boost.Units requires member template keyword
+    #endif
+
+    #ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+        #error Boost.Units requires in class member initialization
+    #endif
+
+    #ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+        #error Boost.Units requires function template partial ordering
+    #endif
+
+    #ifdef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+        #error Boost.Units requires explicit function template arguments
+    #endif
+
+    #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+        #error Boost.Units requires partial specialization
+    #endif
+
+#endif
+
+#ifdef BOOST_UNITS_REQUIRE_LAYOUT_COMPATIBILITY
+    ///INTERNAL ONLY
+    #define BOOST_UNITS_CHECK_LAYOUT_COMPATIBILITY(a, b) BOOST_STATIC_ASSERT((sizeof(a) == sizeof(b)))
+#else
+    ///INTERNAL ONLY
+    #define BOOST_UNITS_CHECK_LAYOUT_COMPATIBILITY(a, b) ((void)0)
+#endif
+
+#ifdef BOOST_UNITS_DOXYGEN
+
+/// If defined will trigger a static assertion if quantity<Unit, T>
+/// is not layout compatible with T
+#define BOOST_UNITS_REQUIRE_LAYOUT_COMPATIBILITY
+
+/// If defined will disable a preprocessor check that the
+/// compiler is able to handle the library.
+#define BOOST_UNITS_NO_COMPILER_CHECK
+
+/// Enable checking to verify that a homogeneous system
+/// is actually capable of representing all the dimensions
+/// that it is used with.  Off by default.
+#define BOOST_UNITS_CHECK_HOMOGENEOUS_UNITS
+
+#endif
+
+#endif