default.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 70 行

HPP
70
字号
// 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 Keywordtemplate <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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?