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() { ... }