make boost::implicit_cast constexpr (fixes #25)

This commit is contained in:
Antony Polukhin
2021-04-21 20:51:14 +03:00
parent 4e557d31d1
commit 9e3216d22f
2 changed files with 10 additions and 1 deletions

View File

@@ -6,6 +6,11 @@
#ifndef BOOST_IMPLICIT_CAST_DWA200356_HPP
#define BOOST_IMPLICIT_CAST_DWA200356_HPP
#include <boost/config.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
# pragma once
#endif
namespace boost {
namespace detail {
@@ -23,7 +28,7 @@ template<class T> struct icast_identity
// The use of identity creates a non-deduced form, so that the
// explicit template argument must be supplied
template <typename T>
inline T implicit_cast (typename boost::detail::icast_identity<T>::type x) {
BOOST_CONSTEXPR inline T implicit_cast (typename boost::detail::icast_identity<T>::type x) {
return x;
}

View File

@@ -34,5 +34,9 @@ int main()
(void)f;
(void)z;
BOOST_CONSTEXPR long value = boost::implicit_cast<long>(42);
BOOST_TEST(value == 42L);
return boost::report_errors();
}