Added AlisdairM's new macros.

[SVN r36547]
This commit is contained in:
John Maddock
2006-12-31 16:38:06 +00:00
parent b9714083dd
commit 06351de064
11 changed files with 268 additions and 12 deletions

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 Wed Feb 15 14:14:07 2006
# This file was automatically generated on Sun Dec 31 16:29:33 2006
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@ -207,6 +207,9 @@ test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
[ run no_exp_func_tem_arg_pass.cpp <template>config_options ]
[ compile-fail no_exp_func_tem_arg_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" :
[ run no_function_type_spec_pass.cpp <template>config_options ]
[ compile-fail no_function_type_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run no_func_tmp_order_pass.cpp <template>config_options ]
[ compile-fail no_func_tmp_order_fail.cpp <template>config_options ] ;
@ -312,6 +315,9 @@ test-suite "BOOST_NO_SWPRINTF" :
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run no_template_template_pass.cpp <template>config_options ]
[ compile-fail no_template_template_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
[ run no_two_phase_name_lookup_pass.cpp <template>config_options ]
[ compile-fail no_two_phase_name_lookup_fail.cpp <template>config_options ] ;
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
[ run no_using_breaks_adl_pass.cpp <template>config_options ]
[ compile-fail no_using_breaks_adl_fail.cpp <template>config_options ] ;
@ -328,4 +334,3 @@ test-suite "BOOST_NO_INTRINSIC_WCHAR_T" :
[ run no_wchar_t_pass.cpp <template>config_options ]
[ compile-fail no_wchar_t_fail.cpp <template>config_options ] ;

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 Wed Feb 15 14:14:07 2006
# This file was automatically generated on Sun Dec 31 16:29:33 2006
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@ -206,6 +206,9 @@ test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
[ run no_exp_func_tem_arg_pass.cpp ]
[ compile-fail no_exp_func_tem_arg_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" :
[ run no_function_type_spec_pass.cpp ]
[ compile-fail no_function_type_spec_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run no_func_tmp_order_pass.cpp ]
[ compile-fail no_func_tmp_order_fail.cpp ] ;
@ -311,6 +314,9 @@ test-suite "BOOST_NO_SWPRINTF" :
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run no_template_template_pass.cpp ]
[ compile-fail no_template_template_fail.cpp ] ;
test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
[ run no_two_phase_name_lookup_pass.cpp ]
[ compile-fail no_two_phase_name_lookup_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 ] ;
@ -327,4 +333,3 @@ test-suite "BOOST_NO_INTRINSIC_WCHAR_T" :
[ run no_wchar_t_pass.cpp ]
[ compile-fail no_wchar_t_fail.cpp ] ;

View File

@ -0,0 +1,44 @@
// (C) Copyright John Maddock 2001.
// (C) Copyright Aleksey Gurtovoy 2003.
// (C) Copyright Alisdair Meredith 2006.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
// TITLE: template specialisations of function types
// DESCRIPTION: If the compiler cannot handle template specialisations
// for function types
namespace boost_no_function_type_specializations{
template< typename T > struct is_function
{
};
struct X {};
enum Y { value };
// Tesst can declare specializations
typedef is_function< int( int ) > scalar_types;
typedef is_function< X( X ) > user_defined_type;
typedef is_function< int( Y ) > check_enum;
typedef is_function< X( X, int ) > multiple_arguments;
// Partial specialization test
// confirm const, volatile, pointers and references in args
template< typename X, typename Y, typename Z >
struct is_function< X( Y const &, volatile Z * ) >
{
};
int test()
{
return 0;
}
}

View File

@ -0,0 +1,41 @@
// (C) Copyright Alisdair Meredith 2006.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_NO_TWO_PHASE_NAME_LOOKUP
// TITLE: Two phase name lookup
// DESCRIPTION: If the compiler does not perform two phase name lookup
namespace boost_no_two_phase_name_lookup {
template< class T >
struct base {
int call() {
return 1;
}
};
int call() {
return 0;
}
template< class T >
struct derived : base< T > {
int call_test() {
return call();
}
};
int test()
{
derived< int > d;
return d.call_test();
}
}

View File

@ -958,6 +958,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_EXCEPTION_STD_NAMESPACE);
PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
@ -992,10 +993,14 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES);
PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP);
PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION);
PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE);
PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
PRINT_MACRO(BOOST_NO_VOID_RETURNS);
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);

