X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=boost_ext%2Fboost%2Ftypeof%2Fpointers_data_members.hpp;fp=boost_ext%2Fboost%2Ftypeof%2Fpointers_data_members.hpp;h=69415b68986f82a66e983f10ce88122e23c0b4dc;hb=4123b4fe58a7fd4659fa01476581690b47c83600;hp=0000000000000000000000000000000000000000;hpb=79564b90f6c9f7cd0bc5b11a6146bb7067b11a75;p=senf.git diff --git a/boost_ext/boost/typeof/pointers_data_members.hpp b/boost_ext/boost/typeof/pointers_data_members.hpp new file mode 100644 index 0000000..69415b6 --- /dev/null +++ b/boost_ext/boost/typeof/pointers_data_members.hpp @@ -0,0 +1,39 @@ +// 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 +#include + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_BEGIN_ENCODE_NS + +enum {PTR_DATA_MEM_ID = BOOST_TYPEOF_UNIQUE_ID()}; + +template +struct encode_type_impl +{ + typedef BOOST_TYPEOF_ENCODE_PARAMS(2, PTR_DATA_MEM_ID) type; +}; + +template +struct decode_type_impl, Iter> +{ + typedef Iter iter0; + BOOST_TYPEOF_DECODE_PARAMS(2) + + template struct workaround{ + typedef p0 T::* type; + }; + + typedef typename workaround::type type; + typedef iter2 iter; +}; + +BOOST_TYPEOF_END_ENCODE_NS + +#endif//BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED