静态std :: stringstream

时间:2018-09-06 11:20:25

标签: c++ stringstream clang-tidy

我有以下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的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

MSVC 2015(windows)编译以上代码片段,没有任何警告。验证了标头,它具有constexpr。看起来像是Clang-tidy的问题。