More constexpr and noexcept support.

Note 1: Forwarding functions are specified as a C++14 constexpr since
std::forward is not a constexpr within C++11.

Note 2: Though I'm not sure why it doesn't compile, some declarations
are specified as a C++14 constexpr or non-constexpr.

Note 3: Boost.Tuple adaptation and TR1-based tuple implementations are
not constexpr.
This commit is contained in:
Kohei Takahashi committed 2015-03-03 02:21:02 +09:00
1 parent d7c918e36f
commit 2114bfca6c
280 files changed
+1107 -935

No files matched your search

@@ -34,7 +34,7 @@ namespace boost { namespace fusion
typename mpl::plus<typename Iterator::position, Dist>::type>
type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -31,7 +31,7 @@ namespace boost { namespace fusion
BOOST_MPL_ASSERT((mpl::equal_to<N, mpl::int_<0> >));
typedef typename Sequence::value_type type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
@@ -31,7 +31,7 @@ namespace boost { namespace fusion
{
typedef single_view_iterator<Sequence, mpl::int_<0> > type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
@@ -31,7 +31,7 @@ namespace boost { namespace fusion
BOOST_MPL_ASSERT((mpl::equal_to<typename Iterator::position, mpl::int_<0> >));
typedef typename Iterator::value_type type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -30,7 +30,7 @@ namespace boost { namespace fusion
typedef typename mpl::minus<typename Last::position,
typename First::position>::type type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(First const& /*first*/, Last const& /*last*/)
{
@@ -31,7 +31,7 @@ namespace boost { namespace fusion
{
typedef single_view_iterator<Sequence, mpl::int_<1> > type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
@@ -35,7 +35,7 @@ namespace boost { namespace fusion
typename mpl::next<typename Iterator::position>::type>
type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -33,7 +33,7 @@ namespace boost { namespace fusion
typename mpl::prior<typename Iterator::position>::type>
type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -43,18 +43,19 @@ namespace boost { namespace fusion
typedef mpl::int_<1> size;
typedef T value_type;
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
single_view()
: val() {}
BOOST_FUSION_GPU_ENABLED explicit single_view(typename detail::call_param<T>::type in_val)
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit single_view(typename detail::call_param<T>::type in_val)
: val(in_val) {}
value_type val;
};
template <typename T>
BOOST_FUSION_GPU_ENABLED
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline single_view<typename detail::as_fusion_element<T>::type>
make_single_view(T const& v)
{
@@ -40,7 +40,8 @@ namespace boost { namespace fusion
typedef Pos position;
typedef SingleView single_view_type;
BOOST_FUSION_GPU_ENABLED explicit single_view_iterator(single_view_type& in_view)
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
explicit single_view_iterator(single_view_type& in_view)
: view(in_view) {}
SingleView& view;