我有以下代码.
#include <iostream>
using namespace std;
inline void inlinefunc() { cout << "hello" << endl; }
void func() { cout << "hello" << endl; }
bool isInlineFunc(void (*f)()) { return (f == inlinefunc); }
void print(void (*f)()) {
cout << (isInlineFunc(f)?"inline - ":"normal -");
f();
}
int main() {
void (*f)();
f = inlinefunc;
print(f);
f = func;
print(f);
}
我如何一般写isInlineFunc?
解决方法:
一般来说你是什么意思?你想要一个函数,告诉你是否内联声明了另一个函数?那是不可能做到的.
还要注意,通过获取内联函数的地址,实现被强制实际上具有函数的脱节实现.