Size: a a a

2020 August 26

AF

Aidar Fattakhov in supapro.cxx
Aidar Fattakhov
там костыли вида навесить фьютекс на std::rand()
гнутая силиба реально блокирует там состояние, вижаковая поумнее, там thread local, но srand нужно вызывать в каждом потоке, а стандарт это не специфицирует
источник

ПК

Побитый Кирпич... in supapro.cxx
Aidar Fattakhov
а потом в 2000-х неожиданно выяснилось что потоков может быть больше одного
Ну дак в будущее смотреть сложно)
источник

S

ShadoWalkeR in supapro.cxx
Aidar Fattakhov
я хз почему libc не депрекейтнут
Изза ретроградов, которые, к примеру, ныли при удалении поддержки 386 архитектуры в линуксах - Куда нам пойти с нашим раритетным хламом?
источник

IZ

Ilia Zviagin in supapro.cxx
Aidar Fattakhov
а потом в 2000-х неожиданно выяснилось что потоков может быть больше одного
Не в 2000ном.
Все же на 20 лет раньше
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Правильно ли я понимаю, что методы, возвращающие *this стоит всегда дублировать: делать обычные + const (если они ничего не меняют)?

1. Обычные — чтобы можно было применить не-const методы к результату.
2. Const — чтобы можно было использовать в const-объектах.
источник

АК

Александр Караев... in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Правильно ли я понимаю, что методы, возвращающие *this стоит всегда дублировать: делать обычные + const (если они ничего не меняют)?

1. Обычные — чтобы можно было применить не-const методы к результату.
2. Const — чтобы можно было использовать в const-объектах.
возвращающие ссылку на состояние объекта*
видимо, да
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Александр Караев
возвращающие ссылку на состояние объекта*
видимо, да
Ну да, возвращающие Class& и const Class& соответственно.
источник

IZ

Ilia Zviagin in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Правильно ли я понимаю, что методы, возвращающие *this стоит всегда дублировать: делать обычные + const (если они ничего не меняют)?

1. Обычные — чтобы можно было применить не-const методы к результату.
2. Const — чтобы можно было использовать в const-объектах.
Нет конечно.
источник

IZ

Ilia Zviagin in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Правильно ли я понимаю, что методы, возвращающие *this стоит всегда дублировать: делать обычные + const (если они ничего не меняют)?

1. Обычные — чтобы можно было применить не-const методы к результату.
2. Const — чтобы можно было использовать в const-объектах.
Одни методы надо дублировать, другие не надо. Вот и все правило
источник

АК

Александр Караев... in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Ну да, возвращающие Class& и const Class& соответственно.
нет, я про другое.
например, вектор владеет своими элементами.
следовательно у const вектора можно попросить const ссылку на них, а у обычного - мутабельную.
но это имеет смысл только если нужна именно такая логика
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Правильно ли я понимаю, что методы, возвращающие *this стоит всегда дублировать: делать обычные + const (если они ничего не меняют)?

1. Обычные — чтобы можно было применить не-const методы к результату.
2. Const — чтобы можно было использовать в const-объектах.
Ну а в случае, когда есть const и не-const методы? Вот для этого ☝️
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Ilia Zviagin
Одни методы надо дублировать, другие не надо. Вот и все правило
А когда надо, когда не надо?
источник

АК

Александр Караев... in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Ну а в случае, когда есть const и не-const методы? Вот для этого ☝️
ну вот тебе пример:

class A {
 int state;

public:
 const int& get_state() const { return state; }
 int& get_state() { return state; }
};


как думаешь, хорошо?
источник

IZ

Ilia Zviagin in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
А когда надо, когда не надо?
Зависит от метода, от его функциональности
источник

IZ

Ilia Zviagin in supapro.cxx
Александр Караев
ну вот тебе пример:

class A {
 int state;

public:
 const int& get_state() const { return state; }
 int& get_state() { return state; }
};


как думаешь, хорошо?
Второй должно называться set state
источник

АК

Александр Караев... in supapro.cxx
Ilia Zviagin
Второй должно называться set state
я к тому и вёл :)
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Ilia Zviagin
Второй должно называться set state
Или просто state ?
А, исходный m_state, допустим.
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Правильно ли я понимаю, что методы, возвращающие *this стоит всегда дублировать: делать обычные + const (если они ничего не меняют)?

1. Обычные — чтобы можно было применить не-const методы к результату.
2. Const — чтобы можно было использовать в const-объектах.
Так, а для вот этого (1, 2) разве не надо?
источник

IZ

Ilia Zviagin in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Или просто state ?
А, исходный m_state, допустим.
Вообще, называться он может как угодно, хоть FooBlya
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Или просто state ?
А, исходный m_state, допустим.
Кстати, откуда вообще m_ взялось?
My ?
источник