22

例えば:

template <typename T>
struct foo
{
    using bar = int;
};

// _Z3bazi
void baz(foo<int>::bar quux) {
}

template <typename T>
void baz(typename foo<T>::bar quux) {
}

// _Z3bazIiEvN3fooIT_E3barE
template void baz<int>(foo<int>::bar quux);

baz<int>マングルされた形式の言及fooがまったくないのはなぜですか? なぜそうではないの_Z3bazIiEviですか?

これが明らかに、C++17 のstd::default_order<T>提案が水の中で死んでいる理由です。

4

1 に答える 1