[04:00:26] <Kemet> _valexey_, Дык я про подвенду и говорю
[20:55:02] <vlad2> _valexey_: а вот ты знаешь как определить не-инлайн темплейтную функцию темплейтного класса? :)
[20:56:02] <_valexey_> Э? Оно ж в хедере будет
[20:56:12] <_valexey_> Один фиг заинлайнит
[20:57:29] <vlad2> Не, можно хедер отдельно держать, типа компилируется быстрее.
[20:58:50] <_valexey_> Ты имеешь ввиду impl файлы, которые в хедер инклюдятся?
[20:59:55] <vlad2> отдельные файлы, которые инклудятся только там, где definition нужен.
[21:00:24] <_valexey_> Эмм.. Это как?
[21:00:40] <_valexey_> Олсо - это ж все равно хедер
[21:00:52] <_valexey_> И все равно заинлайнит
[21:01:43] <vlad2> template <typename T> struct X { template <typename U> void f(); };
[21:02:25] <vlad2> Вот. Надо написать имплементацию f.
[21:05:39] <_valexey_> И? Вроде можно писать. Не?
[21:06:19] <vlad2> Можно. Только сегодня узнал.
[21:07:16] <vlad2> template <typename T> template <typename U> void X<T>::f(){}
[21:09:07] <_valexey_> Шаблонный метод шаблонного класса? Шаблон в квадрате!
[21:10:31] <vlad2> Угу.
[21:11:50] <vlad2> А еще еще его можно явно инстанциировать и положить в dll. Чем я сейчас и занимаюсь.
[21:12:50] <_valexey_> Это для специализации какой-то?
[21:15:38] <vlad2> Нет. Просто нужен контроль над тем для чего оно инстанциируется - чтоб получить ошибку линковки, если не для того, для чего надо.
[21:16:27] <_valexey_> А как инстанцирование ограничить?
[21:17:31] <_valexey_> Короче, колись как делаешь! :-)
[21:20:05] <vlad2> Дык, реализация в отдельный хедер выносится. Этот хедер включается только там, где надо. А чтоб оно работало для всех "правильных" использований без включения хедера - явно инстациируетсч в одном месте и кладется в dll./
[21:20:48] <_valexey_> Инстанцируется каким-то типом конкретным?
[21:21:03] <_valexey_> Ну, или типами.
[21:22:48] <_valexey_> А зачем включать хедер с декларацией без хедера с реализацией? Где такое может понадобиться?
[21:22:55] <vlad2> Да, только для нужных типов. При попытке исользовать для других типов будет Link error.
[21:23:00] <_valexey_> В случае шаблонов
[21:23:57] <_valexey_> Хм. Подозреваю, что задачу можно было решить иначе, что бы была ошибка компиляции, а не компоновки.
[21:24:19] <vlad2> Дык, чтоб получить link error и чтоб быстрее компилировалось (меньше зависимостей).
[21:26:36] <_valexey_> Надо поэкспериментировать будет :-)
[21:36:14] <vlad2> Да, но еще была цель не тащить лишние инклуды, которые требуются для реализации.
[21:48:44] <vlad2> Мощный чувак этот PSV100 :)
[21:50:34] <vlad2> Надо выписать и потом с умным видом вставлять: "исключения не обеспечивают "свёртку невообразимо сложного графа реакции на все потенциально возможные ошибочные ситуации""
[22:34:12] <valexey> vlad2: чот мне кажется, что если посредством невообразимого графа ошибки обрабатывать, то в обработке ошибок наверняка тоже где-то будет ошибка :-)