6

我有以下 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在类中使用静态的正确方法是什么?

4

1 回答 1

0

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

于 2018-09-06T16:38:23.303 回答