avoid default parameters for function templates, they confuse SunCC

[SVN r19100]
This commit is contained in:
Jens Maurer 2003-07-13 18:59:08 +00:00
parent 1ef77b0853
commit 3bd833c8ff

View File

@ -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;
} }