170 похожих чатов

Отследить что куда то сохраняется указатель на функцию который может

быть использован в другой функции которая никогда не вызывается?

23 ответов

32 просмотра

Тут сильнее набросили, у людей оказывается бывают функторы с разными const() и () а через function нельзя вызвать const()

Dmitry-Sokolov Автор вопроса
Aidar Fattakhov
Тут сильнее набросили, у людей оказывается бывают ...

Да, это изначальная хрень в std function. Я в своей реализации сохраняю const

Dmitry-Sokolov Автор вопроса
Kelbon
наоборот можно всегда

Да, проблема что можно всегда

Dmitry Sokolov
Да, это изначальная хрень в std function. Я в свое...

А вроде можно, не? Только другой тип надо указать

Dmitry-Sokolov Автор вопроса
disba1ancer
А вроде можно, не? Только другой тип надо указать

Там оператор const хотя callable может быть mutable. То есть const независимо от сигнатуры () или () const.

Dmitry Sokolov
Там оператор const хотя callable может быть mutabl...

в общем походу я из этой дискуссии ничего не понял, впрочем и читал по диагонали, так забью пока на это

Dmitry-Sokolov Автор вопроса
disba1ancer
в общем походу я из этой дискуссии ничего не понял...

Помнятся претензии что это приводит к тому что вызов const метода function нарушает std гарантии отсутствия гонок. Был когда то proposal на поддержку qualified сигнатур, p0045r1.

Dmitry-Sokolov Автор вопроса
disba1ancer
а что там за гарантии такие?

[res.on.data.races]/p3, A C++ standard library function shall not directly or indirectly modify objects accessible by threads other than the current thread unless the objects are accessed directly or indirectly via the function's non-const arguments, including this".

Dmitry Sokolov
[res.on.data.races]/p3, A C++ standard library fun...

странноватая гарантия, имхо, избыточная, но из текста не всё ясно...

Vlad
https://youtu.be/xTdeZ4MxbKo?t=2636

на англ не слушаю, не могу распарсить...

disba1ancer
на англ не слушаю, не могу распарсить...

автоматически сгенерированные субтитры норм

Dmitry-Sokolov Автор вопроса
disba1ancer
странноватая гарантия, имхо, избыточная, но из тек...

Ну какие-то объекты могут иметь скрытое мутабельное состояние, например lazy evaluated. Логически это может быть const, но при этом непотокобезопасно. А это гарантия того, что такого состояния не должно быть и объекты std либы через const методы можно использовать конкурентно.

Dmitry Sokolov
Ну какие-то объекты могут иметь скрытое мутабельно...

ну если имеется ввиду то, что надо все мутаблы надо мутексами обкладывать, это справедливо

Dmitry-Sokolov Автор вопроса
disba1ancer
ну если имеется ввиду то, что надо все мутаблы над...

Нет же, имеется в виду что const не надо мьютексами обкладывать :)

Dmitry Sokolov
Нет же, имеется в виду что const не надо мьютексам...

а как же если объект const, а у него внутри mutable поле?

Dmitry-Sokolov Автор вопроса
disba1ancer
а как же если объект const, а у него внутри mutabl...

Это std, неведомо нам чо mutable есть там

Dmitry Sokolov
Это std, неведомо нам чо mutable есть там

а на случай когда std вызывает юзерский код это не распространяется?

disba1ancer
а на случай когда std вызывает юзерский код это не...

можете какой-нибудь пример придумать?

disba1ancer
вряд ли

мне тоже ничего в голову не приходит. если пользовать пишет специализацию шаблона стандартной библиотеки для своего типа, то он подчиняется требованиям стандарта http://eel.is/c++draft/library#namespace.std-2

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта