From ebbe1ffdd9e60f220eb35739fb1d5145adb9f5a5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Sat, 26 Mar 2005 09:58:05 -0500 Subject: COMP: Removing stl string io operators change until the CMake bootstrap script can be fixed. --- Source/kwsys/CMakeLists.txt | 31 +---------- Source/kwsys/Configure.hxx.in | 6 --- Source/kwsys/kwsysPlatformCxxTests.cmake | 2 +- Source/kwsys/kwsysPlatformCxxTests.cxx | 24 --------- Source/kwsys/kwsys_stl.h.in | 31 +++++++++++ Source/kwsys/kwsys_stl.hxx.in | 32 ----------- Source/kwsys/kwsys_stl_string.hxx.in | 92 -------------------------------- 7 files changed, 33 insertions(+), 185 deletions(-) create mode 100644 Source/kwsys/kwsys_stl.h.in delete mode 100644 Source/kwsys/kwsys_stl.hxx.in delete mode 100644 Source/kwsys/kwsys_stl_string.hxx.in diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt index c2f4b66..c3455f3 100644 --- a/Source/kwsys/CMakeLists.txt +++ b/Source/kwsys/CMakeLists.txt @@ -175,21 +175,6 @@ ELSE(KWSYS_IOS_USE_SSTREAM) ENDIF(KWSYS_IOS_USE_STRSTREAM_H) ENDIF(KWSYS_IOS_USE_SSTREAM) -IF(KWSYS_IOS_USE_ANSI) - # ANSI streams always have string operators. - SET(KWSYS_STL_STRING_HAVE_OSTREAM 1) - SET(KWSYS_STL_STRING_HAVE_ISTREAM 1) -ELSE(KWSYS_IOS_USE_ANSI) - # There may not be string operators for old streams. - SET(KWSYS_PLATFORM_CXX_TEST_DEFINES - -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}) - KWSYS_PLATFORM_CXX_TEST(KWSYS_STL_STRING_HAVE_OSTREAM - "Checking whether stl string has ostream operator<<" DIRECT) - KWSYS_PLATFORM_CXX_TEST(KWSYS_STL_STRING_HAVE_ISTREAM - "Checking whether stl string has istream operator>>" DIRECT) - SET(KWSYS_PLATFORM_CXX_TEST_DEFINES) -ENDIF(KWSYS_IOS_USE_ANSI) - IF(UNIX) KWSYS_PLATFORM_CXX_TEST(KWSYS_STAT_HAS_ST_MTIM "Checking whether struct stat has st_mtim member" DIRECT) @@ -225,25 +210,11 @@ INCLUDE_DIRECTORIES(${KWSYS_HEADER_ROOT}) #----------------------------------------------------------------------------- # Create STL header wrappers to block warnings in the STL headers and # give standard names by which they may be included. -SET(KWSYS_STL_HEADER_EXTRA_string 1) FOREACH(header algorithm deque iterator list map numeric queue set stack string utility vector) # Configure the header wrapper. SET(KWSYS_STL_HEADER "${header}") - IF(KWSYS_STL_HEADER_EXTRA_${header}) - SET(KWSYS_STL_HEADER_EXTRA - "#define ${KWSYS_NAMESPACE}_stl_${header}_including_hxx\n# include <${KWSYS_NAMESPACE}/stl/${header}.hxx>\n#undef ${KWSYS_NAMESPACE}_stl_${header}_including_hxx\n") - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_stl_${header}.hxx.in - ${KWSYS_HEADER_DIR}/stl/${header}.hxx - @ONLY IMMEDIATE) - IF(KWSYS_HEADER_INSTALL_DIR) - INSTALL_FILES(${KWSYS_HEADER_INSTALL_DIR}/${KWSYS_NAMESPACE}/stl - FILES ${KWSYS_HEADER_DIR}/stl/${header}.hxx) - ENDIF(KWSYS_HEADER_INSTALL_DIR) - ELSE(KWSYS_STL_HEADER_EXTRA_${header}) - SET(KWSYS_STL_HEADER_EXTRA "") - ENDIF(KWSYS_STL_HEADER_EXTRA_${header}) - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_stl.hxx.in + CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_stl.h.in ${KWSYS_HEADER_DIR}/stl/${header} @ONLY IMMEDIATE) diff --git a/Source/kwsys/Configure.hxx.in b/Source/kwsys/Configure.hxx.in index caf6f72..1b9df6b 100644 --- a/Source/kwsys/Configure.hxx.in +++ b/Source/kwsys/Configure.hxx.in @@ -35,12 +35,6 @@ /* Whether STL is in std namespace. */ #define @KWSYS_NAMESPACE@_STL_HAVE_STD @KWSYS_STL_HAVE_STD@ -/* Whether the STL string has operator<< for ostream. */ -#define @KWSYS_NAMESPACE@_STL_STRING_HAVE_OSTREAM @KWSYS_STL_STRING_HAVE_OSTREAM@ - -/* Whether the STL string has operator>> for istream. */ -#define @KWSYS_NAMESPACE@_STL_STRING_HAVE_ISTREAM @KWSYS_STL_STRING_HAVE_ISTREAM@ - /* Define the stl namespace macro. */ #if @KWSYS_NAMESPACE@_STL_HAVE_STD # define @KWSYS_NAMESPACE@_stl std diff --git a/Source/kwsys/kwsysPlatformCxxTests.cmake b/Source/kwsys/kwsysPlatformCxxTests.cmake index b3004ca..1b5b98a 100644 --- a/Source/kwsys/kwsysPlatformCxxTests.cmake +++ b/Source/kwsys/kwsysPlatformCxxTests.cmake @@ -4,7 +4,7 @@ MACRO(KWSYS_PLATFORM_CXX_TEST var description invert) TRY_COMPILE(${var}_COMPILED ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/kwsysPlatformCxxTests.cxx - COMPILE_DEFINITIONS -DTEST_${var} ${KWSYS_PLATFORM_CXX_TEST_DEFINES} + COMPILE_DEFINITIONS -DTEST_${var} OUTPUT_VARIABLE OUTPUT) IF(${var}_COMPILED) WRITE_FILE(${CMAKE_CURRENT_BINARY_DIR}/CMakeOutput.log diff --git a/Source/kwsys/kwsysPlatformCxxTests.cxx b/Source/kwsys/kwsysPlatformCxxTests.cxx index d8454fd..a799c50 100644 --- a/Source/kwsys/kwsysPlatformCxxTests.cxx +++ b/Source/kwsys/kwsysPlatformCxxTests.cxx @@ -30,30 +30,6 @@ int main() { return 0; } int main() { return 0; } #endif -#ifdef TEST_KWSYS_STL_STRING_HAVE_OSTREAM -# if KWSYS_STL_HAVE_STD -# define kwsys_stl std -# else -# define kwsys_stl -# endif -# include -# include -void f(ostream& os, const kwsys_stl::string& s) { os << s; } -int main() { return 0; } -#endif - -#ifdef TEST_KWSYS_STL_STRING_HAVE_ISTREAM -# if KWSYS_STL_HAVE_STD -# define kwsys_stl std -# else -# define kwsys_stl -# endif -# include -# include -void f(istream& is, kwsys_stl::string& s) { is >> s; } -int main() { return 0; } -#endif - #ifdef TEST_KWSYS_STAT_HAS_ST_MTIM #include #include diff --git a/Source/kwsys/kwsys_stl.h.in b/Source/kwsys/kwsys_stl.h.in new file mode 100644 index 0000000..893ce46 --- /dev/null +++ b/Source/kwsys/kwsys_stl.h.in @@ -0,0 +1,31 @@ +/*========================================================================= + + Program: KWSys - Kitware System Library + Module: $RCSfile$ + + Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef @KWSYS_NAMESPACE@_stl_@KWSYS_STL_HEADER@ +#define @KWSYS_NAMESPACE@_stl_@KWSYS_STL_HEADER@ + +#include <@KWSYS_NAMESPACE@/Configure.hxx> + +#ifdef _MSC_VER +# pragma warning (push, 1) +# pragma warning (disable: 4702) +# pragma warning (disable: 4786) +#endif + +#include <@KWSYS_STL_HEADER@> + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +#endif diff --git a/Source/kwsys/kwsys_stl.hxx.in b/Source/kwsys/kwsys_stl.hxx.in deleted file mode 100644 index 5a58fbf..0000000 --- a/Source/kwsys/kwsys_stl.hxx.in +++ /dev/null @@ -1,32 +0,0 @@ -/*========================================================================= - - Program: KWSys - Kitware System Library - Module: $RCSfile$ - - Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved. - See Copyright.txt or http://www.kitware.com/Copyright.htm for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*/ -#ifndef @KWSYS_NAMESPACE@_stl_@KWSYS_STL_HEADER@ -#define @KWSYS_NAMESPACE@_stl_@KWSYS_STL_HEADER@ - -#include <@KWSYS_NAMESPACE@/Configure.hxx> - -#ifdef _MSC_VER -# pragma warning (push, 1) -# pragma warning (disable: 4702) -# pragma warning (disable: 4786) -#endif - -#include <@KWSYS_STL_HEADER@> - -#ifdef _MSC_VER -# pragma warning(pop) -#endif - -@KWSYS_STL_HEADER_EXTRA@ -#endif diff --git a/Source/kwsys/kwsys_stl_string.hxx.in b/Source/kwsys/kwsys_stl_string.hxx.in deleted file mode 100644 index 7d45649..0000000 --- a/Source/kwsys/kwsys_stl_string.hxx.in +++ /dev/null @@ -1,92 +0,0 @@ -/*========================================================================= - - Program: KWSys - Kitware System Library - Module: $RCSfile$ - - Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved. - See Copyright.txt or http://www.kitware.com/Copyright.htm for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*/ - -// This header is extra code for <@KWSYS_NAMESPACE@/stl/string>. -#if !defined(@KWSYS_NAMESPACE@_stl_string_including_hxx) -# error "The header <@KWSYS_NAMESPACE@/stl/string.hxx> may be included only by <@KWSYS_NAMESPACE@/stl/string>." -#endif - -// Provide the istream operator for the stl string if it is not -// provided by the system or another copy of kwsys. Allow user code -// to block this definition by defining the macro -// @KWSYS_NAMESPACE@_STL_STRING_NO_ISTREAM -// to avoid conflicts with other libraries. -#if !@KWSYS_NAMESPACE@_STL_STRING_HAVE_ISTREAM && \ - !defined(@KWSYS_NAMESPACE@_STL_STRING_NO_ISTREAM) && \ - !defined(KWSYS_STL_STRING_ISTREAM_DEFINED) -# define KWSYS_STL_STRING_ISTREAM_DEFINED -# include // isspace -# include <@KWSYS_NAMESPACE@/ios/iostream> -inline @KWSYS_NAMESPACE@_ios::istream& -operator>>(@KWSYS_NAMESPACE@_ios::istream& is, - @KWSYS_NAMESPACE@_stl::string& s) -{ - // Keep track of the resulting state. - int state = @KWSYS_NAMESPACE@_ios::ios::goodbit; - - // Save the width setting and set it back to zero. - size_t n = static_cast(is.width(0)); - - // Clear any old contents of the output string. - s.erase(); - - // Skip leading whitespace. - is.eatwhite(); - istream& okay = is; - - if(okay) - { - // Select a maximum possible length. - if(n == 0 || n >= s.max_size()) - { - n = s.max_size(); - } - - // Read until a space is found or the maximum length is reached. - bool success = false; - for(int c = is.peek(); (--n > 0 && c != EOF && !isspace(c)); c = is.peek()) - { - s += static_cast(c); - success = true; - is.ignore(); - } - - // Set flags for resulting state. - if(is.peek() == EOF) { state |= @KWSYS_NAMESPACE@_ios::ios::eofbit; } - if(success) { state |= @KWSYS_NAMESPACE@_ios::ios::failbit; } - } - - // Set the final result state. - is.clear(state); - return is; -} -#endif - -// Provide the ostream operator for the stl string if it is not -// provided by the system or another copy of kwsys. Allow user code -// to block this definition by defining the macro -// @KWSYS_NAMESPACE@_STL_STRING_NO_OSTREAM -// to avoid conflicts with other libraries. -#if !@KWSYS_NAMESPACE@_STL_STRING_HAVE_OSTREAM && \ - !defined(@KWSYS_NAMESPACE@_STL_STRING_NO_OSTREAM) && \ - !defined(KWSYS_STL_STRING_OSTREAM_DEFINED) -# define KWSYS_STL_STRING_OSTREAM_DEFINED -# include <@KWSYS_NAMESPACE@/ios/iostream> -inline @KWSYS_NAMESPACE@_ios::ostream& -operator<<(@KWSYS_NAMESPACE@_ios::ostream& os, - @KWSYS_NAMESPACE@_stl::string const& s) -{ - return os << s.c_str(); -} -#endif -- cgit v0.12