Additional Codegear support macros and configuration.

[SVN r48893]
This commit is contained in:
John Maddock
2008-09-19 12:00:14 +00:00
parent 5194a3bad7
commit 525c53434b
8 changed files with 86 additions and 15 deletions
+7 -1
View File
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Mon Aug 25 10:51:52 2008
# This file was automatically generated on Thu Sep 18 23:32:18 2008
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -274,6 +274,9 @@ test-suite "BOOST_NO_MEMBER_TEMPLATE_KEYWORD" :
test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" :
[ run ../no_mem_tem_pnts_pass.cpp ]
[ compile-fail ../no_mem_tem_pnts_fail.cpp ] ;
test-suite "BOOST_NO_NESTED_FRIENDSHIP" :
[ run ../no_nested_friendship_pass.cpp ]
[ compile-fail ../no_nested_friendship_fail.cpp ] ;
test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
[ run ../no_ops_in_namespace_pass.cpp ]
[ compile-fail ../no_ops_in_namespace_fail.cpp ] ;
@@ -355,6 +358,9 @@ test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
test-suite "BOOST_NO_TYPEID" :
[ run ../no_typeid_pass.cpp ]
[ compile-fail ../no_typeid_fail.cpp ] ;
test-suite "BOOST_NO_TYPENAME_WITH_CTOR" :
[ run ../no_typename_with_ctor_pass.cpp ]
[ compile-fail ../no_typename_with_ctor_fail.cpp ] ;
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
[ run ../no_using_breaks_adl_pass.cpp ]
[ compile-fail ../no_using_breaks_adl_fail.cpp ] ;
+11 -10
View File
@@ -12,11 +12,18 @@
namespace boost_no_is_abstract{
#if defined(__CODEGEARC__)
template<class T>
struct is_abstract_test
{
// Deduction fails if T is void, function type,
// reference type (14.8.2/2)or an abstract class type
enum{ value = __is_abstract(T) };
};
#else
template<class T>
struct is_abstract_test
{
// Deduction fails if T is void, function type,
// reference type (14.8.2/2)or an abstract class type
// according to review status issue #337
//
template<class U>
@@ -29,9 +36,10 @@ struct is_abstract_test
#else
enum{ s1 = sizeof(check_sig<T>(0)) };
#endif
enum{ value = (s1 == sizeof(char)) };
};
#endif
struct non_abstract{};
struct abstract{ virtual void foo() = 0; };
@@ -43,10 +51,3 @@ int test()
}
+26
View File
@@ -0,0 +1,26 @@
// MACRO: BOOST_NO_TYPENAME_WITH_CTOR
// TITLE: Use of typename keyword with constructors
// DESCRIPTION: If the compiler rejects the typename keyword when calling
// the constructor of a dependent type
namespace boost_no_typename_with_ctor {
struct A {};
template <typename T>
struct B {
typedef T type;
};
template <typename T>
typename T::type f() {
return typename T::type();
}
int test() {
A a = f<B<A> >();
return 0;
}
}
+3
View File
@@ -982,6 +982,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_FRIENDS);
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP);
PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
@@ -1010,6 +1011,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES);
PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP);
PRINT_MACRO(BOOST_NO_TYPEID);
PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR);
PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION);
PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE);
PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
@@ -1035,6 +1037,7 @@ void print_boost_macros()
// END GENERATED BLOCK
+21 -1
View File
@@ -1,4 +1,4 @@
// This file was automatically generated on Mon Aug 25 10:51:52 2008
// This file was automatically generated on Thu Sep 18 23:32:18 2008
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -187,6 +187,11 @@ namespace boost_no_member_template_keyword = empty_boost;
#else
namespace boost_no_pointer_to_member_template_parameters = empty_boost;
#endif
#ifndef BOOST_NO_NESTED_FRIENDSHIP
#include "boost_no_nested_friendship.ipp"
#else
namespace boost_no_nested_friendship = empty_boost;
#endif
#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
#include "boost_no_ops_in_namespace.ipp"
#else
@@ -322,6 +327,11 @@ namespace boost_no_two_phase_name_lookup = empty_boost;
#else
namespace boost_no_typeid = empty_boost;
#endif
#ifndef BOOST_NO_TYPENAME_WITH_CTOR
#include "boost_no_typename_with_ctor.ipp"
#else
namespace boost_no_typename_with_ctor = empty_boost;
#endif
#ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#include "boost_no_using_breaks_adl.ipp"
#else
@@ -1026,6 +1036,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_nested_friendship::test())
{
std::cerr << "Failed test for BOOST_NO_NESTED_FRIENDSHIP at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_operators_in_namespace::test())
{
std::cerr << "Failed test for BOOST_NO_OPERATORS_IN_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1161,6 +1176,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_TYPEID at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_typename_with_ctor::test())
{
std::cerr << "Failed test for BOOST_NO_TYPENAME_WITH_CTOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_function_scope_using_declaration_breaks_adl::test())
{
std::cerr << "Failed test for BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL at: " << __FILE__ << ":" << __LINE__ << std::endl;