Size: a a a

2020 July 02

m

magras in pro.cxx
Александр Караев
обычно вдумчивое осознавание факта, что в любой точке программы известен конкретный статический тип любого объекта, приводит к решению проблемы
Я бы еще добавил, что вытаскивание конкретного типа после стирания происходит всегда через switch case (явный или спрятанный в кишках std::visit). Либо конкретный тип не нужен и используется виртуальные функции.
источник

AS

Alex Sandrov in pro.cxx
иногда пробуют использовать dynanic_cast, но как-то это не очень красиво
источник

NP

Nikita Provotorov in pro.cxx
Александр Караев
шикарное решение :)
на самом деле это абсолютно ничем не отличается от std::variant + std::visit
просто здесь множество возвращаемых значений описывается не внутри variant, а всеми перегрузками визитора
источник

NP

Nikita Provotorov in pro.cxx
Nikita Provotorov
на самом деле это абсолютно ничем не отличается от std::variant + std::visit
просто здесь множество возвращаемых значений описывается не внутри variant, а всеми перегрузками визитора
кстати, как по мне это даже хуже, поскольку если внутрь factory нужно будет добавить еще несколько создаваемых типов, то возможно придется дописывать всех визиторов
источник

AS

Alex Sandrov in pro.cxx
factory должно генерироваться внутри A, чтобы не бегать туда-сюда, когда список типов меняется
источник

m

magras in pro.cxx
Кстати если нужно type erasure на открытый сет. std::any имеет очень ограниченный интерфейс. Это бывает очень неудобным. В boost.type_erasure можно создать свой any на котором будут работать те операции, которые попросишь (естественно они должны быть реализованы во всех типах, которые кладутся в этот any).
источник

АК

Александр Караев... in pro.cxx
magras
Кстати если нужно type erasure на открытый сет. std::any имеет очень ограниченный интерфейс. Это бывает очень неудобным. В boost.type_erasure можно создать свой any на котором будут работать те операции, которые попросишь (естественно они должны быть реализованы во всех типах, которые кладутся в этот any).
источник

m

magras in pro.cxx
Нет, это что-то другое, но у них внизу есть ссылки на аналоги. В том числе на: https://www.boost.org/doc/libs/1_73_0/doc/html/boost_typeerasure.html
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
Посоветуйте, пожалуйста. Есть функция-фабрика, которая конструирует шаблонный класс. Проблема в том, что шаблонные параметры определяется в рантайме, они заранее не известны, и даже их (параметров) число может различаться. Функция может сконструировать нужный класс, но не может вернуть, потому что не известен возвращаемый тип на этапе компиляции. Есть какой-то приём для такой ситуации?
Есть - называется "динамический полиморфизм"
источник

A

ARCHANGEL in pro.cxx
Коллеги, есть ли какой-то плагин для MSVC, чтоб rtd и markdown удобно редактировать прям в IDE?
источник

AT

Andrew Titov in pro.cxx
MSVC — это компилятор, а не IDE. :)

https://marketplace.visualstudio.com/search?term=markdown&target=VS
источник

A

ARCHANGEL in pro.cxx
я не забаненный в гугле, что там по rtd во всех этих плагинах?
источник

SE

Stanislav Ershov in pro.cxx
ARCHANGEL
я не забаненный в гугле, что там по rtd во всех этих плагинах?
че за rtd?
источник

A

ARCHANGEL in pro.cxx
Stanislav Ershov
че за rtd?
read the docs, типа как sphinx на питоне юзает
источник

A

ARCHANGEL in pro.cxx
Stanislav Ershov
че за rtd?
.rst которые
источник

D

Danya in pro.cxx
Внезапный С++ квиз

Вот есть такой прекрасный код:
https://vk.cc/awxJzl (не бойтесь, там просто картинка с кодом на сервере Вк, чтобы сложнее было проверить)

Что будет в stdout, если скомпилировать этот код с выводом переменной m в stdout?
источник

D

Danya in pro.cxx
Что будет?
Анонимный опрос
35%
1.0
4%
2.0
6%
3.0
13%
Compilation error
43%
Undefined behavior (например segmentation fault)
Проголосовало: 54
источник

ПК

Побитый Кирпич... in pro.cxx
Danya
Внезапный С++ квиз

Вот есть такой прекрасный код:
https://vk.cc/awxJzl (не бойтесь, там просто картинка с кодом на сервере Вк, чтобы сложнее было проверить)

Что будет в stdout, если скомпилировать этот код с выводом переменной m в stdout?
Чё?
источник

D

Danya in pro.cxx
Отвечай давай
источник

ПК

Побитый Кирпич... in pro.cxx
Я вопрос не распарсил
источник