/
usr
/
include
/
boost
/
detail
/
/usr/include/boost/detail
mkdir
upload
Name
Size
Mode
Actions
winapi/
-
0755
rm
algorithm.hpp
2898
0644
edit
dl
rm
allocator_utilities.hpp
4790
0644
edit
dl
rm
atomic_count.hpp
618
0644
edit
dl
rm
basic_pointerbuf.hpp
4469
0644
edit
dl
rm
binary_search.hpp
6239
0644
edit
dl
rm
bitmask.hpp
3033
0644
edit
dl
rm
call_traits.hpp
4324
0644
edit
dl
rm
catch_exceptions.hpp
5677
0644
edit
dl
rm
compressed_pair.hpp
17002
0644
edit
dl
rm
container_fwd.hpp
5160
0644
edit
dl
rm
fenv.hpp
3206
0644
edit
dl
rm
has_default_constructor.hpp
935
0644
edit
dl
rm
identifier.hpp
3178
0644
edit
dl
rm
indirect_traits.hpp
4423
0644
edit
dl
rm
interlocked.hpp
14258
0644
edit
dl
rm
is_incrementable.hpp
3071
0644
edit
dl
rm
is_sorted.hpp
1432
0644
edit
dl
rm
is_xxx.hpp
1250
0644
edit
dl
rm
iterator.hpp
1146
0644
edit
dl
rm
lcast_precision.hpp
6089
0644
edit
dl
rm
lightweight_main.hpp
1226
0644
edit
dl
rm
lightweight_mutex.hpp
630
0644
edit
dl
rm
lightweight_test.hpp
436
0644
edit
dl
rm
lightweight_test_report.hpp
2223
0644
edit
dl
rm
lightweight_thread.hpp
811
0644
edit
dl
rm
named_template_params.hpp
6124
0644
edit
dl
rm
no_exceptions_support.hpp
570
0644
edit
dl
rm
numeric_traits.hpp
5490
0644
edit
dl
rm
ob_compressed_pair.hpp
16399
0644
edit
dl
rm
quick_allocator.hpp
606
0644
edit
dl
rm
reference_content.hpp
2443
0644
edit
dl
rm
scoped_enum_emulation.hpp
541
0644
edit
dl
rm
select_type.hpp
1130
0644
edit
dl
rm
sp_typeinfo.hpp
857
0644
edit
dl
rm
templated_streams.hpp
2242
0644
edit
dl
rm
utf8_codecvt_facet.hpp
7745
0644
edit
dl
rm
utf8_codecvt_facet.ipp
9578
0644
edit
dl
rm
workaround.hpp
335
0644
edit
dl
rm
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 <boost/config.hpp> #include <boost/type_traits/conversion_traits.hpp> #include <boost/type_traits/composite_traits.hpp> // for is_reference #if defined(BOOST_BORLANDC) #include <boost/type_traits/ice.hpp> #endif namespace boost { namespace detail { struct default_argument { }; struct dummy_default_gen { template <class Base, class Traits> struct select { typedef default_argument type; }; }; // This class template is a workaround for MSVC. template <class Gen> struct default_generator { typedef detail::dummy_default_gen type; }; template <class T> struct is_default { enum { value = false }; typedef type_traits::no_type type; }; template <> struct is_default<default_argument> { enum { value = true }; typedef type_traits::yes_type type; }; struct choose_default { template <class Arg, class DefaultGen, class Base, class Traits> struct select { typedef typename default_generator<DefaultGen>::type Gen; typedef typename Gen::template select<Base,Traits>::type type; }; }; struct choose_arg { template <class Arg, class DefaultGen, class Base, class Traits> struct select { typedef Arg type; }; }; #if defined(BOOST_BORLANDC) template <class UseDefault> struct choose_arg_or_default { typedef choose_arg type; }; template <> struct choose_arg_or_default<type_traits::yes_type> { typedef choose_default type; }; #else template <bool UseDefault> struct choose_arg_or_default { typedef choose_arg type; }; template <> struct choose_arg_or_default<true> { typedef choose_default type; }; #endif template <class Arg, class DefaultGen, class Base, class Traits> class resolve_default { #if defined(BOOST_BORLANDC) typedef typename choose_arg_or_default<typename is_default<Arg>::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<Arg>::value }; typedef typename choose_arg_or_default<is_def>::type Selector; #endif public: typedef typename Selector ::template select<Arg, DefaultGen, Base, Traits>::type type; }; // To differentiate an unnamed parameter from a traits generator // we use is_convertible<X, iter_traits_gen_base>. struct named_template_param_base { }; template <class X> struct is_named_param_list { enum { value = is_convertible<X, named_template_param_base>::value }; }; struct choose_named_params { template <class Prev> struct select { typedef Prev type; }; }; struct choose_default_arg { template <class Prev> struct select { typedef detail::default_argument type; }; }; template <bool Named> struct choose_default_dispatch_; template <> struct choose_default_dispatch_<true> { typedef choose_named_params type; }; template <> struct choose_default_dispatch_<false> { typedef choose_default_arg type; }; // The use of inheritance here is a Solaris Forte 6 workaround. template <bool Named> struct choose_default_dispatch : public choose_default_dispatch_<Named> { }; template <class PreviousArg> struct choose_default_argument { enum { is_named = is_named_param_list<PreviousArg>::value }; typedef typename choose_default_dispatch<is_named>::type Selector; typedef typename Selector::template select<PreviousArg>::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 <class Base, class NamedParams, class Traits> \ struct select { \ typedef typename NamedParams::traits NamedTraits; \ typedef typename NamedTraits::TYPE TYPE; \ typedef typename resolve_default<TYPE, \ default_##TYPE, Base, NamedTraits>::type type; \ }; \ }; \ struct pass_thru_##TYPE { \ template <class Base, class Arg, class Traits> struct select { \ typedef typename resolve_default<Arg, \ default_##TYPE, Base, Traits>::type type; \ };\ }; \ template <int NamedParam> \ 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 Base, class X, class Traits> \ class get_##TYPE { \ enum { is_named = is_named_param_list<X>::value }; \ typedef typename get_##TYPE##_dispatch<is_named>::type Selector; \ public: \ typedef typename Selector::template select<Base, X, Traits>::type type; \ }; \ template <> struct default_generator<default_##TYPE> { \ typedef default_##TYPE type; \ } } // namespace detail } // namespace boost #endif // BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP
Save
cmd:
run