TestForSSTREAM

This module checks whether the C++ standard header <sstream> exists and functions correctly.

Load this module in a CMake project with:

include(TestForSSTREAM)

In early versions of C++ (pre-C++98), the <sstream> header was not formally standardized and may not have been available.

This module defines the following cache variables:

CMAKE_NO_ANSI_STRING_STREAM

A cache variable indicating whether the <sstream> header is available. It will be set to value 0 if <sstream> is available (C++ 98 and newer), and to value 1 if <sstream> is missing (ANSI C++).

CMAKE_HAS_ANSI_STRING_STREAM

A cache variable that is the opposite of CMAKE_NO_ANSI_STRING_STREAM (true if <sstream> is available and false if <sstream> is missing).

备注

The <sstream> header was formally introduced in the C++ 98 standard, making this check obsolete for modern compilers.

Examples

Including this module will check for <sstream> support and define the CMAKE_NO_ANSI_STRING_STREAM cache variable:

CMakeLists.txt
include(TestForSSTREAM)
file(
  CONFIGURE
  OUTPUT config.h
  CONTENT "#cmakedefine CMAKE_NO_ANSI_STRING_STREAM"
)

Then it can be used in a C++ program:

example.cxx
#include "config.h"

#ifndef CMAKE_NO_ANSI_STRING_STREAM
#  include <sstream>
#endif

int main() { ... }

See Also