我有以下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
的正确方法是什么?
答案 0 :(得分:0)
MSVC 2015(windows)编译以上代码片段,没有任何警告。验证了标头,它具有constexpr。看起来像是Clang-tidy的问题。