C++ _inline在单例中被忽略并显示在我的探查器中.怎么会?

cli*_*ski 4 c++ singleton inline aqtime

我的项目中有很多类由单​​例访问,如下所示:

_inline GUI_BS_Map* GUI_GetBS_Map()
{
    static GUI_BS_Map obj;
    return &obj;
};
Run Code Online (Sandbox Code Playgroud)

据我了解,这段代码应该内联.我将Visual Studio(2005)选项设置为内联任何合适的内容,我的探查器(AQTime)绝对不会设置为覆盖_inlines.但是,当我对代码进行概要分析时,他们会对我的每个单例函数进行数千次调用.我能错过什么?(我正在分析调试版本(获取探查器的符号),但启用了所有速度优化.)任何建议都非常感谢!

sha*_*oth 9

编译器可以自由忽略inline_inline.在Visual C++中,您可以尝试__forceinline使编译器内联函数,除非有严重的理由不这样做(这些原因在链接的MSDN文章中列出).