@ Rakete1111 - вы (и g ++) правы; Я вообще не знал об этом улучшении C ++ 17; Благодарю.

clang, похоже, не согласны с тем, должен ли этот код компилироваться или нет:

#include <type_traits>

template <typename Signature, int N = 0>
struct MyDelegate { };

template <typename D>
struct signature_traits;

template <template <typename> class Delegate, typename Signature>
struct signature_traits<Delegate<Signature>>
{
    using type = Signature;
};

static_assert(std::is_same_v<
    void(int, int),
    signature_traits<MyDelegate<void(int, int)>>::type
>);

Видетьвывод Godbolt здесь и попробуйте, Я нахожусь здесь с clang, но что говорит об этом стандарт C ++?

Последующий вопрос - можно ли это заставить работать в Clang?

Ответы на вопрос(1)

Ваш ответ на вопрос