Да и нет.
boost::polymorphic_downcast<>
, конечно, хороший вариант обработать ошибки dynamic_cast<>
во время фазы отладки. Однако стоит, чтобы упомянуть, что polymorphic_downcast<>
должен использоваться только, когда возможно предсказать, что полиморфный тип передал во время компиляции , иначе эти dynamic_cast<>
должен использоваться вместо него.
Однако последовательность:
if (T1* t1 = dynamic_cast<T1*>(o))
{ }
if (T2* t2 = dynamic_cast<T2*>(o))
{ }
if (T3* t3 = dynamic_cast<T3*>(o))
{ }
обозначает очень плохой дизайн, который должен быть, обосновываются [1 110] полиморфизм и виртуальные функции .
В главной ветви версии SO интересная строка - строка 2341:
Attacklab.wmd_defaults = {версия: 1, вывод: "HTML", lineLength: 40, delayLoad: ложный};
Измените это, чтобы вместо этого запрашивать уценку:
Attacklab.wmd_defaults = {version: 1, output: "markdown", lineLength: 40, delayLoad: false};
.. и вы получите Markdown вместо этого.
В моей версии (mooWMD) вы должны изменить значение в строке 1343 с «html» на «уценку».
Я считаю, что это то же самое для версии SO (ищите значение конфигурации «output»).