From 8b214b7ef77bf464b317d5298f06623d3026c11b Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 30 Apr 2001 11:27:10 +0000 Subject: [PATCH] modified to use boost test runtime environment [SVN r9992] --- tests/alignment_test.cpp | 3 +- tests/arithmetic_traits_test.cpp | 3 +- tests/composite_traits_test.cpp | 3 +- tests/cv_traits_test.cpp | 3 +- tests/is_convertible_test.cpp | 3 +- tests/is_function_test.cpp | 49 ++++++++++++++++++++++++++----- tests/is_same_test.cpp | 3 +- tests/object_type_traits_test.cpp | 3 +- tests/transform_traits_test.cpp | 3 +- 9 files changed, 57 insertions(+), 16 deletions(-) diff --git a/tests/alignment_test.cpp b/tests/alignment_test.cpp index 65dfef0..7427d0c 100644 --- a/tests/alignment_test.cpp +++ b/tests/alignment_test.cpp @@ -6,6 +6,7 @@ #include #include +#include #ifdef __BORLANDC__ #pragma hrdstop @@ -14,7 +15,7 @@ NESTED_DECL(alignment_of) -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { NESTED_TEST(alignment_of, int) NESTED_TEST(alignment_of, int_constructible) diff --git a/tests/arithmetic_traits_test.cpp b/tests/arithmetic_traits_test.cpp index 1e02239..a970634 100644 --- a/tests/arithmetic_traits_test.cpp +++ b/tests/arithmetic_traits_test.cpp @@ -5,6 +5,7 @@ // warranty, and with no claim as to its suitability for any purpose. #include +#include #include #ifdef __BORLANDC__ @@ -18,7 +19,7 @@ NESTED_DECL(is_float) NESTED_DECL(is_arithmetic) NESTED_DECL(is_fundamental) -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { NESTED_TEST(is_void, void) NESTED_TEST(is_void, int) diff --git a/tests/composite_traits_test.cpp b/tests/composite_traits_test.cpp index 45161e6..c5c3590 100644 --- a/tests/composite_traits_test.cpp +++ b/tests/composite_traits_test.cpp @@ -6,6 +6,7 @@ #include #include +#include #ifdef __BORLANDC__ #pragma hrdstop @@ -16,7 +17,7 @@ NESTED_DECL(is_array) NESTED_DECL(is_pointer) NESTED_DECL(is_reference) -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { NESTED_TEST(is_array, int) NESTED_TEST(is_array, int[2]) diff --git a/tests/cv_traits_test.cpp b/tests/cv_traits_test.cpp index acfcc02..29beb57 100644 --- a/tests/cv_traits_test.cpp +++ b/tests/cv_traits_test.cpp @@ -6,6 +6,7 @@ #include #include +#include #ifdef __BORLANDC__ #pragma hrdstop @@ -15,7 +16,7 @@ NESTED_DECL(is_const) NESTED_DECL(is_volatile) -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { NESTED_TEST(is_const, int) NESTED_TEST(is_const, const int) diff --git a/tests/is_convertible_test.cpp b/tests/is_convertible_test.cpp index b02f427..604dda6 100644 --- a/tests/is_convertible_test.cpp +++ b/tests/is_convertible_test.cpp @@ -6,10 +6,11 @@ #include #include +#include #include "boost/type_traits/type_traits_test.hpp" -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { value_test(true, (boost::is_convertible::value)); value_test(true, (boost::is_convertible::value)); diff --git a/tests/is_function_test.cpp b/tests/is_function_test.cpp index 3431602..140aeac 100644 --- a/tests/is_function_test.cpp +++ b/tests/is_function_test.cpp @@ -5,23 +5,42 @@ // warranty, and with no claim as to its suitability for any purpose. #include +#include #include "boost/type_traits/type_traits_test.hpp" template -#if !defined(__BORLANDC__) && !defined(__sgi) && !defined(__DECCXX) -void is_function_test(T& foo) -#else -void is_function_test(const T& foo) -#endif +struct is_function_tester { - value_test(true, ::boost::is_function::value); + static void check(); +}; + +template +void is_function_tester::check() +{ + if(false == ::boost::is_function::value) + { + // if we're not a function then we must be a + // function pointer: + value_test(false, ::boost::is_function::value); +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + value_test(true, ::boost::is_pointer::value); +#endif + } + else + { + // if we're a function then we must not be a + // function pointer: + value_test(true, ::boost::is_function::value); +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + value_test(false, ::boost::is_pointer::value); +#endif + } #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION value_test(false, ::boost::is_void::value); value_test(false, ::boost::is_integral::value); value_test(false, ::boost::is_float::value); value_test(false, ::boost::is_arithmetic::value); value_test(false, ::boost::is_fundamental::value); - value_test(false, ::boost::is_pointer::value); value_test(false, ::boost::is_reference::value); value_test(false, ::boost::is_member_pointer::value); value_test(false, ::boost::is_enum::value); @@ -39,6 +58,20 @@ void is_function_test(const T& foo) #endif } +template +void is_function_test(T& foo) +{ + is_function_tester::check(); +} +#ifndef BOOST_MSVC +template +void is_function_test(const T& foo) +{ + is_function_tester::check(); +} +#endif + + void foo0(){} void foo1(int){} void foo2(int&, double){} @@ -46,7 +79,7 @@ void foo3(int&, bool, int, int){} void foo4(int, bool, int*, int[], int, int, int, int, int){} -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { is_function_test(foo0); is_function_test(foo1); diff --git a/tests/is_same_test.cpp b/tests/is_same_test.cpp index bbb3ce1..50ac656 100644 --- a/tests/is_same_test.cpp +++ b/tests/is_same_test.cpp @@ -6,13 +6,14 @@ #include #include +#include #ifdef __BORLANDC__ #pragma hrdstop #endif #include "boost/type_traits/type_traits_test.hpp" -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { value_test(true, (::boost::is_same::value)) value_test(false, (::boost::is_same::value)) diff --git a/tests/object_type_traits_test.cpp b/tests/object_type_traits_test.cpp index 3005522..ad6e13d 100644 --- a/tests/object_type_traits_test.cpp +++ b/tests/object_type_traits_test.cpp @@ -6,6 +6,7 @@ #include #include +#include #ifdef __BORLANDC__ #pragma hrdstop @@ -18,7 +19,7 @@ NESTED_DECL(is_scalar) NESTED_DECL(is_compound) NESTED_DECL(is_POD) -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { NESTED_TEST(is_class, int) NESTED_TEST(is_class, UDT) diff --git a/tests/transform_traits_test.cpp b/tests/transform_traits_test.cpp index 58cb1f7..e7480fe 100644 --- a/tests/transform_traits_test.cpp +++ b/tests/transform_traits_test.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #ifdef __BORLANDC__ #pragma hrdstop @@ -434,7 +435,7 @@ void check_add_volatile() } -int main(int argc, char* argv[]) +int cpp_main(int argc, char* argv[]) { check_remove_const(); check_remove_volatile();