/
usr
/
include
/
boost
/
spirit
/
home
/
support
/
/usr/include/boost/spirit/home/support
mkdir
upload
Name
Size
Mode
Actions
algorithm/
-
0755
rm
auto/
-
0755
rm
auxiliary/
-
0755
rm
char_encoding/
-
0755
rm
char_set/
-
0755
rm
detail/
-
0755
rm
iterators/
-
0755
rm
nonterminal/
-
0755
rm
utree/
-
0755
rm
action_dispatch.hpp
7518
0644
edit
dl
rm
adapt_adt_attributes.hpp
13835
0644
edit
dl
rm
argument.hpp
6649
0644
edit
dl
rm
argument_expression.hpp
2909
0644
edit
dl
rm
assert_msg.hpp
2273
0644
edit
dl
rm
attributes.hpp
45802
0644
edit
dl
rm
attributes_fwd.hpp
11871
0644
edit
dl
rm
auto.hpp
1298
0644
edit
dl
rm
char_class.hpp
32911
0644
edit
dl
rm
common_terminals.hpp
18649
0644
edit
dl
rm
container.hpp
15358
0644
edit
dl
rm
context.hpp
9365
0644
edit
dl
rm
extended_variant.hpp
5351
0644
edit
dl
rm
handles_container.hpp
2084
0644
edit
dl
rm
has_semantic_action.hpp
1517
0644
edit
dl
rm
info.hpp
4836
0644
edit
dl
rm
lazy.hpp
1225
0644
edit
dl
rm
limits.hpp
607
0644
edit
dl
rm
make_component.hpp
15593
0644
edit
dl
rm
meta_compiler.hpp
12503
0644
edit
dl
rm
modify.hpp
3765
0644
edit
dl
rm
multi_pass.hpp
1708
0644
edit
dl
rm
multi_pass_wrapper.hpp
1419
0644
edit
dl
rm
numeric_traits.hpp
3559
0644
edit
dl
rm
sequence_base_id.hpp
1362
0644
edit
dl
rm
string_traits.hpp
10474
0644
edit
dl
rm
terminal.hpp
23296
0644
edit
dl
rm
terminal_expression.hpp
583
0644
edit
dl
rm
unused.hpp
2347
0644
edit
dl
rm
utf8.hpp
3613
0644
edit
dl
rm
utree.hpp
812
0644
edit
dl
rm
Edit:
/usr/include/boost/spirit/home/support/extended_variant.hpp
(5351B)
/*============================================================================= Copyright (c) 2001-2011 Joel de Guzman 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) ==============================================================================*/ #if !defined(BOOST_SPIRIT_EXTENDED_VARIANT_AUGUST_6_2011_0859AM) #define BOOST_SPIRIT_EXTENDED_VARIANT_AUGUST_6_2011_0859AM #if defined(_MSC_VER) #pragma once #endif #include <boost/variant.hpp> #include <boost/mpl/limits/list.hpp> #include <boost/preprocessor/repetition/enum_params.hpp> #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp> #if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) #define BOOST_SPIRIT_EXTENDED_VARIANT_LIMIT_TYPES BOOST_MPL_LIMIT_LIST_SIZE #else #define BOOST_SPIRIT_EXTENDED_VARIANT_LIMIT_TYPES BOOST_VARIANT_LIMIT_TYPES #endif #define BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T) \ BOOST_PP_ENUM_PARAMS(BOOST_SPIRIT_EXTENDED_VARIANT_LIMIT_TYPES, T) \ /**/ /////////////////////////////////////////////////////////////////////////////// namespace boost { namespace spirit { #if defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) template < BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( BOOST_SPIRIT_EXTENDED_VARIANT_LIMIT_TYPES, typename T, boost::detail::variant::void_) // We should not be depending on detail::variant::void_ // but I'm not sure if this can fixed. Any other way is // clumsy at best. > #else template <typename... Types> #endif struct extended_variant { // tell spirit that this is an adapted variant struct adapted_variant_tag; #if defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) typedef boost::variant< BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> variant_type; typedef typename variant_type::types types; typedef extended_variant< BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T) > base_type; #else typedef boost::variant<Types...> variant_type; typedef typename variant_type::types types; typedef extended_variant<Types...> base_type; #endif extended_variant() : var() {} template <typename T> extended_variant(T const& var) : var(var) {} template <typename T> extended_variant(T& var) : var(var) {} template <typename F> typename F::result_type apply_visitor(F const& v) { return var.apply_visitor(v); } template <typename F> typename F::result_type apply_visitor(F const& v) const { return var.apply_visitor(v); } template <typename F> typename F::result_type apply_visitor(F& v) { return var.apply_visitor(v); } template <typename F> typename F::result_type apply_visitor(F& v) const { return var.apply_visitor(v); } variant_type const& get() const { return var; } variant_type& get() { return var; } void swap(extended_variant& rhs) BOOST_NOEXCEPT { var.swap(rhs.var); } variant_type var; }; }} namespace boost { #if defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) template <typename T, BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(typename T)> inline T const& get(boost::spirit::extended_variant< BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const& x) { return boost::get<T>(x.get()); } template <typename T, BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(typename T)> inline T& get(boost::spirit::extended_variant< BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>& x) { return boost::get<T>(x.get()); } template <typename T, BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(typename T)> inline T const* get(boost::spirit::extended_variant< BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)> const* x) { return boost::get<T>(&x->get()); } template <typename T, BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(typename T)> inline T* get(boost::spirit::extended_variant< BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS(T)>* x) { return boost::get<T>(&x->get()); } #else template <typename T, typename... Types> inline T const& get(boost::spirit::extended_variant<Types...> const& x) { return boost::get<T>(x.get()); } template <typename T, typename... Types> inline T& get(boost::spirit::extended_variant<Types...>& x) { return boost::get<T>(x.get()); } template <typename T, typename... Types> inline T const* get(boost::spirit::extended_variant<Types...> const* x) { return boost::get<T>(&x->get()); } template <typename T, typename... Types> inline T* get(boost::spirit::extended_variant<Types...>* x) { return boost::get<T>(&x->get()); } #endif } #undef BOOST_SPIRIT_EXTENDED_VARIANT_ENUM_PARAMS #undef BOOST_SPIRIT_EXTENDED_VARIANT_LIMIT_TYPES #endif
Save
cmd:
run