Информация об изменениях

Сообщение Re[6]: Вопрос знатокам от 03.04.2023 20:59

Изменено 03.04.2023 21:05 kov_serg

Re[6]: Вопрос знатокам
Здравствуйте, rg45, Вы писали:

R>Есть предложения?

Напиться.

R>P.S. Ты попробуй посмотреть на ситуацию с точки зрения разработчика компилятора: у тебя есть объявление шаблона и его использование. Тебе нужно принять решение нужно ли в точке использования делать инстанцирование основного шаблона или вызвать какую-то из существующих явных специализаций. Как ты будешь принимать это решение?


С точки зрения компилятора, я не инстанцирую класс, а вызываю функцию. Что явно указано в коде. Нахрена запрещать определение реализации дальше по коду. Почему это не эквивалентно костылю с предварительным объявлением функции.
Re[6]: Вопрос знатокам
Здравствуйте, rg45, Вы писали:

R>Есть предложения?

Напиться.

R>P.S. Ты попробуй посмотреть на ситуацию с точки зрения разработчика компилятора: у тебя есть объявление шаблона и его использование. Тебе нужно принять решение нужно ли в точке использования делать инстанцирование основного шаблона или вызвать какую-то из существующих явных специализаций. Как ты будешь принимать это решение?


С точки зрения компилятора, я не инстанцирую класс, а вызываю функцию. Что явно указано в коде. Нахрена запрещать определение реализации дальше по коду. Почему это не эквивалентно костылю с предварительным насильным объявлением сигнатуры функции.

ps:
void ok() { void fn(); fn(); }
void fail(int x) { template<> void f(int); f(x); } // с чем связан запрет подобных объявлений?