Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Друзья шаблонов с закрытым конструктором
|
|||
|---|---|---|---|
|
#18+
Ситуация такая: Есть класс-шаблон A, у которого закрыт конструктор. Один из параметров шаблона - класс для создания (там метод Create) только, который возвращает shared_ptr<A>. До того, как класс стал шаблоном, всё было ок, у него был друг shared_ptr<A>, а теперь у него друг shared_ptr<A<T>> и компилятор его не видит :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2016, 13:58 |
|
||
|
Друзья шаблонов с закрытым конструктором
|
|||
|---|---|---|---|
|
#18+
CEMbСитуация такая: Есть класс-шаблон A, у которого закрыт конструктор. Один из параметров шаблона - класс для создания (там метод Create) только, который возвращает shared_ptr<A>. До того, как класс стал шаблоном, всё было ок, у него был друг shared_ptr<A>, а теперь у него друг shared_ptr<A<T>> и компилятор его не видит :( А это точно не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2016, 14:14 |
|
||
|
Друзья шаблонов с закрытым конструктором
|
|||
|---|---|---|---|
|
#18+
NekZ, нет, я как раз ровно оттуда пришёл :) ну или как-то не так готовлю... Т.е. ещё раз, есть шаблон A у него друг-шаблон shared_ptr. Пока A не был шаблоном, дружба выглядела так: friend class shared_ptr<A>; всё ок, теперь А стал шаблоном, дружба, выглядит так: friend class shared_ptr<A<T>>; и вот тут warning выдаётся, что не удалось создать деструктор для A<B>. Соответственно, friend class shared_ptr<A<B>>; всё ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 05:13 |
|
||
|
Друзья шаблонов с закрытым конструктором
|
|||
|---|---|---|---|
|
#18+
я тукан, надо было внимательнее читать сообщения у A родительский класс C с закрытым деструктором, в этом была проблема, перевод его в защищённый решил проблему. Но всё равно непонятно немного. shared_ptr друг А, но shared_ptr не друг C, shared_ptr будет убивать A, какое ему дело до закрытости деструктора C? Ну, т.е. классу А есть дело, он должен был выругаться, что не может достучаться до деструктора B, но в списке ошибок пока не вижу ничего такого. Накатал небольшой пример, там всё ок, нельзя создать объект, если в родительских классах есть закрытые деструкторы. Ладно... буду позже разбираться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 05:44 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=31&tid=2018344]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 123ms |

| 0 / 0 |
