我正在使用MS Visual Studio 2017,V。15.9.8。
我正在使用出色的JetBrains ReSharper Ultimate 2019.1.2 Build 191.0.20190603.142841。它在指示的位置给我警告:
#include <vector>
struct T
{
std::vector<char> m;
const char *f() const
{
static const char emptyData; // ReSharper complains here
return m.size() ? &m[0] : &emptyData;
}
};
消息是
file.h:应初始化类型为'const unsigned char'的静态局部变量。这是非标准的Microsoft C ++扩展。
如果emptyData
不是常量,则警告消失。>
该警告是错误的,因为所有静态数据(包括恒定的静态局部数据)都是按标准的零初始化的,对吗?
我正在使用MS Visual Studio 2017,V. 15.9.8。我正在使用出色的JetBrains ReSharper Ultimate 2019.1.2 Build 191.0.20190603.142841。它在指示的位置给我警告:#...
我相信是因为const
,必须将常量变量初始化,如果该行是const char emptyData;
,则对于未初始化的const
变量会出现错误,因此我认为不是导致static
修饰符问题。
该警告是错误的,因为所有静态数据(包括恒定的静态局部数据)均按标准的零初始化,对吗?