170 похожих чатов

Всем привет! Я не могу корректно инициализировать статическое шаблонное поле

класса, строка 20. Как правильно это сделать?

https://godbolt.org/z/x5Efj4E19

19 ответов

36 просмотров

Инициализация должна быть в 16-й строке. В 20-й что-то странное написано.

Andrey-Solovyev Автор вопроса
Alexander Karaev
Инициализация должна быть в 16-й строке. В 20-й чт...

Я голову сломал - чего-то я не понимаю про предмет. Покажи как правильно это сделать, пожалуйста.

Andrey Solovyev
Я голову сломал - чего-то я не понимаю про предмет...

что вы вообще хотели сказать в строке 20? typename typename {}; - это не синтаксис С++

Andrey Solovyev
Я голову сломал - чего-то я не понимаю про предмет...

Написана чушь. Что должна делать 20-я строчка? Я попробую сванговать: 1. 20-я строчка "добавляет" в base_t<1> инстанциацию type_holder_t<int> 2. Предполагается, что 30-я строчка в дальнейшем вытащит эту инстанциацию из base_type.

Andrey-Solovyev Автор вопроса
Alexander Karaev
Написана чушь. Что должна делать 20-я строчка? Я п...

1) Есть шаблонный класс (структура) base_t 2) В нем есть шаблонное статическое поле type_holder Что хотим - для каждой специализации шаблонного класса base_t иметь какую-то свою специализацию шаблонного поля type_holder 3) Инициализируем шаблонное поле type_holder после объявления класса base_t - должны мы это сделать? Вроде бы да. 4) Объявляем переменную b1, которая делает инстанс класса base_t. 5) У инстанса b1 есть type_holder, который хочется параметризировать типом int вот для специализации base_t<1>. Именно так должно работать статическое шаблонное поле. Исходя из хотелок, таки да, цели 20 и 30 строк свангованы корректно 🙂

Andrey Solovyev
1) Есть шаблонный класс (структура) base_t 2) В не...

Шаблонное статическое поле, которое не зависит от шаблона класса - это что-то странное и навряд-ли работающее.

Andrey-Solovyev Автор вопроса

Factory не получится для такого сделать, так ведь?

Andrey Solovyev
Factory не получится для такого сделать, так ведь?

От чего зависит factory? Если она должна возвращать разные base_t<..> в зависимости от рантайм аргумента, то без std::variant и type erasure не обойтись.

Andrey-Solovyev Автор вопроса
Alexander Karaev
От чего зависит factory? Если она должна возвращат...

Я не знаю T в точке вызова. Поэтому хотелось бы его создать и сохранить сразу при создании объекта base_t.

Andrey Solovyev
Я не знаю T в точке вызова. Поэтому хотелось бы ег...

С++ статически типизирован. Предлагаю описать задачу целиком

Andrey-Solovyev Автор вопроса
Alexander Karaev
С++ статически типизирован. Предлагаю описать зада...

Реализация паттерна Наблюдатель со следующими параметрами: - неизвестные типы Наблюдателей, которые подписываются на один тип событий - шаблонные методы уведомления и обновления состояний Вот пожалуй и все, что надо. В Паблишере надо хранить указатели на черти-что. Когда наступает событие, то Паблишер дергает один метод - уведомить, который имеет шаблонные аргументы. Единственной точкой на этом пути, где происходит взаимодействие Паблишера с Наблюдателем, является метод подписки Наблюдателя на тип событий и когда можно у него спросить - какого ты типа?

А в чем проблема хранить сразу тайп еражур коллбеки? std:: function<void(Event>)

Андрей Будиловский
А в чем проблема хранить сразу тайп еражур коллбек...

Можно прикрутить какие-нибудь токены для отписки, кому нужно отписываться - будет из сохранять при подписке, при отписке брать токен и идти туда, куда надо

Andrey-Solovyev Автор вопроса
Андрей Будиловский
А в чем проблема хранить сразу тайп еражур коллбек...

Шаблонная нагрузка уведомления и обновления состояния. Грубо говоря есть template <typename SomePayload> observer.Update(SomePayload &&)

Andrey-Solovyev Автор вопроса
Kelbon
map<typeid, list>

Большое спасибо! Я забыл про typeid. Это может быть прямо выходом.

Andrey Solovyev
Шаблонная нагрузка уведомления и обновления состоя...

Так лямбду делаешь и все, не? Типа через концерт/сфинае чекеешь, что есть нужный метод, а потом оборачиваешь в лямбду с захватом tgis

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта