Size: a a a

2021 February 22

MK

Mikhail Kalugin in supapro.cxx
Способы известные. Если можешь вынести часть поведения так что А) Ему не нужно внутреннее состояние объекта и Б) есть какой -то профит от замены одной реализации на другую - миксины.
источник

MK

Mikhail Kalugin in supapro.cxx
Если есть необходимость собирать объекты прямо в рантайме (желательно фабриками из других объектов) - композиция.
источник

MK

Mikhail Kalugin in supapro.cxx
Для чего можно использовать CRTP даже придумать так сразу не могу - обычный полифорфизм с виртуальными методами все то же самое, плюс dynamic_cast
источник

CD

Constantine Drozdov in supapro.cxx
Mikhail Kalugin
Для чего можно использовать CRTP даже придумать так сразу не могу - обычный полифорфизм с виртуальными методами все то же самое, плюс dynamic_cast
Для костылей
источник

Д

Дима in supapro.cxx
Установил 2017 визуал, а система в смейке берет автоматически путь к старому (C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/lib.exe), как мне узнать какой путь вставлять в CMAKE_AR, чтобы использовался 2017 визуал?
источник

FS

Flower Surgeon in supapro.cxx
Mikhail Kalugin
Для чего можно использовать CRTP даже придумать так сразу не могу - обычный полифорфизм с виртуальными методами все то же самое, плюс dynamic_cast
Если ты задаёшь такой вопрос — значит тебе это не нужно.
источник

MK

Mikhail Kalugin in supapro.cxx
Flower Surgeon
Если ты задаёшь такой вопрос — значит тебе это не нужно.
Был у меня фреймворк (написанный по мотивам WTL) для видов в приложение, чистый CTRP. Удобно, но в общем особо профита не заметил.
источник

FS

Flower Surgeon in supapro.cxx
Mikhail Kalugin
Был у меня фреймворк (написанный по мотивам WTL) для видов в приложение, чистый CTRP. Удобно, но в общем особо профита не заметил.
Я без примера кода ничего сказать не могу.
источник

MK

Mikhail Kalugin in supapro.cxx
Flower Surgeon
Я без примера кода ничего сказать не могу.
Засада, тот код так и не смог уговорить свое руководство открыть.
источник

MK

Mikhail Kalugin in supapro.cxx
Flower Surgeon
Я без примера кода ничего сказать не могу.
Но в общем что-то типа такого
 void CreateClient()
   {
       ATLASSERT(::IsWindow(m_hWnd));
       T* pT = static_cast<T*>(this);
       pT;   // avoid level 4 warning
       m_wndClient.Create(m_hWnd, rcDefault, NULL, pT->GetClientStyle(), pT->GetClientStyleEx(), cViewMenuOrId);
       assert(m_hWnd != NULL);
       pT->InitView();
   }
источник

MK

Mikhail Kalugin in supapro.cxx
Видов было штуки четыре, так что особо ни на что не повлияло.
источник

FS

Flower Surgeon in supapro.cxx
pT;   // avoid level 4 warning

а это зачем?
источник

FS

Flower Surgeon in supapro.cxx
Mikhail Kalugin
Но в общем что-то типа такого
 void CreateClient()
   {
       ATLASSERT(::IsWindow(m_hWnd));
       T* pT = static_cast<T*>(this);
       pT;   // avoid level 4 warning
       m_wndClient.Create(m_hWnd, rcDefault, NULL, pT->GetClientStyle(), pT->GetClientStyleEx(), cViewMenuOrId);
       assert(m_hWnd != NULL);
       pT->InitView();
   }
Я тут не вижу CRTP.
источник

MK

Mikhail Kalugin in supapro.cxx
Не помню уже, если честно.
источник

MK

Mikhail Kalugin in supapro.cxx
эта штука - базовый класс.
источник

MK

Mikhail Kalugin in supapro.cxx
Начинается он так:
источник

MK

Mikhail Kalugin in supapro.cxx
class CChartView :
   public CViewImpl < CChartView, vtkSmartPointer<vtkContextView> >
источник

MK

Mikhail Kalugin in supapro.cxx
Кусок базового класса выше.
источник

CD

Constantine Drozdov in supapro.cxx
Flower Surgeon
Я тут не вижу CRTP.
WTL никогда не видел, что ли
источник

FS

Flower Surgeon in supapro.cxx
Constantine Drozdov
WTL никогда не видел, что ли
Нет и слава Ктулху.
источник