Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.02.2020, 10:48
|
|||
|---|---|---|---|
шаблонный класс с нешаблонным констуктором по умолчанию |
|||
|
#18+
Всем доброго времени суток. Есть шаблонный класс, у которого есть конструктор по умолчанию и мне нужно варьировать его поведение в зависимости от некоторых внешних факторов. Пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Поскольку нешаблонный параметр не является обязательным, простое использование конструктора по умолчанию автоматически определяет значение b. Например, Код: plaintext 1. Я не понимаю как мне теперь создать экземпляр класса SomeClass с указанием параметра b = true. Код: plaintext 1. Технически я мог бы применить решение с использованием тегирования, с автоопределением шаблонных аргументов средствами компилятора. Код: plaintext 1. 2. 3. теперь я могу написать Код: plaintext 1. но мне не подходит данное решение, так как в классе SomeClass есть и другие шаблонные конструкторы, которые могут принимать любые значения в составе конструкторов, при этом иметь собственную логику поведения, и в данном случае получается, что я теряю конструктор по умолчанию и создаю конструктор для 1 аргумента типа tag. Подобное не совсем красиво с точки зрения user experience и будет приводить в замешательство при использовании подобного класса: что еще за tag? что туда передавать? я просто хотел создать объект с конструктором по умолчанию! Нет ли какого-то другого способа вызывать конструктор по умолчанию с нешаблонным аргументом, при этом оставаясь в рамках стандартного подхода к самой "парадигме" конструктора по умолчанию. В идеале хотелось бы следующего или подобного: Код: plaintext 1. 2. -------------------------------------------------------------- o(O_O)o ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.02.2020, 11:08
|
|||
|---|---|---|---|
шаблонный класс с нешаблонным констуктором по умолчанию |
|||
|
#18+
похоже не получится https://stackoverflow.com/questions/35517095/constructors-templates-and-non-type-parameters ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.02.2020, 15:57
|
|||
|---|---|---|---|
|
|||
шаблонный класс с нешаблонным констуктором по умолчанию |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.02.2020, 15:58
|
|||
|---|---|---|---|
|
|||
шаблонный класс с нешаблонным констуктором по умолчанию |
|||
|
#18+
Ну или еще проще Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.02.2020, 21:15
|
|||
|---|---|---|---|
шаблонный класс с нешаблонным констуктором по умолчанию |
|||
|
#18+
Можно ещё создать шаблонный статик метод в классе и вызывать его явно как SomeClass<int>::Create<true>() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.02.2020, 08:57
|
|||
|---|---|---|---|
шаблонный класс с нешаблонным констуктором по умолчанию |
|||
|
#18+
Anatoly Moskovsky, спасибо, но однозначно - нет SomeClass с true и SomeClass с false будут разными не совместимыми между собой типами. Мне это не нужно NekZ, примерно так и сделал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2017472]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 127ms |

| 0 / 0 |
