Size: a a a

cxx.Дискуссионная

2020 May 25

O

Ofee in cxx.Дискуссионная
Александр Караев
я предположил, что ты можешь не знать, т.к. перепутал inline и инлайнинг
Да, я перепутал их, только перечитав cppref, понял, что у нас ODR violation  зависит не от того, что компилятор инлайнит функцию, а от того, что она по определению inline...
Да, похоже, что здесь таки есть ODR violation, как я подозревал, пойти, что ли, таки отстрелить ноги пользователям...
источник

0

0xFF in cxx.Дискуссионная
Ofee
Да, я перепутал их, только перечитав cppref, понял, что у нас ODR violation  зависит не от того, что компилятор инлайнит функцию, а от того, что она по определению inline...
Да, похоже, что здесь таки есть ODR violation, как я подозревал, пойти, что ли, таки отстрелить ноги пользователям...
Че за проект?
источник

O

Ofee in cxx.Дискуссионная
0xFF
Че за проект?
libkill-each-user.so.0.0.1
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
Я хочу, чтобы пользователь мог в себя выстрелить ядерной гранатой:
Foo foo{"boom!"};
чтобы выстрелить в себя гранатой, надо сделать Foo{} в разных местах
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
чтобы выстрелить в себя гранатой, надо сделать Foo{} в разных местах
Допустим, сделали... Но я так понимаю, Foo{"x"}, Foo{"y"} тоже УБ, если это в разных местах и макросы у нас разные. Просто не настолько явно
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
Допустим, сделали... Но я так понимаю, Foo{"x"}, Foo{"y"} тоже УБ, если это в разных местах и макросы у нас разные. Просто не настолько явно
нет
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
= для члена класса в объявлении класса влияет только на aggregate initialization
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
если ты все параметры туда в {} передал, то вообще никак не влияет
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
ты и ноги себе не сильно так оторвешь, разве ногти подстрижёшь, если на дефолтные значения полей станешь рассчитывать сильно
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
а вот статик — другое дело
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
статик это статно
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
= для члена класса в объявлении класса влияет только на aggregate initialization
В примере aggregate initialization на cppreference такой пример: T object {arg1, arg2, ...};. Это точно не оно?
источник

O

Ofee in cxx.Дискуссионная
Но я не очень люблю играть в это бинго, всегда проигрываю...
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
В примере aggregate initialization на cppreference такой пример: T object {arg1, arg2, ...};. Это точно не оно?
это пример aggretate initialization, да
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
это пример aggretate initialization, да
Сложно это всё... Пойду лучше разыменую нулевой указатель, это, кажется, эффективнее...
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
Сложно это всё... Пойду лучше разыменую нулевой указатель, это, кажется, эффективнее...
это слишком легко ищется и отлаживается
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
попробуй конфликтующие weak-символы из разных shared libraries в одном процессе
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
и конфликты C++03/C++11 abi
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
это слишком легко ищется и отлаживается
#define true (static_cast<bool>((rand()%15)==0 ?(*(static_cast<int*>nullptr) = 1) : 1))?
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
попробуй конфликтующие weak-символы из разных shared libraries в одном процессе
пусть при вызове конфликтующих символов будут ещё статические синглтоны дёргаться
источник