/usr/include/boost/detail
NameSizeModeActions
winapi/-0755rm
algorithm.hpp28980644editdlrm
allocator_utilities.hpp47900644editdlrm
atomic_count.hpp6180644editdlrm
basic_pointerbuf.hpp44690644editdlrm
binary_search.hpp62390644editdlrm
bitmask.hpp30330644editdlrm
call_traits.hpp43240644editdlrm
catch_exceptions.hpp56770644editdlrm
compressed_pair.hpp170020644editdlrm
container_fwd.hpp51600644editdlrm
fenv.hpp32060644editdlrm
has_default_constructor.hpp9350644editdlrm
identifier.hpp31780644editdlrm
indirect_traits.hpp44230644editdlrm
interlocked.hpp142580644editdlrm
is_incrementable.hpp30710644editdlrm
is_sorted.hpp14320644editdlrm
is_xxx.hpp12500644editdlrm
iterator.hpp11460644editdlrm
lcast_precision.hpp60890644editdlrm
lightweight_main.hpp12260644editdlrm
lightweight_mutex.hpp6300644editdlrm
lightweight_test.hpp4360644editdlrm
lightweight_test_report.hpp22230644editdlrm
lightweight_thread.hpp8110644editdlrm
named_template_params.hpp61240644editdlrm
no_exceptions_support.hpp5700644editdlrm
numeric_traits.hpp54900644editdlrm
ob_compressed_pair.hpp163990644editdlrm
quick_allocator.hpp6060644editdlrm
reference_content.hpp24430644editdlrm
scoped_enum_emulation.hpp5410644editdlrm
select_type.hpp11300644editdlrm
sp_typeinfo.hpp8570644editdlrm
templated_streams.hpp22420644editdlrm
utf8_codecvt_facet.hpp77450644editdlrm
utf8_codecvt_facet.ipp95780644editdlrm
workaround.hpp3350644editdlrm
Edit: /usr/include/boost/detail/named_template_params.hpp (6124B)
// (C) Copyright Jeremy Siek 2001. // 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) // Revision History: // 04 Oct 2001 David Abrahams // Changed name of "bind" to "select" to avoid problems with MSVC. #ifndef BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP #define BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP #include #include #include // for is_reference #if defined(BOOST_BORLANDC) #include #endif namespace boost { namespace detail { struct default_argument { }; struct dummy_default_gen { template struct select { typedef default_argument type; }; }; // This class template is a workaround for MSVC. template struct default_generator { typedef detail::dummy_default_gen type; }; template struct is_default { enum { value = false }; typedef type_traits::no_type type; }; template <> struct is_default { enum { value = true }; typedef type_traits::yes_type type; }; struct choose_default { template struct select { typedef typename default_generator::type Gen; typedef typename Gen::template select::type type; }; }; struct choose_arg { template struct select { typedef Arg type; }; }; #if defined(BOOST_BORLANDC) template struct choose_arg_or_default { typedef choose_arg type; }; template <> struct choose_arg_or_default { typedef choose_default type; }; #else template struct choose_arg_or_default { typedef choose_arg type; }; template <> struct choose_arg_or_default { typedef choose_default type; }; #endif template class resolve_default { #if defined(BOOST_BORLANDC) typedef typename choose_arg_or_default::type>::type Selector; #else // This usually works for Borland, but I'm seeing weird errors in // iterator_adaptor_test.cpp when using this method. enum { is_def = is_default::value }; typedef typename choose_arg_or_default::type Selector; #endif public: typedef typename Selector ::template select::type type; }; // To differentiate an unnamed parameter from a traits generator // we use is_convertible. struct named_template_param_base { }; template struct is_named_param_list { enum { value = is_convertible::value }; }; struct choose_named_params { template struct select { typedef Prev type; }; }; struct choose_default_arg { template struct select { typedef detail::default_argument type; }; }; template struct choose_default_dispatch_; template <> struct choose_default_dispatch_ { typedef choose_named_params type; }; template <> struct choose_default_dispatch_ { typedef choose_default_arg type; }; // The use of inheritance here is a Solaris Forte 6 workaround. template struct choose_default_dispatch : public choose_default_dispatch_ { }; template struct choose_default_argument { enum { is_named = is_named_param_list::value }; typedef typename choose_default_dispatch::type Selector; typedef typename Selector::template select::type type; }; // This macro assumes that there is a class named default_##TYPE // defined before the application of the macro. This class should // have a single member class template named "select" with two // template parameters: the type of the class being created (e.g., // the iterator_adaptor type when creating iterator adaptors) and // a traits class. The select class should have a single typedef // named "type" that produces the default for TYPE. See // boost/iterator_adaptors.hpp for an example usage. Also, // applications of this macro must be placed in namespace // boost::detail. #define BOOST_NAMED_TEMPLATE_PARAM(TYPE) \ struct get_##TYPE##_from_named { \ template \ struct select { \ typedef typename NamedParams::traits NamedTraits; \ typedef typename NamedTraits::TYPE TYPE; \ typedef typename resolve_default::type type; \ }; \ }; \ struct pass_thru_##TYPE { \ template struct select { \ typedef typename resolve_default::type type; \ };\ }; \ template \ struct get_##TYPE##_dispatch { }; \ template <> struct get_##TYPE##_dispatch<1> { \ typedef get_##TYPE##_from_named type; \ }; \ template <> struct get_##TYPE##_dispatch<0> { \ typedef pass_thru_##TYPE type; \ }; \ template \ class get_##TYPE { \ enum { is_named = is_named_param_list::value }; \ typedef typename get_##TYPE##_dispatch::type Selector; \ public: \ typedef typename Selector::template select::type type; \ }; \ template <> struct default_generator { \ typedef default_##TYPE type; \ } } // namespace detail } // namespace boost #endif // BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP