Sha256: 079d6b08a3e4408f8ed941dad6bf3d8d0e6ec151d6a0c2ebb93ac25f8a30310e
Contents?: true
Size: 1.82 KB
Versions: 69
Compression:
Stored size: 1.82 KB
Contents
// Copyright Daniel Wallin, David Abrahams 2005. Use, modification and // distribution is subject to 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) #ifndef DEFAULT_050329_HPP # define DEFAULT_050329_HPP # include <boost/detail/workaround.hpp> namespace boost { namespace parameter { namespace aux { // A wrapper for the default value passed by the user when resolving // the value of the parameter with the given Keyword template <class Keyword, class Value> struct default_ { default_(Value& x) : value(x) {} Value& value; }; // // lazy_default -- // // A wrapper for the default value computation function passed by // the user when resolving the value of the parameter with the // given keyword // # if BOOST_WORKAROUND(__EDG_VERSION__, <= 300) // These compilers need a little extra help with overload // resolution; we have empty_arg_list's operator[] accept a base // class to make that overload less preferable. template <class KW, class DefaultComputer> struct lazy_default_base { lazy_default_base(DefaultComputer const& x) : compute_default(x) {} DefaultComputer const& compute_default; }; template <class KW, class DefaultComputer> struct lazy_default : lazy_default_base<KW,DefaultComputer> { lazy_default(DefaultComputer const & x) : lazy_default_base<KW,DefaultComputer>(x) {} }; # define BOOST_PARAMETER_lazy_default_fallback lazy_default_base # else template <class KW, class DefaultComputer> struct lazy_default { lazy_default(const DefaultComputer& x) : compute_default(x) {} DefaultComputer const& compute_default; }; # define BOOST_PARAMETER_lazy_default_fallback lazy_default # endif }}} // namespace boost::parameter::aux #endif // DEFAULT_050329_HPP
Version data entries
69 entries across 69 versions & 3 rubygems