Pra*_*tic 1 c++ string function-pointers
是否可以将函数指针映射到std::string符合标准的C++中?
对象指针的转换函数指针甚至做指针运算都是函数指针的限制,但是在这个相关的问题中
给出以下代码:
int (*funcptr)() = main;
unsigned char *p = (unsigned char *)&funcptr;
int i;
for (i = 0; i < sizeof funcptr; i++)
{
printf("%02x ", p[i]);
}
putchar('\n');
Run Code Online (Sandbox Code Playgroud)
该代码经受了同行的审查.我有点困惑.使用数组语法访问函数指针是合法的,但指针算术不是?
这就是我现在所拥有的.我的编译器没有抱怨,并且样本大小为1的东西似乎表现得很好.
template<class F>
std::string fptr_to_str(F fptr)
{
auto fptr_bytes = (const char*)fptr;
return {fptr_bytes, sizeof(fptr_bytes)};
}
Run Code Online (Sandbox Code Playgroud)