View File

@ -1,4 +1,4 @@
// This file was automatically generated on Wed Feb 15 14:14:06 2006
// This file was automatically generated on Sun Dec 31 16:29:33 2006
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@ -94,6 +94,11 @@ namespace boost_no_exception_std_namespace = empty_boost;
#else
namespace boost_no_explicit_function_template_arguments = empty_boost;
#endif
#ifndef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
#include "boost_no_function_type_spec.ipp"
#else
namespace boost_no_function_type_specializations = empty_boost;
#endif
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
#include "boost_no_func_tmp_order.ipp"
#else
@ -269,6 +274,11 @@ namespace boost_no_swprintf = empty_boost;
#else
namespace boost_no_template_templates = empty_boost;
#endif
#ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#include "boost_no_two_phase_name_lookup.ipp"
#else
namespace boost_no_two_phase_name_lookup = empty_boost;
#endif
#ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#include "boost_no_using_breaks_adl.ipp"
#else
@ -843,6 +853,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_function_type_specializations::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_function_template_ordering::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_ORDERING at: " << __FILE__ << ":" << __LINE__ << std::endl;
@ -1018,6 +1033,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_TEMPLATE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_two_phase_name_lookup::test())
{
std::cerr << "Failed test for BOOST_NO_TWO_PHASE_NAME_LOOKUP 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;

View File

@ -0,0 +1,34 @@
// This file was automatically generated on Sun Dec 31 16:23:48 2006
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.
// Test file for macro BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
// This file should not compile, if it does then
// BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS should not be defined.
// See file boost_no_function_type_spec.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
#include "boost_no_function_type_spec.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_function_type_specializations::test();
}

View File

@ -0,0 +1,34 @@
// This file was automatically generated on Sun Dec 31 16:23:48 2006
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.
// Test file for macro BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
// This file should compile, if it does not then
// BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS should be defined.
// See file boost_no_function_type_spec.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
#include "boost_no_function_type_spec.ipp"
#else
namespace boost_no_function_type_specializations = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_function_type_specializations::test();
}

View File

@ -0,0 +1,34 @@
// This file was automatically generated on Sun Dec 31 16:29:33 2006
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.
// Test file for macro BOOST_NO_TWO_PHASE_NAME_LOOKUP
// This file should not compile, if it does then
// BOOST_NO_TWO_PHASE_NAME_LOOKUP should not be defined.
// See file boost_no_two_phase_name_lookup.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#include "boost_no_two_phase_name_lookup.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_two_phase_name_lookup::test();
}

View File

@ -0,0 +1,34 @@
// This file was automatically generated on Sun Dec 31 16:29:33 2006
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.
// Test file for macro BOOST_NO_TWO_PHASE_NAME_LOOKUP
// This file should compile, if it does not then
// BOOST_NO_TWO_PHASE_NAME_LOOKUP should be defined.
// See file boost_no_two_phase_name_lookup.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#include "boost_no_two_phase_name_lookup.ipp"
#else
namespace boost_no_two_phase_name_lookup = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_two_phase_name_lookup::test();
}

View File

@ -3,13 +3,13 @@
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
subproject libs/config/tools ;
# bring in the rules for testing
import testing ;
run generate.cpp
<lib>../../regex/build/boost_regex
<lib>../../filesystem/build/boost_filesystem
: : $(BOOST_ROOT) ;
../../regex/build//boost_regex
../../filesystem/build//boost_filesystem ../../system/build//boost_system
: ../../..
;