TestForSSTREAM

此模块检查 C++ 标准头文件 <sstream> 是否存在且功能正常。

在 CMake 项目中加载此模块,使用

include(TestForSSTREAM)

在 C++ 的早期版本(C++98 之前),<sstream> 头文件没有正式标准化,可能不可用。

此模块定义以下缓存变量:

CMAKE_NO_ANSI_STRING_STREAM

一个缓存变量,指示 <sstream> 头文件是否可用。如果 <sstream> 可用(C++ 98 及更新版本),则设置为值 0;如果 <sstream> 缺失(ANSI C++),则设置为值 1

CMAKE_HAS_ANSI_STRING_STREAM

一个缓存变量,与 CMAKE_NO_ANSI_STRING_STREAM 相反(如果 <sstream> 可用则为 true,如果 <sstream> 缺失则为 false)。

注意

<sstream> 头文件正式引入于 C++ 98 标准中,因此对于现代编译器而言,此检查已过时。

示例

包含此模块将检查 <sstream> 支持并定义 CMAKE_NO_ANSI_STRING_STREAM 缓存变量

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

然后它可以在 C++ 程序中使用

example.cxx
#include "config.h"

#ifndef CMAKE_NO_ANSI_STRING_STREAM
#  include <sstream>
#endif

int main() { ... }

另请参阅