如何防止警告C4355:'this':用于基本成员初始化列表

ST3*_*ST3 2 c++ constructor this compiler-warnings

我的问题与类似,但我没有找到我需要的信息.我有我的类构造函数.

CustomTreeViewItem::CustomTreeViewItem(CustomTreeView* list) 
    : m_childs(), m_expanded(false), m_list(list), m_components(), m_depth(1), 
    m_rect(), m_root(this)
{}
Run Code Online (Sandbox Code Playgroud)

this在构造函数中使用指针但不调用任何方法,所以我不调用未定义的行为.所以一切都很好,但我收到警告,现在我正在编写一些lib(小框架)所以我必须编写无错误的代码.所以我已将代码更改为:

CustomTreeViewItem::CustomTreeViewItem(CustomTreeView* list) 
    : m_childs(), m_expanded(false), m_list(list), m_components(), m_depth(1), 
    m_rect(), m_root(NULL)
{
    m_root = this;
}
Run Code Online (Sandbox Code Playgroud)

现在我没有得到任何警告,但是这样我失去了表现(非常轻微,但无论如何都是失败).我想问一下是否有任何方法可以保持最高性能并防止出现此警告.

Ben*_*igt 5

如果指针仅存储以供以后使用,则标准保证这非常安全.

您可能需要使用pragma来禁用警告.并且警告控制是不可移植的(其他编译器可能会忽略您的编译指示并继续发出警告).