1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
||||||
1 | ||||||
Шаблоны. Плохо понимаемые моменты из книги "Шаблоны С++. Справочник разработчика". (Вандевурд, Джосаттис)07.10.2015, 15:04. Показов 5637. Ответов 32
Метки нет (Все метки)
Так как изучаю эту книгу, то в некоторых местах возникают вопросы. Чтобы не плодить много тем, корни у которых одни, решил создать эту тему.
Дошел до места. Параметры шаблонов функций, не являющиеся типами. Там описан такого вида пример
0
|
07.10.2015, 15:04 | |
Ответы с готовыми решениями:
32
Использование обобщенных лямбда-выражений с SFINAE из книги "Шаблоны C++. Справочник разработчика" Шаблоны C++: справочник разработчика Хранить шаблоны документов в базе и выводить данные в эти шаблоны Чем отличаются шаблоны HTML и шаблоны WordPress |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
10.10.2015, 21:59 | 21 | |||||
ваш оператор возвращает тип T& а вовсе не тип агрегата:
template <typename T>class MyClass результат выражения *this имеет тип: MyClass<T>& а вовсе не T& лекарство:
1
|
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
|
|
10.10.2015, 22:05 | 22 |
0
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
10.10.2015, 22:21 [ТС] | 23 |
Спасибо. Невнимательность, однако. ответ hoggy еще до описания лекарства прекрасно мне помог. А ответ nmcf, хорошо этому поспособствовал.
Добавлено через 14 минут в данной ситуации, это не столько ошибка, сколько я до этого еще не дошел. У Вас, например, в лекарстве превалируют r-value ссылки, я о них только поверхностно знаю, а в самих константах недостаточно ориентируюсь и иногда их опускаю, чтобы они меньше отвлекали внимания. Не буду отрицать, что иногда о них забываю, но сейчас даже если бы и забыл где-то, я их просто для себя пропустил. Даже если Ваш пример-лекарство действительно хороший, я сейчас(в эти минуты) на очень ранней стадии, чтобы его восприять.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
10.10.2015, 22:46 | 24 | |||||
принцип максимального ограничения возможностей
при сохранении необходимой функциональности. в частности, нельзя написать всякую ересь, которая противоречит здравому смыслу. наподобие:
да ну и забейте покамест на них. они не сложны - приложаццо. однако в любом случае, когда пишите шаблоно-прототип, всегда задавайте себе вопросы: как именно будет осуществляться передача аргументов? не будет ли здесь избыточного копирования аргументов? всегда задавайте себе вопрос: меняет ли функция-член логическое/константное состояние экземпляра класса? если ответ: нет, не меняет, то метод должен быть const. всегда задавайте себе вопрос: меняет ли функция-член состояние входного аргумента? если ответ: нет, не меняет, то аргумент должен быть const. придерживайтесь этих простых правил, и они позволят вам избежать "портянок " ошибок компиляции, связанных с нарушением контрактов классов, при подстановке конкретного T
1
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|||||||||||
20.10.2015, 09:10 [ТС] | 25 | ||||||||||
Опять я отписываю в этой теме. Вопрос не по книге, но по шаблонам. Он мог бы быть в книге, но до С++11 было еще очень далеко.
Я понять не могу почему
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
20.10.2015, 09:24 | 26 |
0
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
20.10.2015, 10:46 [ТС] | 27 |
Поспорим?
Добавлено через 20 минут Под корректно я имею ввилу успешную компиляцию' Добавлено через 23 минуты Я подозреваю, что шаблон создает 2 функции, одну с массивом [X][X] и вторую с массивом [][X]. Первая не подходит, вторая же подходит. Но может я неправильно думаю.
0
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
20.10.2015, 12:25 [ТС] | 29 |
Всё. Этот момент уяснил. Благодарю.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
20.10.2015, 22:16 | 30 |
0
|
daslex
|
20.10.2015, 22:39
[ТС]
#31
|
Не по теме: поезд ушел :p
0
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
|
20.10.2015, 23:14 | 32 |
хм, это good practice такая? или есть строгий смысл?
Добавлено через 12 минут а... вижу
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
21.10.2015, 00:08 | 33 |
0
|
21.10.2015, 00:08 | |
21.10.2015, 00:08 | |
Помогаю со студенческими работами здесь
33
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны Не могу обнаружить ошибку в учебной программе из книги (шаблоны классов) Шаблоны шаблоны Шаблоны Шаблоны Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |