Ticket #2327: libs_config2.patch
File libs_config2.patch, 14.6 KB (added by , 14 years ago) |
---|
-
doc/macro_reference.qbk
171 171 specializations as a standard library "fix", only if the compiler supports 172 172 the `__int64` datatype. 173 173 ]] 174 [[`BOOST_NO_NESTED_FRIENDSHIP`][Compiler][ 175 Compiler doesn't allow a nested class to access private members of its 176 containing class. Probably Borland/CodeGear specific. 177 ]] 174 178 [[`BOOST_NO_OPERATORS_IN_NAMESPACE`][Compiler][ 175 179 Compiler requires inherited operator friend functions to be defined at 176 180 namespace scope, then using'ed to boost. Probably GCC specific. See … … 271 275 [[`BOOST_NO_TYPEID`][Compiler][ 272 276 The compiler does not support the typeid operator at all. 273 277 ]] 278 [[`BOOST_NO_TYPENAME_WITH_CTOR`][Compiler][ 279 The typename keyword cannot be used when creating a temporary of a 280 Dependent type. 281 ]] 274 282 [[`BOOST_NO_UNREACHABLE_RETURN_DETECTION`][Compiler][ 275 283 If a return is unreachable, then no return statement should be required, 276 284 however some compilers insist on it, while other issue a bunch of warnings -
test/all/Jamfile.v2
1 1 # 2 2 # Regression test Jamfile for boost configuration setup. 3 3 # *** DO NOT EDIT THIS FILE BY HAND *** 4 # This file was automatically generated on Mon Aug 25 10:51:5220084 # This file was automatically generated on Thu Sep 18 23:32:18 2008 5 5 # by libs/config/tools/generate.cpp 6 6 # Copyright John Maddock. 7 7 # Use, modification and distribution are subject to the … … 274 274 test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" : 275 275 [ run ../no_mem_tem_pnts_pass.cpp ] 276 276 [ compile-fail ../no_mem_tem_pnts_fail.cpp ] ; 277 test-suite "BOOST_NO_NESTED_FRIENDSHIP" : 278 [ run ../no_nested_friendship_pass.cpp ] 279 [ compile-fail ../no_nested_friendship_fail.cpp ] ; 277 280 test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" : 278 281 [ run ../no_ops_in_namespace_pass.cpp ] 279 282 [ compile-fail ../no_ops_in_namespace_fail.cpp ] ; … … 355 358 test-suite "BOOST_NO_TYPEID" : 356 359 [ run ../no_typeid_pass.cpp ] 357 360 [ compile-fail ../no_typeid_fail.cpp ] ; 361 test-suite "BOOST_NO_TYPENAME_WITH_CTOR" : 362 [ run ../no_typename_with_ctor_pass.cpp ] 363 [ compile-fail ../no_typename_with_ctor_fail.cpp ] ; 358 364 test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" : 359 365 [ run ../no_using_breaks_adl_pass.cpp ] 360 366 [ compile-fail ../no_using_breaks_adl_fail.cpp ] ; -
test/boost_no_is_abstract.ipp
12 12 13 13 namespace boost_no_is_abstract{ 14 14 15 #if defined(__CODEGEARC__) 15 16 template<class T> 16 17 struct is_abstract_test 17 18 { 18 // Deduction fails if T is void, function type, 19 // reference type (14.8.2/2)or an abstract class type 19 enum{ value = __is_abstract(T) }; 20 }; 21 #else 22 template<class T> 23 struct is_abstract_test 24 { 25 // Deduction fails if T is void, function type, 26 // reference type (14.8.2/2)or an abstract class type 20 27 // according to review status issue #337 21 28 // 22 29 template<class U> … … 29 36 #else 30 37 enum{ s1 = sizeof(check_sig<T>(0)) }; 31 38 #endif 32 39 33 40 enum{ value = (s1 == sizeof(char)) }; 34 41 }; 42 #endif 35 43 36 44 struct non_abstract{}; 37 45 struct abstract{ virtual void foo() = 0; }; -
test/boost_no_nested_friendship.ipp
1 // MACRO: BOOST_NO_NESTED_FRIENDSHIP 2 // TITLE: Access to private members from nested classes 3 // DESCRIPTION: If the compiler fails to support access to private members 4 // from nested classes 5 6 namespace boost_no_nested_friendship { 7 8 class A { 9 static int b; 10 class B { 11 int f() { return b; } 12 }; 13 }; 14 15 int test() 16 { 17 return 0; 18 } 19 20 } 21 -
test/boost_no_typename_with_ctor.ipp
Property changes on: test\boost_no_nested_friendship.ipp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native
1 // MACRO: BOOST_NO_TYPENAME_WITH_CTOR 2 // TITLE: Use of typename keyword with constructors 3 // DESCRIPTION: If the compiler rejects the typename keyword when calling 4 // the constructor of a dependent type 5 6 namespace boost_no_typename_with_ctor { 7 8 struct A {}; 9 10 template <typename T> 11 struct B { 12 typedef T type; 13 }; 14 15 template <typename T> 16 typename T::type f() { 17 return typename T::type(); 18 } 19 20 int test() { 21 A a = f<B<A> >(); 22 return 0; 23 } 24 25 } 26 -
test/config_info.cpp
Property changes on: test\boost_no_typename_with_ctor.ipp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native
982 982 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_FRIENDS); 983 983 PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD); 984 984 PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS); 985 PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP); 985 986 PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE); 986 987 PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS); 987 988 PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST); … … 1010 1011 PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES); 1011 1012 PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP); 1012 1013 PRINT_MACRO(BOOST_NO_TYPEID); 1014 PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR); 1013 1015 PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION); 1014 1016 PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE); 1015 1017 PRINT_MACRO(BOOST_NO_USING_TEMPLATE); … … 1037 1039 1038 1040 1039 1041 1042 1040 1043 // END GENERATED BLOCK 1041 1044 1042 1045 PRINT_MACRO(BOOST_INTEL); -
test/config_test.cpp
1 // This file was automatically generated on Mon Aug 25 10:51:5220081 // This file was automatically generated on Thu Sep 18 23:32:18 2008 2 2 // by libs/config/tools/generate.cpp 3 3 // Copyright John Maddock 2002-4. 4 4 // Use, modification and distribution are subject to the … … 187 187 #else 188 188 namespace boost_no_pointer_to_member_template_parameters = empty_boost; 189 189 #endif 190 #ifndef BOOST_NO_NESTED_FRIENDSHIP 191 #include "boost_no_nested_friendship.ipp" 192 #else 193 namespace boost_no_nested_friendship = empty_boost; 194 #endif 190 195 #ifndef BOOST_NO_OPERATORS_IN_NAMESPACE 191 196 #include "boost_no_ops_in_namespace.ipp" 192 197 #else … … 322 327 #else 323 328 namespace boost_no_typeid = empty_boost; 324 329 #endif 330 #ifndef BOOST_NO_TYPENAME_WITH_CTOR 331 #include "boost_no_typename_with_ctor.ipp" 332 #else 333 namespace boost_no_typename_with_ctor = empty_boost; 334 #endif 325 335 #ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL 326 336 #include "boost_no_using_breaks_adl.ipp" 327 337 #else … … 1026 1036 std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl; 1027 1037 ++error_count; 1028 1038 } 1039 if(0 != boost_no_nested_friendship::test()) 1040 { 1041 std::cerr << "Failed test for BOOST_NO_NESTED_FRIENDSHIP at: " << __FILE__ << ":" << __LINE__ << std::endl; 1042 ++error_count; 1043 } 1029 1044 if(0 != boost_no_operators_in_namespace::test()) 1030 1045 { 1031 1046 std::cerr << "Failed test for BOOST_NO_OPERATORS_IN_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl; … … 1161 1176 std::cerr << "Failed test for BOOST_NO_TYPEID at: " << __FILE__ << ":" << __LINE__ << std::endl; 1162 1177 ++error_count; 1163 1178 } 1179 if(0 != boost_no_typename_with_ctor::test()) 1180 { 1181 std::cerr << "Failed test for BOOST_NO_TYPENAME_WITH_CTOR at: " << __FILE__ << ":" << __LINE__ << std::endl; 1182 ++error_count; 1183 } 1164 1184 if(0 != boost_function_scope_using_declaration_breaks_adl::test()) 1165 1185 { 1166 1186 std::cerr << "Failed test for BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL at: " << __FILE__ << ":" << __LINE__ << std::endl; -
test/no_nested_friendship_fail.cpp
1 // This file was automatically generated on Thu Sep 18 23:32:18 2008 2 // by libs/config/tools/generate.cpp 3 // Copyright John Maddock 2002-4. 4 // Use, modification and distribution are subject to the 5 // Boost Software License, Version 1.0. (See accompanying file 6 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 8 // See http://www.boost.org/libs/config for the most recent version.// 9 // Revision $Id$ 10 // 11 12 13 // Test file for macro BOOST_NO_NESTED_FRIENDSHIP 14 // This file should not compile, if it does then 15 // BOOST_NO_NESTED_FRIENDSHIP should not be defined. 16 // See file boost_no_nested_friendship.ipp for details 17 18 // Must not have BOOST_ASSERT_CONFIG set; it defeats 19 // the objective of this file: 20 #ifdef BOOST_ASSERT_CONFIG 21 # undef BOOST_ASSERT_CONFIG 22 #endif 23 24 #include <boost/config.hpp> 25 #include "test.hpp" 26 27 #ifdef BOOST_NO_NESTED_FRIENDSHIP 28 #include "boost_no_nested_friendship.ipp" 29 #else 30 #error "this file should not compile" 31 #endif 32 33 int main( int, char *[] ) 34 { 35 return boost_no_nested_friendship::test(); 36 } 37 -
test/no_nested_friendship_pass.cpp
Property changes on: test\no_nested_friendship_fail.cpp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native
1 // This file was automatically generated on Thu Sep 18 23:32:18 2008 2 // by libs/config/tools/generate.cpp 3 // Copyright John Maddock 2002-4. 4 // Use, modification and distribution are subject to the 5 // Boost Software License, Version 1.0. (See accompanying file 6 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 8 // See http://www.boost.org/libs/config for the most recent version.// 9 // Revision $Id$ 10 // 11 12 13 // Test file for macro BOOST_NO_NESTED_FRIENDSHIP 14 // This file should compile, if it does not then 15 // BOOST_NO_NESTED_FRIENDSHIP should be defined. 16 // See file boost_no_nested_friendship.ipp for details 17 18 // Must not have BOOST_ASSERT_CONFIG set; it defeats 19 // the objective of this file: 20 #ifdef BOOST_ASSERT_CONFIG 21 # undef BOOST_ASSERT_CONFIG 22 #endif 23 24 #include <boost/config.hpp> 25 #include "test.hpp" 26 27 #ifndef BOOST_NO_NESTED_FRIENDSHIP 28 #include "boost_no_nested_friendship.ipp" 29 #else 30 namespace boost_no_nested_friendship = empty_boost; 31 #endif 32 33 int main( int, char *[] ) 34 { 35 return boost_no_nested_friendship::test(); 36 } 37 -
test/no_typename_with_ctor_fail.cpp
Property changes on: test\no_nested_friendship_pass.cpp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native
1 // This file was automatically generated on Thu Sep 18 23:32:18 2008 2 // by libs/config/tools/generate.cpp 3 // Copyright John Maddock 2002-4. 4 // Use, modification and distribution are subject to the 5 // Boost Software License, Version 1.0. (See accompanying file 6 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 8 // See http://www.boost.org/libs/config for the most recent version.// 9 // Revision $Id$ 10 // 11 12 13 // Test file for macro BOOST_NO_TYPENAME_WITH_CTOR 14 // This file should not compile, if it does then 15 // BOOST_NO_TYPENAME_WITH_CTOR should not be defined. 16 // See file boost_no_typename_with_ctor.ipp for details 17 18 // Must not have BOOST_ASSERT_CONFIG set; it defeats 19 // the objective of this file: 20 #ifdef BOOST_ASSERT_CONFIG 21 # undef BOOST_ASSERT_CONFIG 22 #endif 23 24 #include <boost/config.hpp> 25 #include "test.hpp" 26 27 #ifdef BOOST_NO_TYPENAME_WITH_CTOR 28 #include "boost_no_typename_with_ctor.ipp" 29 #else 30 #error "this file should not compile" 31 #endif 32 33 int main( int, char *[] ) 34 { 35 return boost_no_typename_with_ctor::test(); 36 } 37 -
test/no_typename_with_ctor_pass.cpp
Property changes on: test\no_typename_with_ctor_fail.cpp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native
1 // This file was automatically generated on Thu Sep 18 23:32:18 2008 2 // by libs/config/tools/generate.cpp 3 // Copyright John Maddock 2002-4. 4 // Use, modification and distribution are subject to the 5 // Boost Software License, Version 1.0. (See accompanying file 6 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 8 // See http://www.boost.org/libs/config for the most recent version.// 9 // Revision $Id$ 10 // 11 12 13 // Test file for macro BOOST_NO_TYPENAME_WITH_CTOR 14 // This file should compile, if it does not then 15 // BOOST_NO_TYPENAME_WITH_CTOR should be defined. 16 // See file boost_no_typename_with_ctor.ipp for details 17 18 // Must not have BOOST_ASSERT_CONFIG set; it defeats 19 // the objective of this file: 20 #ifdef BOOST_ASSERT_CONFIG 21 # undef BOOST_ASSERT_CONFIG 22 #endif 23 24 #include <boost/config.hpp> 25 #include "test.hpp" 26 27 #ifndef BOOST_NO_TYPENAME_WITH_CTOR 28 #include "boost_no_typename_with_ctor.ipp" 29 #else 30 namespace boost_no_typename_with_ctor = empty_boost; 31 #endif 32 33 int main( int, char *[] ) 34 { 35 return boost_no_typename_with_ctor::test(); 36 } 37