我有以下 MCVE:
#include <sstream>
struct A {
static std::stringstream s;
};
std::stringstream A::s;
int main() {}
当我在此代码上运行 clang-tidy 6.0.1 时,我收到以下警告:
static_sstream.cpp:7:22: warning: initializing non-local variable with non-const expression depending on uninitialized non-local variable 'out' [cppcoreguidelines-interfaces-global-init]
std::stringstream A::s;
^
看来问题出在 的构造函数std::stringstream
有一个默认值为 的参数std::ios_base::out
。我的问题是,这是一个真正的问题吗?如果是这样,std::stringstream
在类中使用静态的正确方法是什么?