Compare commits

..

7 Commits

Author SHA1 Message Date
Edward Diener
247536c841 Merge remote-tracking branch 'remotes/origin/master' into develop 2017-04-24 12:35:13 -04:00
Edward Diener
fd4a18d490 Merge branch 'develop' 2017-01-04 11:24:52 -05:00
Edward Diener
a2da4c32f5 Merge pull request #9 from rick68/patch-1
improve aux::arg_list<>::operator[]()
2016-12-24 01:27:15 -05:00
Wei-Ming Yang
a3b5ce8a93 improve aux::arg_list<>::operator[]()
Add the assert to avoid ugly message when invoked `arg_list<>::operator[](lazy_default<>)` with `maybe<>`
2016-11-23 09:53:54 +08:00
Edward Diener
612563e0fe Include math.h first to avoid Python _hypot redefinition bug 2016-11-07 15:33:55 -05:00
Edward Diener
904e2f5020 Use unique_ptr instead of auto_ptr where appropriate 2016-11-07 15:32:11 -05:00
Rene Rivera
9a8ad86fd7 Add, and update, documentation build targets. 2016-10-07 23:07:35 -05:00
4 changed files with 47 additions and 1 deletions

View File

@@ -339,6 +339,7 @@ struct arg_list : Next
template <class Default>
reference operator[](lazy_default<key_type, Default>) const
{
BOOST_MPL_ASSERT_NOT((holds_maybe));
return arg.value;
}

View File

@@ -3,6 +3,7 @@
#include <boost/mpl/is_sequence.hpp>
#include <boost/noncopyable.hpp>
#include <memory>
#include <boost/config.hpp>
using namespace boost::parameter;
using boost::mpl::_;
@@ -86,7 +87,16 @@ struct D {};
using boost::python::bases;
typedef boost::python::class_<B, boost::noncopyable> c1;
#if defined(BOOST_NO_CXX11_SMART_PTR)
typedef boost::python::class_<D, std::auto_ptr<D>, bases<B> > c2;
#else
typedef boost::python::class_<D, std::unique_ptr<D>, bases<B> > c2;
#endif
BOOST_MPL_ASSERT((boost::is_same<c1::class_type, B>));
BOOST_MPL_ASSERT((boost::is_same<c1::base_list, bases<> >));
BOOST_MPL_ASSERT((boost::is_same<c1::held_type, B>));
@@ -96,8 +106,19 @@ BOOST_MPL_ASSERT((
BOOST_MPL_ASSERT((boost::is_same<c2::class_type, D>));
BOOST_MPL_ASSERT((boost::is_same<c2::base_list, bases<B> >));
#if defined(BOOST_NO_CXX11_SMART_PTR)
BOOST_MPL_ASSERT((
boost::is_same<c2::held_type, std::auto_ptr<D> >
));
BOOST_MPL_ASSERT((boost::is_same<c2::copyable, void>));
#else
BOOST_MPL_ASSERT((
boost::is_same<c2::held_type, std::unique_ptr<D> >
));
#endif
BOOST_MPL_ASSERT((boost::is_same<c2::copyable, void>));

View File

@@ -4,6 +4,7 @@
#include <boost/noncopyable.hpp>
#include <boost/type_traits/is_class.hpp>
#include <memory>
#include <boost/config.hpp>
using namespace boost::parameter;
@@ -77,7 +78,17 @@ typedef boost::python::class_<
> c1;
typedef boost::python::class_<
#if defined(BOOST_NO_CXX11_SMART_PTR)
D, held_type<std::auto_ptr<D> >, base_list<bases<B> >
#else
D, held_type<std::unique_ptr<D> >, base_list<bases<B> >
#endif
> c2;
BOOST_MPL_ASSERT((boost::is_same<c1::class_type, B>));
@@ -89,7 +100,19 @@ BOOST_MPL_ASSERT((
BOOST_MPL_ASSERT((boost::is_same<c2::class_type, D>));
BOOST_MPL_ASSERT((boost::is_same<c2::base_list, bases<B> >));
#if defined(BOOST_NO_CXX11_SMART_PTR)
BOOST_MPL_ASSERT((
boost::is_same<c2::held_type, std::auto_ptr<D> >
));
#else
BOOST_MPL_ASSERT((
boost::is_same<c2::held_type, std::unique_ptr<D> >
));
#endif
BOOST_MPL_ASSERT((boost::is_same<c2::copyable, void>));

View File

@@ -2,6 +2,7 @@
// 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 <math.h>
#include <boost/python.hpp>
#include <boost/parameter/preprocessor.hpp>
#include <boost/parameter/keyword.hpp>