|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Какое слово из "не используйте анонимные namespace в заголовочных файлах" ты прочёл как "static лучше"?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:01 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Критический недостаток: в отличии от вложенных функций у них нет доступа к локальным переменным родителя. Фактически, их можно тупо скопипастить "наружу" и они ничего не потеряют и не приобретут в плане функциональности. Ну почему же. Пишете [&,this] - и есть доступ ко всему что может окружающий блок. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:20 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Anatoly Moskovskyи есть доступ ко всему что может окружающий блок. А ещё их нельзя вызвать из двух разных мест. То есть code reuse отпадает и остаётся только костыль для того, чтобы впихнуть невпихуемое: код на место значения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:29 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Зачем их вызывать из разных мест? Суть лямбд в использовании их там где они объявлены. Для повторного использования кода есть классы и функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:39 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Какое слово походу то самое, которое ты прочёл, как "анонимные лучше" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:47 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyСуть лямбд в использовании их там где они объявлены. В таком варианте они не отличаются от обычных фигурных скобок. За исключением того, что, как уже сказано, могут занимать место значения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:50 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Спасибо за ответы ! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 14:24 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А ещё их нельзя вызвать из двух разных мест. То есть code reuse отпадает и остаётся только костыль для того, чтобы впихнуть невпихуемое: код на место значения. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 14:37 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
лямбды не предлагают какой-то новый функционал, но они позволяют втыкать простые ф-и посреди кода, прямо там, где они нужны. Это экономит время, поскольку не нужно писать новый класс или внешнюю ф-ю. Они и в многопоточности юзабельны. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 14:40 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020они позволяют втыкать простые ф-и посреди кода Это и составной оператор может. У него и синтаксис попроще будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 14:56 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 petrav Вместо static можно использовать анонимный namespace. говорят static лучше авторSummary Avoid working with anonymous namespaces if you’re working with headers. Due to default internal linkage, each translation unit will define its own unique instance of members of the unnamed namespace which can cause unexpected results, bloat the resulting executable, or inadvertently trigger undefined behavior due to one-definition rule (ODR) violations. Тут вроде написано про работу с заголовочниками. Но даже если безымянный неймспейс написать в заголовочнике... Я не понял откуда там может взяться undefined behavior. Ведь #include это же просто подстановка текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 14:58 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
UB из-за ODR, а ODR это: авторПравило одного определения (One Definition Rule, ODR) — один из основных принципов языка программирования C++. Назначение ODR состоит в том, чтобы в программе не могло появиться два или более конфликтующих между собой определения одной и той же сущности (типа данных, переменной, функции, объекта, шаблона). Если это правило соблюдено, программа ведёт себя так, как будто в ней существует только одно, общее определение любой сущности. Нарушение ODR, если оно не будет обнаружено при компиляции и сборке проекта, приводит к непредсказуемому поведению программы. и он пишет, что авторИз-за внутренней связи по умолчанию каждая единица перевода будет определять свой собственный уникальный экземпляр членов безымянного пространства имен, что может привести к неожиданным результатам, раздуванию результирующего исполняемого файла или непреднамеренному запуску неопределенного поведения из-за нарушения правила одного определения (ODR). т.е. получится безымянное пространство, которое сложится с любым другим безымянным пространством, и если там совпадут названия сущностей, то будет UB. Я так понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 15:53 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Алексей Роза 2020они позволяют втыкать простые ф-и посреди кода Это и составной оператор может. У него и синтаксис попроще будет. и макросы тоже могут. а вот у составного оператора переменные где? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 15:55 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020а вот у составного оператора переменные где? Там же, где и у лямбд: или внутри, или снаружи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 16:31 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, Не совпадут. Не надо захламлять общее пространство и в полный рост надо использовать пространство имен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 16:41 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
ну не заменит, так не сделаешь ты: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 16:44 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Алексей Роза 2020, Не совпадут. Не надо захламлять общее пространство и в полный рост надо использовать пространство имен. мы про анонимные неймспейсы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 16:44 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, Я понял. Вы не ответили какой профит от такого бардака)). Зачем делать анонима чтобы компилятор его именовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 17:00 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 и он пишет, что авторчто может привести к ... непреднамеренному запуску неопределенного поведения из-за нарушения правила одного определения (ODR). т.е. получится безымянное пространство, которое сложится с любым другим безымянным пространством, и если там совпадут названия сущностей, то будет UB. Я так понял. Никакого UB там не может быть. Анонимные неймспейсы гарантируют что все что внутри них не подвержено нарушению ODR, потому что компилятор гененрирует уникальные имена в каждой единице трансляции. Они собственно для этого и введены в язык. А про раздувание машинного кода - да, вполне возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 17:23 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Никакого UB там не может быть. так о чём он пишет тогда? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 18:28 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Зачем делать анонима чтобы компилятор его именовал? это вон там спрашивай: petrav Вместо static можно использовать анонимный namespace. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 18:29 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 так о чём он пишет тогда? Ну мало ли, какой-то студент написал чушь. ЧТо тут обсуждать )) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 20:38 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
mini.weblab Спасибо за ответы ! :-) Больше нет вопросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 22:42 |
|
C: что записывать в заголовочные файлы?
|
|||
---|---|---|---|
#18+
mayton mini.weblab Спасибо за ответы ! :-) Больше нет вопросов? А вам бы только темы закрывать. Это не навязчивая идея? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 00:29 |
|
|
start [/forum/topic.php?fid=57&msg=39990799&tid=2017348]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 538ms |
0 / 0 |