Size: a a a

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

2020 May 25

CC

Chris Calvin in cxx.Дискуссионная
напидорасить на торче или тензоре
источник

CC

Chris Calvin in cxx.Дискуссионная
и сожрать все что есть в системе)
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Ну эт именно проблема тфа
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Что у него граф жрет дохера
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Торч уместился в 200 мб
источник

ф

фриквен in cxx.Дискуссионная
Kirill Kaymakov
Торч уместился в 200 мб
Сначало прочитал "торг уместен"
источник

ф

фриквен in cxx.Дискуссионная
Лучше бы я не продавал на авито
источник

ф

фриквен in cxx.Дискуссионная
источник

O

Ofee in cxx.Дискуссионная
Ofee
Кстати, этот пример провоцирует ODR violation, если я распространяю библиотеку уже собранной, а это один из публичных заголовков? Есть желание переопределить макрос на уровне системы сборки в зависимости от каталога, где лежит библиотека

// foo.hpp
struct Foo {
   Foo() {}
   std::string bar = SOME_MARO;
   ...
}
Так что, кто-то знает, стреляю ли я себе в ногу или в обе?
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
Так что, кто-то знает, стреляю ли я себе в ногу или в обе?
до тех пор, пока SOME_MACRO одинаков во всех translation unit на момент декларации класса Foo, ты умело уклоняешься от пуль
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ofee
Так что, кто-то знает, стреляю ли я себе в ногу или в обе?
ODR это про то, что компилятор не может отвечать за линковку
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Ну и у тебя там не static bar, так что если и попадёшь по ноге, то только в разном поведении aggregate initialization
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
до тех пор, пока SOME_MACRO одинаков во всех translation unit на момент декларации класса Foo, ты умело уклоняешься от пуль
Так не интересно же, когда они одинаковы, не в этом же задумка
источник

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

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Ну и у тебя там не static bar, так что если и попадёшь по ноге, то только в разном поведении aggregate initialization
Стоп, а что с дефолтной инициализацией?
источник

O

Ofee in cxx.Дискуссионная
Ofee
Кстати, этот пример провоцирует ODR violation, если я распространяю библиотеку уже собранной, а это один из публичных заголовков? Есть желание переопределить макрос на уровне системы сборки в зависимости от каталога, где лежит библиотека

// foo.hpp
struct Foo {
   Foo() {}
   std::string bar = SOME_MARO;
   ...
}
Я хочу, чтобы пользователь мог в себя выстрелить ядерной гранатой:
Foo foo{"boom!"};
источник

O

Ofee in cxx.Дискуссионная
Я просто не понимаю, легально ли так делать с точки зрения языка
источник

АК

Александр Караев... in cxx.Дискуссионная
Ofee
Я просто не понимаю, легально ли так делать с точки зрения языка
я бы начал рассуждения с того, inline ли конструктор
источник

O

Ofee in cxx.Дискуссионная
Александр Караев
я бы начал рассуждения с того, inline ли конструктор
Предположим, что текст заголовка предоставлен в неизменном виде и конструктор объявлен именно так. Я не знаю, inline ли он :)
Полагаю, это известно только компилятору в данном случае...
источник

АК

Александр Караев... in cxx.Дискуссионная
Ofee
Предположим, что текст заголовка предоставлен в неизменном виде и конструктор объявлен именно так. Я не знаю, inline ли он :)
Полагаю, это известно только компилятору в данном случае...
я не про инлайнинг, а про inline
источник