Files
boost_fusion/include/boost/fusion/container/generation/cons_tie.hpp
Kohei Takahashi 2114bfca6c 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.
2015-03-03 02:21:02 +09:00

47 lines
1.2 KiB
C++

/*=============================================================================
Copyright (c) 2001-2011 Joel de Guzman
Distributed under 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)
==============================================================================*/
#if !defined(FUSION_CONS_TIE_07182005_0854)
#define FUSION_CONS_TIE_07182005_0854
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/container/list/cons.hpp>
namespace boost { namespace fusion
{
struct nil_;
namespace result_of
{
template <typename Car, typename Cdr = nil_>
struct cons_tie
{
typedef cons<Car&, Cdr> type;
};
}
// $$$ do we really want a cons_tie? $$$
template <typename Car>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline cons<Car&>
cons_tie(Car& car)
{
return cons<Car&>(car);
}
// $$$ do we really want a cons_tie? $$$
template <typename Car, typename Cdr>
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
inline cons<Car&, Cdr>
cons_tie(Car& car, Cdr const& cdr)
{
return cons<Car&, Cdr>(car, cdr);
}
}}
#endif