例えば:
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>
提案が水の中で死んでいる理由です。