Skip to content

Commit eef4acf

Browse files
authored
Merge pull request #667 from pps83/literal-fix
Fix compilation when building with msvc's new preprocessor
2 parents 7fac807 + d927981 commit eef4acf

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

include/boost/multiprecision/cpp_int/literals.hpp

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -249,29 +249,30 @@ constexpr typename boost::multiprecision::literals::detail::unsigned_cpp_int_lit
249249
return boost::multiprecision::literals::detail::make_backend_from_pack<pt, typename boost::multiprecision::literals::detail::unsigned_cpp_int_literal_result_type<static_cast<unsigned>((sizeof...(STR)) - 2u)>::backend_type>::value;
250250
}
251251

252-
#define BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(Bits) \
253-
template <char... STR> \
254-
constexpr boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void> > operator BOOST_JOIN(""_cppi, Bits)() \
255-
{ \
256-
using pt = typename boost::multiprecision::literals::detail::make_packed_value_from_str<STR...>::type; \
257-
return boost::multiprecision::literals::detail::make_backend_from_pack< \
258-
pt, \
259-
boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void> >::value; \
260-
} \
261-
template <char... STR> \
262-
constexpr boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void> > operator BOOST_JOIN(""_cppui, Bits)() \
263-
{ \
264-
using pt = typename boost::multiprecision::literals::detail::make_packed_value_from_str<STR...>::type; \
265-
return boost::multiprecision::literals::detail::make_backend_from_pack< \
266-
pt, \
267-
boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void> >::value; \
252+
#define BOOST_MP_LIT(P, N) BOOST_JOIN(operator "", BOOST_JOIN(P, N))
253+
#define BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(Bits) \
254+
template <char... STR> \
255+
constexpr boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void> > BOOST_MP_LIT(_cppi, Bits)() \
256+
{ \
257+
using pt = typename boost::multiprecision::literals::detail::make_packed_value_from_str<STR...>::type; \
258+
return boost::multiprecision::literals::detail::make_backend_from_pack< \
259+
pt, \
260+
boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void> >::value; \
261+
} \
262+
template <char... STR> \
263+
constexpr boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void> > BOOST_MP_LIT(_cppui, Bits)() \
264+
{ \
265+
using pt = typename boost::multiprecision::literals::detail::make_packed_value_from_str<STR...>::type; \
266+
return boost::multiprecision::literals::detail::make_backend_from_pack< \
267+
pt, \
268+
boost::multiprecision::backends::cpp_int_backend<Bits, Bits, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void> >::value; \
268269
}
269270

270271
BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(128)
271272
BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(256)
272273
BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(512)
273274
BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(1024)
274-
275+
#undef BOOST_MP_LIT
275276
} // namespace literals
276277

277278
//

0 commit comments

Comments
 (0)