/usr/include/boost/parameter/aux_
NameSizeModeActions
pack/-0755rm
pp_impl/-0755rm
preprocessor/-0755rm
python/-0755rm
always_true_predicate.hpp11490644editdlrm
arg_list.hpp439830644editdlrm
as_lvalue.hpp5850644editdlrm
augment_predicate.hpp59480644editdlrm
cast.hpp3660644editdlrm
default.hpp29200644editdlrm
has_nested_template_fn.hpp32840644editdlrm
is_maybe.hpp14370644editdlrm
is_placeholder.hpp15330644editdlrm
is_tagged_argument.hpp29540644editdlrm
lambda_tag.hpp4770644editdlrm
maybe.hpp42540644editdlrm
name.hpp27410644editdlrm
parameter_requirements.hpp4080644editdlrm
parenthesized_type.hpp4160644editdlrm
result_of0.hpp14710644editdlrm
set.hpp31820644editdlrm
tag.hpp55750644editdlrm
tagged_argument.hpp303340644editdlrm
tagged_argument_fwd.hpp10310644editdlrm
template_keyword.hpp27340644editdlrm
unwrap_cv_reference.hpp58780644editdlrm
use_default.hpp4540644editdlrm
use_default_tag.hpp7870644editdlrm
void.hpp9980644editdlrm
yesno.hpp15230644editdlrm
Edit: /usr/include/boost/parameter/aux_/maybe.hpp (4254B)
// Copyright Daniel Wallin 2006. // 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) // // 2009.10.21 TDS remove depenency on boost::python::detail::referent_storage // #ifndef BOOST_PARAMETER_MAYBE_091021_HPP #define BOOST_PARAMETER_MAYBE_091021_HPP namespace boost { namespace parameter { namespace aux { template struct referent_size; }}} // namespace boost::parameter::aux #include namespace boost { namespace parameter { namespace aux { template struct referent_size { BOOST_STATIC_CONSTANT(::std::size_t, value = sizeof(T)); }; }}} // namespace boost::parameter::aux #include namespace boost { namespace parameter { namespace aux { // A metafunction returning a POD type which can store U, where T == U&. // If T is not a reference type, returns a POD which can store T. template struct referent_storage : ::boost::aligned_storage< ::boost::parameter::aux::referent_size::value > { }; }}} // namespace boost::parameter::aux #include #include #if defined(BOOST_PARAMETER_CAN_USE_MP11) #include #else // !defined(BOOST_PARAMETER_CAN_USE_MP11) #include #include #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) #include #endif #endif // BOOST_PARAMETER_CAN_USE_MP11 namespace boost { namespace parameter { namespace aux { template struct maybe : ::boost::parameter::aux::maybe_base { #if defined(BOOST_PARAMETER_CAN_USE_MP11) typedef typename ::std::add_lvalue_reference< typename ::std::add_const::type #else // !defined(BOOST_PARAMETER_CAN_USE_MP11) typedef typename ::boost::add_lvalue_reference< #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) T const #else typename ::boost::add_const::type #endif #endif // BOOST_PARAMETER_CAN_USE_MP11 >::type reference; #if defined(BOOST_PARAMETER_CAN_USE_MP11) typedef typename ::std::remove_cv< typename ::std::remove_reference::type #else typedef typename ::boost::remove_cv< BOOST_DEDUCED_TYPENAME ::boost::remove_reference::type #endif >::type non_cv_value; inline explicit maybe(T value_) : value(value_), constructed(false) { } inline maybe() : value(), constructed(false) { } ~maybe() { if (this->constructed) { this->destroy(); } } inline reference construct(reference value_) const { return value_; } template reference construct2(U const& value_) const { new (this->m_storage.address()) non_cv_value(value_); this->constructed = true; return *reinterpret_cast( this->m_storage.address() ); } template inline reference construct(U const& value_) const { return this->construct2(value_); } void destroy() { reinterpret_cast( this->m_storage.address() )->~non_cv_value(); } typedef reference( ::boost::parameter::aux::maybe::*safe_bool )() const; inline operator safe_bool() const { return this->value ? &::boost::parameter::aux::maybe::get : 0; } inline reference get() const { return this->value.get(); } private: ::boost::optional value; mutable bool constructed; mutable typename ::boost::parameter::aux ::referent_storage::type m_storage; }; }}} // namespace boost::parameter::aux #endif // include guard