From e9749f185f24b481071e44976bd284366e2f7fcb Mon Sep 17 00:00:00 2001 From: Peder Holt Date: Thu, 21 Oct 2010 09:26:45 +0000 Subject: [PATCH] From trunk: Allow inclusion of typeof.hpp for compilers (borland) that does not support typeof emulation or native typeof. For these compilers, BOOST_TYPEOF_EMULATION_UNSUPPORTED will be defined, and BOOST_TYPEOF(Expr) will always result in boost::type_of::typeof_emulation_is_unsupported_on_this_compiler [SVN r66129] --- include/boost/typeof/unsupported.hpp | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 include/boost/typeof/unsupported.hpp diff --git a/include/boost/typeof/unsupported.hpp b/include/boost/typeof/unsupported.hpp new file mode 100644 index 0000000..83d3a55 --- /dev/null +++ b/include/boost/typeof/unsupported.hpp @@ -0,0 +1,29 @@ +// Copyright (C) 2010 Peder Holt +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED +#define BOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED + +namespace boost { namespace type_of { + struct typeof_emulation_is_unsupported_on_this_compiler {}; +}} + +#define BOOST_TYPEOF(expr) boost::type_of::typeof_emulation_is_unsupported_on_this_compiler +#define BOOST_TYPEOF_TPL BOOST_TYPEOF + +#define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \ +struct name {\ + typedef BOOST_TYPEOF_TPL(expr) type;\ +}; + +#define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \ +struct name {\ + typedef BOOST_TYPEOF(expr) type;\ +}; + + +#define BOOST_TYPEOF_REGISTER_TYPE(x) +#define BOOST_TYPEOF_REGISTER_TEMPLATE(x, params) + +#endif \ No newline at end of file