deduced.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 115 行
CPP
115 行
// Copyright Daniel Wallin 2006. 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)#include <boost/parameter/parameters.hpp>#include <boost/parameter/name.hpp>#include <boost/parameter/binding.hpp>#include "deduced.hpp"namespace parameter = boost::parameter;namespace mpl = boost::mpl;BOOST_PARAMETER_NAME(x)BOOST_PARAMETER_NAME(y)BOOST_PARAMETER_NAME(z)int main(){ using namespace parameter; check< parameters< tag::x , tag::y > >( (_x = 0, _y = 1) , 0 , 1 ); check< parameters< tag::x , required<deduced<tag::y>, boost::is_convertible<mpl::_, int> > , optional<deduced<tag::z>, boost::is_convertible<mpl::_, char const*> > > >( (_x = 0, _y = not_present, _z = "foo") , _x = 0 , "foo" ); check< parameters< tag::x , required<deduced<tag::y>, boost::is_convertible<mpl::_, int> > , optional<deduced<tag::z>, boost::is_convertible<mpl::_, char const*> > > >( (_x = 0, _y = 1, _z = "foo") , 0 , "foo" , 1 ); check< parameters< tag::x , required<deduced<tag::y>, boost::is_convertible<mpl::_, int> > , optional<deduced<tag::z>, boost::is_convertible<mpl::_, char const*> > > >( (_x = 0, _y = 1, _z = "foo") , 0 , 1 , "foo" ); check< parameters< tag::x , required<deduced<tag::y>, boost::is_convertible<mpl::_, int> > , optional<deduced<tag::z>, boost::is_convertible<mpl::_, char const*> > > >( (_x = 0, _y = 1, _z = "foo") , 0 , _y = 1 , "foo" ); check< parameters< tag::x , required<deduced<tag::y>, boost::is_convertible<mpl::_, int> > , optional<deduced<tag::z>, boost::is_convertible<mpl::_, char const*> > > >( (_x = 0, _y = 1, _z = "foo") , _z = "foo" , _x = 0 , 1 ); // Fails becasue of parameters.hpp:428/* check< parameters< tag::x , required<deduced<tag::y>, boost::is_convertible<mpl::_, int> > , optional<deduced<tag::z>, boost::is_convertible<mpl::_, char const*> > > >( (_x = 0, _y = 1, _z = "foo") , _x = 0 , (long*)0 , 1 );*/ return 0;};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?