2
::std::remove_cv<>
は関数型では動作しないことを、私はconst
とvolatile
過負荷を気にすることなく、メンバ関数の戻り値と引数の型を抽出しようとしているが、それは私には思える:should :: std :: remove_cv <>は関数型で動作しますか?
template <typename>
struct signature
{
};
template <typename R, typename ...A>
struct signature<R(A...)>
{
};
template <typename C, typename F>
constexpr auto extract_function_type(F C::* const) noexcept
{
return signature<::std::remove_cv_t<F>>();
}
template <typename F>
constexpr auto extract_signature(F const&) noexcept ->
decltype(&F::operator(), extract_function_type(&F::operator()))
{
return extract_function_type(&F::operator());
}
ああ、私はそんなに、どのようにREF-修飾された関数の種類については、私はあまりにもそれらを削除する必要があります考え出しましたか? – user1095108
@ user1095108ええ。ボイラープレートがたくさんあります。私は最低限しか掲示しなかった。 – Simple
Ok、ok、ボイラープレートのないより洗練されたソリューションが存在する場合は、答えに追加してください。 – user1095108