diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) |
commit | f53a1ef582494458301b97bf6e546be52d7ff7e8 (patch) | |
tree | 7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /3rdParty/Boost/src/boost/typeof/pointers_data_members.hpp | |
parent | 638345680d72ca6acaf123f2c8c1c391f696e371 (diff) | |
download | swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2 |
Moving submodule contents back.
Diffstat (limited to '3rdParty/Boost/src/boost/typeof/pointers_data_members.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/typeof/pointers_data_members.hpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/typeof/pointers_data_members.hpp b/3rdParty/Boost/src/boost/typeof/pointers_data_members.hpp new file mode 100644 index 0000000..2b47e97 --- /dev/null +++ b/3rdParty/Boost/src/boost/typeof/pointers_data_members.hpp @@ -0,0 +1,38 @@ +// Copyright (C) 2004 Arkadiy Vertleyb +// 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_POINTERS_DATA_MEMBERS_HPP_INCLUDED +#define BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED + +#include <boost/typeof/encode_decode_params.hpp> +#include <boost/typeof/encode_decode.hpp> + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_BEGIN_ENCODE_NS + +enum {PTR_DATA_MEM_ID = BOOST_TYPEOF_UNIQUE_ID()}; + +template<class V, class P0, class P1> +struct encode_type_impl<V, P0 P1::*> +{ + typedef BOOST_TYPEOF_ENCODE_PARAMS(2, PTR_DATA_MEM_ID) type; +}; + +template<class Iter> +struct decode_type_impl<boost::mpl::size_t<PTR_DATA_MEM_ID>, Iter> +{ + typedef Iter iter0; + BOOST_TYPEOF_DECODE_PARAMS(2) + + template<class T> struct workaround{ + typedef p0 T::* type; + }; + typedef typename decode_type_impl<boost::mpl::size_t<PTR_DATA_MEM_ID>, Iter>::template workaround<p1>::type type; + typedef iter2 iter; +}; + +BOOST_TYPEOF_END_ENCODE_NS + +#endif//BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED |