Шаблон локального класса - PullRequest
12 голосов
/ 19 сентября 2010

Мы можем иметь локальный класс, определенный внутри функции, но этот класс не может быть шаблоном, который немного раздражает и не согласуется.Есть ли какое-либо обновление в стандарте C ++ 0x?

1 Ответ

8 голосов
/ 19 сентября 2010

Да.На самом деле это изменение правила делает возможным использование лямбда-выражений, поскольку лямбда-выражение создает локальный безымянный тип.

Извините, я неправильно понял ваш вопрос.Я думал, что вы говорите об использовании локального класса в качестве параметра шаблона.Это не было разрешено в C ++ 98 и C ++ 03, но оно будет работать в C ++ 0x.

Что касается вашего реального вопроса, C ++ 0x не изменит ничего из этого.

Честно говоря, я не вижу причин, чтобы разрешать использование «шаблонов классов локальных функций».Поддержка «шаблонов классов локальных функций» - это функция, которая, возможно, волнует лишь немногих людей.И написание шаблонов классов вне функций является приемлемой заменой этому.Это, очевидно, не оказывает достаточного давления на поставщиков компиляторов, независимо от того, насколько сложно реализовать такую ​​функцию.Производители компиляторов, вероятно, больше озабочены реализацией других функций C ++ 0x.

Но я понимаю вашу точку зрения.Это может показаться ненужной неправильностью языка.Если вас сильно волнует эта функция, вы можете написать официальное предложение и отправить его в комитет по стандартизации C ++ примерно через два года, когда они, вероятно, примут предложения по «C ++ 1y».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...