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

How to fix warning: extended initializer lists?

here 和其他地方也有类似的问题,但 none 解决了这个问题。

gcc 4.6.3 on Ubuntu 12.04.5 产生以下警告

extended initializer lists only available with -std=c++0x or -std=gnu++0x [enabled by default]

对于以下代码

// Mutex.h
class CMutex
{
    ...
private:
    pthread_mutex_t m_plock;
};

// Mutex.cpp
CMutex::CMutex()
{
    m_plock = PTHREAD_MUTEX_INITIALIZER;
}

如何最好地解决此警告?

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