// 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 #include #include #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, boost::is_convertible > , optional, boost::is_convertible > > >( (_x = 0, _y = not_present, _z = "foo") , _x = 0 , "foo" ); check< parameters< tag::x , required, boost::is_convertible > , optional, boost::is_convertible > > >( (_x = 0, _y = 1, _z = "foo") , 0 , "foo" , 1 ); check< parameters< tag::x , required, boost::is_convertible > , optional, boost::is_convertible > > >( (_x = 0, _y = 1, _z = "foo") , 0 , 1 , "foo" ); check< parameters< tag::x , required, boost::is_convertible > , optional, boost::is_convertible > > >( (_x = 0, _y = 1, _z = "foo") , 0 , _y = 1 , "foo" ); check< parameters< tag::x , required, boost::is_convertible > , optional, boost::is_convertible > > >( (_x = 0, _y = 1, _z = "foo") , _z = "foo" , _x = 0 , 1 ); // Fails becasue of parameters.hpp:428 /* check< parameters< tag::x , required, boost::is_convertible > , optional, boost::is_convertible > > >( (_x = 0, _y = 1, _z = "foo") , _x = 0 , (long*)0 , 1 ); */ return 0; };