std::remove_pointer
VS2012 で const volatile 関数ポインタを削除できません。これは vs2012 の buf ですか?
#include "iostream"
#include <typeinfo>
using namespace std;
int main()
{
typedef void (* const cfunp_t) ();
cout<<typeid(cfunp_t).name()<<endl;
cout<<typeid(std::remove_pointer<cfunp_t>::type).name()<<endl;
return 0;
}
vs2012 による出力ビルド:
void (__cdecl*)(void)
void (__cdecl*)(void) // can not remove the const function pointer
mingw gcc 4.7.2 による出力ビルド
PFvvE
FvvE // can remove the const function pointer