c++函数指针内联

标签 c++ function pointers inlining

我知道我可以将函数指针作为模板参数传递并内联调用它,但我想知道现在是否有任何编译器可以内联“明显的”可内联函数,例如:

inline static void Print()
{
 std::cout << "Hello\n";
}

....

void (*func)() = Print;

func();

在 Visual Studio 2008 下,它足够聪明,可以将其简化为直接调用指令,因此不能更进一步似乎很遗憾?

最佳答案

较新版本的 GCC(4.4 及更高版本)有一个名为 -findirect-inlining 的选项。如果 GCC 可以向自己证明函数指针是常量,那么它会直接调用该函数或完全内联该函数。

关于c++函数指针内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959535/

相关文章:

java - 空指针错误数组缩短方法

c - 为什么i+2的地址不是653064?

c++ - 共享指针在循环中超出范围时出错(堆损坏?)

c++ - {object} 的类型是什么?

带参数的 Python 函数不起作用

ios - 如何在 secondVC 中发生更改时自动实时更新 firstVC 中的 UITableViewCell

使用指针数组调用函数

c++ - MFC 选项卡式 View

c++ - 指向成员模板类的指针

c - 在函数之间传递指针