Size: a a a

2020 August 07

m

magras in pro.cxx
Александр Караев
выглядит неплохо.
а на строчке foo.draw() автокомплит не сойдёт с ума, если попытаться показать список членов объекта foo?
I have no idea. =)
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Если верить документации, в бусте это записывается чуть короче, но с макросами (код не проверял):

BOOST_TYPE_ERASURE_MEMBER(draw)

using any_drawable = any<
   mpl::vector<
       copy_constructible<>,
       has_draw<void(std::ostream&)>
   >
>;

any_drawable foo(Circle{});
foo.draw();
Есть boost.te, он посовременнее выглядит
источник

m

magras in pro.cxx
С другой стороны там в интерфейсе торчит mpl. Говорят он уже старенький и может долго собираться. Сама библиотека тоже не молодая. Я ею пользовался еще лет 5 назад.
источник

АК

Александр Караев... in pro.cxx
mpl - это печально, да
источник

D

Danya in pro.cxx
Danya
С первого взгляда ничего не поменялось
Забираю слова обратно
источник

ПК

Побитый Кирпич... in pro.cxx
Danya
Забираю слова обратно
Шо хуже стало?
источник

D

Danya in pro.cxx
Побитый Кирпич
Шо хуже стало?
Не, получше
источник

NP

Nikita Provotorov in pro.cxx
Используете ли вы специальные naming conventions для приватных полей?
Анонимный опрос
31%
Да, префикс m_ (напр. m_field)
31%
Да, постфикс _ (напр. field_)
15%
Да, префикс _ (напр. _field)
5%
Да, другое соглашение
18%
Нет
Проголосовало: 119
источник

NP

Nikita Provotorov in pro.cxx
Только плиз без обсуждения + или -, а то выльется в холивар
источник

CD

Constantine Drozdov in pro.cxx
Nikita Provotorov
Используете ли вы специальные naming conventions для приватных полей?
Анонимный опрос
31%
Да, префикс m_ (напр. m_field)
31%
Да, постфикс _ (напр. field_)
15%
Да, префикс _ (напр. _field)
5%
Да, другое соглашение
18%
Нет
Проголосовало: 119
Если префикс m_ для всех полей это какой ответ?
источник

NP

Nikita Provotorov in pro.cxx
Constantine Drozdov
Если префикс m_ для всех полей это какой ответ?
хм, видимо надо было больше ответов предусмотреть
источник

W

Wild_Wind in pro.cxx
Nikita Provotorov
Используете ли вы специальные naming conventions для приватных полей?
Анонимный опрос
31%
Да, префикс m_ (напр. m_field)
31%
Да, постфикс _ (напр. field_)
15%
Да, префикс _ (напр. _field)
5%
Да, другое соглашение
18%
Нет
Проголосовало: 119
Для полей - нормальные имена, а для методов с постфиксом.

К примеру:

class mail(){
   /*_*/
   std::string mailbox;
   std::string hostname;
   static constexpr const char separator = '@';
   mail(std::string_view mailbox_, std::string_view hostname_)
   : mailbox(mailbox_), hostname(hostname_) {}
   /*_*/
};
источник

NP

Nikita Provotorov in pro.cxx
Wild_Wind
Для полей - нормальные имена, а для методов с постфиксом.

К примеру:

class mail(){
   /*_*/
   std::string mailbox;
   std::string hostname;
   static constexpr const char separator = '@';
   mail(std::string_view mailbox_, std::string_view hostname_)
   : mailbox(mailbox_), hostname(hostname_) {}
   /*_*/
};
интересно, спасибо
источник

d

disba1ancer in pro.cxx
Nikita Provotorov
Используете ли вы специальные naming conventions для приватных полей?
Анонимный опрос
31%
Да, префикс m_ (напр. m_field)
31%
Да, постфикс _ (напр. field_)
15%
Да, префикс _ (напр. _field)
5%
Да, другое соглашение
18%
Нет
Проголосовало: 119
где анархия?
источник

W

Wild_Wind in pro.cxx
Nikita Provotorov
интересно, спасибо
Нз.
Мне такой больше всего нравится. И смысловая нагрузка имен сохраняется, и уродливых (для моей тонкой натуры эстета) m_  - нет.
источник

NP

Nikita Provotorov in pro.cxx
disba1ancer
где анархия?
ну, это видимо подмножество "нет")))
источник

ПК

Побитый Кирпич... in pro.cxx
Nikita Provotorov
хм, видимо надо было больше ответов предусмотреть
Есть ещё вариант просто m
источник

ПК

Побитый Кирпич... in pro.cxx
Wild_Wind
Для полей - нормальные имена, а для методов с постфиксом.

К примеру:

class mail(){
   /*_*/
   std::string mailbox;
   std::string hostname;
   static constexpr const char separator = '@';
   mail(std::string_view mailbox_, std::string_view hostname_)
   : mailbox(mailbox_), hostname(hostname_) {}
   /*_*/
};
В этом смысла не вижу
источник

W

Wild_Wind in pro.cxx
Побитый Кирпич
В этом смысла не вижу
Почему?
Я просто привык собирать с определенным набором варнов.
-Wshadow в том числе.
источник

ПК

Побитый Кирпич... in pro.cxx
Wild_Wind
Почему?
Я просто привык собирать с определенным набором варнов.
-Wshadow в том числе.
Дак параметры функции не шадовят поля в списке инициализации
источник