如何修复警告:扩展初始化列表?

Posted

技术标签:

【中文标题】如何修复警告:扩展初始化列表?【英文标题】:How to fix warning: extended initializer lists? 【发布时间】:2016-06-09 13:34:38 【问题描述】:

here 和其他地方也有类似的问题,但没有一个可以解决此问题。

Ubuntu 12.04.5 上的 gcc 4.6.3 产生以下警告

扩展初始化列表仅适用于 -std=c++0x 或 -std=gnu++0x [默认启用]

以下代码

// Mutex.h
class CMutex

    ...
private:
    pthread_mutex_t m_plock;
;

// Mutex.cpp
CMutex::CMutex()

    m_plock = PTHREAD_MUTEX_INITIALIZER;

如何最好地解决此警告?

【问题讨论】:

按照消息提示添加-std=c++0x 选项? 【参考方案1】:

GCC 只是想让您知道您正在使用 C++11 功能(以防您不打算这样做),即使它默认允许它们。要禁用警告,只需添加它建议的开关,即-std=c++0x,让它知道这确实是你的意图。

【讨论】:

以上是关于如何修复警告:扩展初始化列表?的主要内容,如果未能解决你的问题,请参考以下文章

我需要帮助了解扩展初始化程序列表错误吗?

gcc 的扩展初始化程序列出警告

如何初始化一个列表并在一行中用另一个列表扩展它? [复制]

如何修复警告:初始化程序周围缺少大括号?

如何修复警告:列表中的每个孩子都应该有一个唯一的“关键”道具

如何修复警告:函数范围的静态 __shared__ 变量不支持动态初始化?