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 + -
显示快捷键?