reinterpret_cast
kullanarak aynı sınıfa ait başka bir işaretçi-üye işlevine işaretçi-üye işlevini yayınlamak yasal mıdır? Aşağıdaki örnek çalışır. Ama yasal mı? [expr.reinterpret.cast] C++ taslak devletler deBir işaretçi-üye işlevini aynı sınıftan başka birine atama
#include<iostream>
#include<vector>
#include<string>
class A
{
public:
void func_int(int x) { std::cout << x << std::endl; }
void func_string(std::string const& x) { std::cout << x << std::endl; }
};
int main()
{
std::vector<void(A::*)()> v;
v.push_back(reinterpret_cast<void(A::*)()>(&A::func_int));
v.push_back(reinterpret_cast<void(A::*)()>(&A::func_string));
A a;
(a.*reinterpret_cast<void(A::*)(int)>(v[0]))(5);
(a.*reinterpret_cast<void(A::*)(std::string const&)>(v[1]))(std::string{"Test"});
return 0;
}