mirror of
https://github.com/boostorg/utility.git
synced 2025-05-09 15:04:00 +00:00
avoid default parameters for function templates, they confuse SunCC
[SVN r19100]
This commit is contained in:
parent
1ef77b0853
commit
3bd833c8ff
@ -214,7 +214,7 @@ struct signed_tag {};
|
|||||||
// Tests for unsigned numbers. The extra default Number parameter works around
|
// Tests for unsigned numbers. The extra default Number parameter works around
|
||||||
// an MSVC bug.
|
// an MSVC bug.
|
||||||
template <class Number>
|
template <class Number>
|
||||||
void test_aux(unsigned_tag, Number* = 0)
|
void test_aux(unsigned_tag, Number*)
|
||||||
{
|
{
|
||||||
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
||||||
BOOST_STATIC_ASSERT(!boost::detail::is_signed<Number>::value);
|
BOOST_STATIC_ASSERT(!boost::detail::is_signed<Number>::value);
|
||||||
@ -256,7 +256,7 @@ struct in_range_tag {};
|
|||||||
// This test morsel gets executed for numbers whose difference will always be
|
// This test morsel gets executed for numbers whose difference will always be
|
||||||
// representable in intmax_t
|
// representable in intmax_t
|
||||||
template <class Number>
|
template <class Number>
|
||||||
void signed_test(in_range_tag, Number* = 0)
|
void signed_test(in_range_tag, Number*)
|
||||||
{
|
{
|
||||||
BOOST_STATIC_ASSERT(boost::detail::is_signed<Number>::value);
|
BOOST_STATIC_ASSERT(boost::detail::is_signed<Number>::value);
|
||||||
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
||||||
@ -277,7 +277,7 @@ void signed_test(in_range_tag, Number* = 0)
|
|||||||
// This test morsel gets executed for numbers whose difference may exceed the
|
// This test morsel gets executed for numbers whose difference may exceed the
|
||||||
// capacity of intmax_t.
|
// capacity of intmax_t.
|
||||||
template <class Number>
|
template <class Number>
|
||||||
void signed_test(out_of_range_tag, Number* = 0)
|
void signed_test(out_of_range_tag, Number*)
|
||||||
{
|
{
|
||||||
BOOST_STATIC_ASSERT(boost::detail::is_signed<Number>::value);
|
BOOST_STATIC_ASSERT(boost::detail::is_signed<Number>::value);
|
||||||
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
||||||
@ -301,7 +301,7 @@ void signed_test(out_of_range_tag, Number* = 0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class Number>
|
template <class Number>
|
||||||
void test_aux(signed_tag, Number* = 0)
|
void test_aux(signed_tag, Number*)
|
||||||
{
|
{
|
||||||
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
typedef typename boost::detail::numeric_traits<Number>::difference_type difference_type;
|
||||||
BOOST_STATIC_ASSERT(boost::detail::is_signed<Number>::value);
|
BOOST_STATIC_ASSERT(boost::detail::is_signed<Number>::value);
|
||||||
@ -328,7 +328,7 @@ void test_aux(signed_tag, Number* = 0)
|
|||||||
out_of_range_tag
|
out_of_range_tag
|
||||||
>::type
|
>::type
|
||||||
range_tag;
|
range_tag;
|
||||||
signed_test<Number>(range_tag());
|
signed_test<Number>(range_tag(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -358,7 +358,7 @@ void test(Number* = 0)
|
|||||||
boost::detail::is_signed<Number>::value
|
boost::detail::is_signed<Number>::value
|
||||||
>::template then<signed_tag, unsigned_tag>::type signedness;
|
>::template then<signed_tag, unsigned_tag>::type signedness;
|
||||||
|
|
||||||
test_aux<Number>(signedness());
|
test_aux<Number>(signedness(), 0);
|
||||||
std::cout << "passed" << std::endl;
|
std::cout << "passed" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user