
Ilia
10.05.2018
11:06:55

Alexander
10.05.2018
11:06:58
так то да, оно работает

Ilia
10.05.2018
11:13:30
Что-то я не понял тебя, ты напишешь лямбду а потом сам будешь ещё её менять?

Google

Alexander
10.05.2018
11:14:33
и способа нормального кроме как навесить на них const за пределами лямбды я не вижу

Spoonson
10.05.2018
11:15:47
можно сделать какой-нибудь враппер, который будет делать копию и работать как std::cref

Igor
10.05.2018
11:39:55

Nikita
10.05.2018
11:40:38
Насколько я понимаю ссылка не катит, потому что обьект может уже умереть когда лямбда вызовется

Alexander
10.05.2018
11:41:09

Igor
10.05.2018
11:46:44

Alexander
10.05.2018
11:47:00
я вообще хотел бы, чтобы это легко делалось с помощью обычных спецификаторов во время захвата
без всего этого говна. Пусть Полухин и не согласится из-за перегруженности лямбд

Friedrich
10.05.2018
11:48:15
Ну ты и сам понимаешь.

Alexander
10.05.2018
11:48:36
я знаю в комитете любителя лямбд

Google

Friedrich
10.05.2018
11:48:48
Всяк пропихивает свои фичи, и получается чёрте что.

Alexander
10.05.2018
11:49:20
да норм получается пока что

Igor
10.05.2018
11:49:30
+, потому что ссылки не продлевают время жизни
А может MSVC прав? На http://en.cppreference.com/w/cpp/language/lambda написано что "The type of each data member is the type of the corresponding captured entity, except if the entity has reference type (in that case, references to functions are captured as lvalue references to the referenced functions, and references to objects are captured as copies of the referenced objects)."

Friedrich
10.05.2018
11:50:08

Igor
10.05.2018
11:50:51

Friedrich
10.05.2018
11:52:06
Ок, я неправ. Перечитал, и твоя трактовка мне ближе.
Но это же для кейса с захватом по значению?

Alexander
10.05.2018
11:53:12
да, это захват по значению ссылки

Friedrich
10.05.2018
11:53:29
Ну ок, по значению ссылки захватывается объект. Вроде бы нормально.

Igor
10.05.2018
12:00:47
Еще смешнее - если поставить ссылку в инициализатор, то все компиляторы выводят тип под ссылкой. Но только gcc оставляет const: https://godbolt.org/g/qgdgkB

Aidar
10.05.2018
12:22:46
Только всрешь копируемость
Ну кстати неочевидно почему сразу не приняли такой синтаксис
[cv qualified type, reference]name[= ...]

Alexander
10.05.2018
12:32:26
как раскопаю - расскажу

Ilia
10.05.2018
12:44:18
Не, блин, тебе это не пойдёт. Это если для ссылок.

Alexander
10.05.2018
12:45:00
со ссылками всё окей сейчас ?

Ilia
10.05.2018
12:45:42
Чтото какой-то у тебя совсем мутный, непонятный случай...

Google

Alexander
10.05.2018
12:58:46

Aidar
10.05.2018
13:08:15

Alexander
10.05.2018
13:08:34
так, к сожалению, тоже не сделали

Aidar
10.05.2018
13:08:44
да я просто идейки кидаю

Alexander
10.05.2018
13:08:47
хотя казалось бы, алиасы просто чуточку расширить

Aidar
10.05.2018
13:10:26
кстати вот вопрос
почему я не могу создавать cv qualified временые переменные
ну типа:
const int a{1}; можно
const int{1} нельзя

Igor
10.05.2018
13:13:59

Aidar
10.05.2018
13:14:52

Александр
10.05.2018
13:15:09

Igor
10.05.2018
13:15:34

Spoonson
10.05.2018
13:15:54
потому что есть using

Александр
10.05.2018
13:15:57
Каждый раз, когда я вижу typedef в современных реалиях, хочу плакать

Aidar
10.05.2018
13:16:36
это int а не const int

Igor
10.05.2018
13:16:44

Ilia
10.05.2018
13:16:53

Александр
10.05.2018
13:17:20

Google

Alexander
10.05.2018
13:17:23

Александр
10.05.2018
13:17:28
Ясен пень, никто не уберет

Aidar
10.05.2018
13:18:27
вопрос а у mutable лямбды оператор() всеравно const?
только содержимое mutable?

Admin
ERROR: S client not available

Aidar
10.05.2018
13:19:44
а нет
тогда мне не понятно почему mutable ломает мои старания
я знаю почему
потомучто cint{1} это int
а не const int
пускай даже using cint=const int;

Igor
10.05.2018
13:33:46

Walter
10.05.2018
14:57:29
Сравните 2 фрагмента кода:
1: int v1=1; long v2=2; v1=v1+v2;
2: int v1=1; long v2=2; v1+=v2;
Будет ли разница при исполнении этих строк кода?
При сокращённых операциях в java производится приведение типов. То есть v1+=v2 аналогична v1=(int)(v1+v2) Соответственно в первой строке будет ошибка компиляции так как long шире чем int, а вторая строка успешно выполнится.

Дед Пегас
10.05.2018
14:58:14
Так. Какого Страуструпа ты тут спамишь Явой?

Andrey
10.05.2018
15:31:17

† Dr◬ider †
10.05.2018
15:36:02
Или boost

Constantine
10.05.2018
15:36:54

SkromRatClub
10.05.2018
15:48:52

Google

olologin
10.05.2018
16:51:39
Господа, допустим я разрабатываю dll-ку, и хочу в случае крешей релиз билда моей длл-ки у заказчика получить как можно больше инфы. Разумеется у меня будет дебаг инфа к релизу, и как минимум я хочу получить стектрейс. Вопрос: имеет ли смысл применять минидампы? Будут ли они работать в случае когда у меня как у разработчика нет всех длл/exe загруженных в процесс которые были загружены в момент создания дампа. Есть исходники, бинарники и дебаг инфа только моей длл-ки.
или проще забить и использовать только стектрейс?

Максим
10.05.2018
17:05:49
Кто разбирается в побитывых операциях?

olologin
10.05.2018
17:06:37

Максим
10.05.2018
17:07:05
Почему допустим у меня число
char x = 228;
x=x<<4>>4
получается не 4, а теже 228
получется если только делать по 1 разу
естественно там unsigned char

Antony
10.05.2018
17:08:39
Хочу поделиться маленькой радостью: исправили (пока только в GCC) баг, при котором считалось что при вызове конструктора this может быть равен адресу аргумента на вход. Другими словами this в конструкторах больше не алиасится с параметрами на вход, и все сложные copy/move конструкторы стали работать немного быстрее
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82899#c10
... и бинарники станут немного компактнее

Andrey
10.05.2018
17:22:32

Максим
10.05.2018
17:23:12

Andrey
10.05.2018
17:24:00

Максим
10.05.2018
17:24:22

Poligraph
10.05.2018
17:24:55
@winged_pegasus