From 5bad377e049565b8bec0d3e78b69764247cc6b61 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 21 Apr 2008 09:19:30 +0000 Subject: [PATCH] Added new macro BOOST_NO_TEMPLATED_IOSTREAMS in response to issue #1765. [SVN r44689] --- .../boost_config/boost_macro_reference.html | 17 +++++++++ doc/html/index.html | 2 +- doc/macro_reference.qbk | 3 ++ test/all/Jamfile.v2 | 5 ++- test/boost_no_template_streams.ipp | 28 ++++++++++++++ test/config_info.cpp | 2 + test/config_test.cpp | 12 +++++- test/no_template_streams_fail.cpp | 37 +++++++++++++++++++ test/no_template_streams_pass.cpp | 37 +++++++++++++++++++ 9 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 test/boost_no_template_streams.ipp create mode 100644 test/no_template_streams_fail.cpp create mode 100644 test/no_template_streams_pass.cpp diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index ac8f1c1f..79912034 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -1027,6 +1027,23 @@ + +

+ BOOST_NO_TEMPLATED_IOSTREAMS +

+ + +

+ Standard library +

+ + +

+ The standard library does not provide templated iostream classes. +

+ + +

BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS diff --git a/doc/html/index.html b/doc/html/index.html index bf3b35b4..0cfcd61f 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -960,7 +960,7 @@

- +

Last revised: April 21, 2008 at 08:38:49 GMT

Last revised: April 21, 2008 at 09:16:51 GMT


diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index ef851872..6d43971c 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -250,6 +250,9 @@ The platform does not have a conforming version of `swprintf`. Class template partial specialization (14.5.4 \[temp.class.spec\]) not supported. ]] +[[`BOOST_NO_TEMPLATED_IOSTREAMS`][Standard library][ +The standard library does not provide templated iostream classes. +]] [[`BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS`][Standard library][ The standard library does not provide templated iterator constructors for its containers. diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index ef9269a1..e7dc80db 100644 --- a/test/all/Jamfile.v2 +++ b/test/all/Jamfile.v2 @@ -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 Apr 14 17:10:09 2008 +# This file was automatically generated on Mon Apr 21 10:10:52 2008 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -337,6 +337,9 @@ test-suite "BOOST_NO_STD_WSTRING" : test-suite "BOOST_NO_SWPRINTF" : [ run ../no_swprintf_pass.cpp ] [ compile-fail ../no_swprintf_fail.cpp ] ; +test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" : +[ run ../no_template_streams_pass.cpp ] +[ compile-fail ../no_template_streams_fail.cpp ] ; test-suite "BOOST_NO_TEMPLATE_TEMPLATES" : [ run ../no_template_template_pass.cpp ] [ compile-fail ../no_template_template_fail.cpp ] ; diff --git a/test/boost_no_template_streams.ipp b/test/boost_no_template_streams.ipp new file mode 100644 index 00000000..3379d590 --- /dev/null +++ b/test/boost_no_template_streams.ipp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2008. +// 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_TEMPLATED_IOSTREAMS +// TITLE: basic_iostream<> +// DESCRIPTION: The platform supports "new style" templated iostreams. + +#include + + +namespace boost_no_templated_iostreams{ + +int test() +{ + std::basic_ostream >& osr = std::cout; + return 0; +} + +} + + + + + diff --git a/test/config_info.cpp b/test/config_info.cpp index 277e037f..89973731 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1002,6 +1002,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_STD_WSTRING); PRINT_MACRO(BOOST_NO_STRINGSTREAM); PRINT_MACRO(BOOST_NO_SWPRINTF); + PRINT_MACRO(BOOST_NO_TEMPLATED_IOSTREAMS); PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS); PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION); PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES); @@ -1028,6 +1029,7 @@ void print_boost_macros() + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index 8f95c9d9..b8265235 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Mon Apr 14 17:10:09 2008 +// This file was automatically generated on Mon Apr 21 10:10:52 2008 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -292,6 +292,11 @@ namespace boost_no_std_wstring = empty_boost; #else namespace boost_no_swprintf = empty_boost; #endif +#ifndef BOOST_NO_TEMPLATED_IOSTREAMS +#include "boost_no_template_streams.ipp" +#else +namespace boost_no_templated_iostreams = empty_boost; +#endif #ifndef BOOST_NO_TEMPLATE_TEMPLATES #include "boost_no_template_template.ipp" #else @@ -1116,6 +1121,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_SWPRINTF at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_templated_iostreams::test()) + { + std::cerr << "Failed test for BOOST_NO_TEMPLATED_IOSTREAMS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_template_templates::test()) { std::cerr << "Failed test for BOOST_NO_TEMPLATE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl; diff --git a/test/no_template_streams_fail.cpp b/test/no_template_streams_fail.cpp new file mode 100644 index 00000000..16dfd5b1 --- /dev/null +++ b/test/no_template_streams_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Mon Apr 21 10:10:52 2008 +// 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.// +// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $ +// + + +// Test file for macro BOOST_NO_TEMPLATED_IOSTREAMS +// This file should not compile, if it does then +// BOOST_NO_TEMPLATED_IOSTREAMS should not be defined. +// See file boost_no_template_streams.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 +#include "test.hpp" + +#ifdef BOOST_NO_TEMPLATED_IOSTREAMS +#include "boost_no_template_streams.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_templated_iostreams::test(); +} + diff --git a/test/no_template_streams_pass.cpp b/test/no_template_streams_pass.cpp new file mode 100644 index 00000000..9ea79098 --- /dev/null +++ b/test/no_template_streams_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Mon Apr 21 10:10:52 2008 +// 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.// +// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $ +// + + +// Test file for macro BOOST_NO_TEMPLATED_IOSTREAMS +// This file should compile, if it does not then +// BOOST_NO_TEMPLATED_IOSTREAMS should be defined. +// See file boost_no_template_streams.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 +#include "test.hpp" + +#ifndef BOOST_NO_TEMPLATED_IOSTREAMS +#include "boost_no_template_streams.ipp" +#else +namespace boost_no_templated_iostreams = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_templated_iostreams::test(); +} +