Czy to legalne C++?Czy parametr parametru szablonu szablonu może powodować zacienienie?
template <typename T, template <typename T> class>
struct S { };
Szczęk (3.7.1) odrzuca, twierdząc, drugi T
cienie pierwszy T
. GCC wydaje się nie przejmować tym i myślę, że to rozsądne. Myślę, że jest to tylko liczba parametrów, które mają znaczenie w parametrze szablonu szablonu.
- http://goo.gl/51bHVG (gcc.godbolt.org)
dlaczego trzeba używać 'T' dwa razy? jeśli chcesz użyć 'T' w drugim szablonie, możesz napisać szablon' template> ' –
@DavidHaim To nie jest obowiązkowe, ale kiedy pierwszy parametr ma być nadany drugiemu parametrowi, który jest szablon szablonu, ma sens użycie tej samej (lub przynajmniej podobnej) nazwy zagnieżdżonego parametru szablonu. Twoja sugestia jest interesująca, nigdy nie próbowałem określać domyślnego parametru szablonu szablonu. Co osiąga w porównaniu do klasy 'template>? –
nodakai
Zastanawiam się, jaka jest motywacja motywująca ludzi, którzy szukają i niszczą słowa znaczników w tytule wpisu ?? Czy mogą być równie entuzjastycznie zastępować 'NULL' na' nullptr'? – nodakai