Сообщение Re[2]: Интерфейсы и реализации от 06.03.2024 15:06
Изменено 06.03.2024 15:07 rg45
Re[2]: Интерфейсы и реализации
Здравствуйте, Marty, Вы писали:
M>
А зачем так многословно? Абсолютно то же самое можно было получить гораздо лаконичнее, вот стопроцентный эквивалент:
M>
struct Cursor
M>{
M> Cursor() = delete;
M> Cursor(const Cursor&) = default;
M> Cursor& operator=(const Cursor&) = default;
M> Cursor(Cursor&&) = default;
M> Cursor& operator=(Cursor&&) = default;
M> Cursor(std::shared_ptr<ICursor> pimpl) : m_pImpl(pimpl) {}
M>protected:
M> std::shared_ptr<ICursor> m_pImpl;
M>};
А зачем так многословно? Абсолютно то же самое можно было получить гораздо лаконичнее, вот стопроцентный эквивалент:
struct Cursor
{
Cursor(std::shared_ptr<ICursor> pimpl) : m_pImpl(pimpl) {}
protected:
std::shared_ptr<ICursor> m_pImpl;
};
Re[2]: Интерфейсы и реализации
Здравствуйте, Marty, Вы писали:
M>
А зачем так многословно? Абсолютно то же самое можно было получить гораздо лаконичнее, вот стопроцентный эквивалент:
Ну и конструктор я бы объявил как explicit.
M>
struct Cursor
M>{
M> Cursor() = delete;
M> Cursor(const Cursor&) = default;
M> Cursor& operator=(const Cursor&) = default;
M> Cursor(Cursor&&) = default;
M> Cursor& operator=(Cursor&&) = default;
M> Cursor(std::shared_ptr<ICursor> pimpl) : m_pImpl(pimpl) {}
M>protected:
M> std::shared_ptr<ICursor> m_pImpl;
M>};
А зачем так многословно? Абсолютно то же самое можно было получить гораздо лаконичнее, вот стопроцентный эквивалент:
struct Cursor
{
Cursor(std::shared_ptr<ICursor> pimpl) : m_pImpl(pimpl) {}
protected:
std::shared_ptr<ICursor> m_pImpl;
};
Ну и конструктор я бы объявил как explicit.