summaryrefslogtreecommitdiff
path: root/boost/log/utility/type_dispatch/standard_types.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/log/utility/type_dispatch/standard_types.hpp')
-rw-r--r--boost/log/utility/type_dispatch/standard_types.hpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/boost/log/utility/type_dispatch/standard_types.hpp b/boost/log/utility/type_dispatch/standard_types.hpp
new file mode 100644
index 0000000000..0bf6a1db24
--- /dev/null
+++ b/boost/log/utility/type_dispatch/standard_types.hpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright Andrey Semashev 2007 - 2014.
+ * 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)
+ */
+/*!
+ * \file standard_types.hpp
+ * \author Andrey Semashev
+ * \date 19.05.2007
+ *
+ * The header contains definition of standard types supported by the library by default.
+ */
+
+#ifndef BOOST_LOG_STANDARD_TYPES_HPP_INCLUDED_
+#define BOOST_LOG_STANDARD_TYPES_HPP_INCLUDED_
+
+#include <string>
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/copy.hpp>
+#include <boost/mpl/back_inserter.hpp>
+#include <boost/log/detail/config.hpp>
+#include <boost/log/utility/string_literal_fwd.hpp>
+#include <boost/log/detail/header.hpp>
+
+#ifdef BOOST_HAS_PRAGMA_ONCE
+#pragma once
+#endif
+
+namespace boost {
+
+BOOST_LOG_OPEN_NAMESPACE
+
+/*!
+ * An MPL-sequence of integral types of attributes, supported by default
+ */
+typedef mpl::vector<
+ bool,
+ char,
+#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
+ wchar_t,
+#endif
+ signed char,
+ unsigned char,
+ short,
+ unsigned short,
+ int,
+ unsigned int,
+ long,
+ unsigned long
+#if defined(BOOST_HAS_LONG_LONG)
+ , long long
+ , unsigned long long
+#endif // defined(BOOST_HAS_LONG_LONG)
+> integral_types;
+
+/*!
+ * An MPL-sequence of FP types of attributes, supported by default
+ */
+typedef mpl::vector<
+ float,
+ double,
+ long double
+> floating_point_types;
+
+/*!
+ * An MPL-sequence of all numeric types of attributes, supported by default
+ */
+typedef mpl::copy<
+ floating_point_types,
+ mpl::back_inserter< integral_types >
+>::type numeric_types;
+
+/*!
+ * An MPL-sequence of string types of attributes, supported by default
+ */
+typedef mpl::vector<
+#ifdef BOOST_LOG_USE_CHAR
+ std::string,
+ string_literal
+#ifdef BOOST_LOG_USE_WCHAR_T
+ ,
+#endif
+#endif
+#ifdef BOOST_LOG_USE_WCHAR_T
+ std::wstring,
+ wstring_literal
+#endif
+> string_types;
+
+/*!
+ * An MPL-sequence of all attribute value types that are supported by the library by default.
+ */
+typedef mpl::copy<
+ string_types,
+ mpl::back_inserter< numeric_types >
+>::type default_attribute_types;
+
+BOOST_LOG_CLOSE_NAMESPACE // namespace log
+
+} // namespace boost
+
+#include <boost/log/detail/footer.hpp>
+
+#endif // BOOST_LOG_STANDARD_TYPES_HPP_INCLUDED_