some_type
メンバー関数を指定すると、次のように の署名f
を決定できf
ます (タプルに配置するとします):
template <typename R, typename T, typename... A>
std::tuple<R, A...> signature_of_impl(R (T::*)(A...));
template <typename T>
using signature_of_member_f = decltype(signature_of_impl(&T::f));
struct some_type
{
int f(char, float);
};
using some_type_f_signature = signture_of_member_f<some_type>;
過負荷の場合、これは明らかにひどく失敗しますf
。f
内のすべての既存のオーバーロードのシグネチャを特定することは可能some_type
ですか?