kitsu
Berkus
Berkus
с очередями у меня не очень хорошо еще с советских времён /shrug
Anton
Спасибо, буду думать. Пока вариант с сисколами вроде справляется, задел на будущее смотрю
Square
https://t.me/ProCxx/8
Square
извините. ностальгирую
Square
Igor
https://developercommunity.visualstudio.com/content/problem/136448/after-vs-update-the-linker-performs-full-links-all.html - классный баг в MSVC. Если AdditionalIncludeDirectories содержат пути с "/" вместо "\", то инкрементальная линковка не срабатывает. Текущий статус: Closed - Not a Bug
Evgenii
foo is an unsigned short. Is the expression foo + foo signed or unsigned?
signed – 11
👍👍👍👍👍👍👍 50%
implementation defined – 6
👍👍👍👍 27%
unsigned – 5
👍👍👍 23%
👥 22 people voted so far.
Alexey
https://ideone.com/gqPI1k
stdout: i
Evgenii
Evgenii
😉
Max
А почему тогда https://ideone.com/JospV2 ?
Alexey
отвечает александр друзь! я бы тоже послушал...
Evgenii
ответ есть, но я пока послушаю
Max
Igor
https://avva.livejournal.com/3090909.html - исходная голосовалка по этому вопросу с обсуждением
Evgenii
Billy
а вот вопрос такой. имеется большой проект. скажет около 7000 файлов. Там есть тесты на бусте; один suite один файл. Но штука в том, что там иногда бывают оказии, когда нарушается one definition rule. Как избежать ?
Billy
оно и линкуется и иногда даже работает.
Billy
но чаще всего оно ведет себя как портовая куртизанка
Billy
one definition rule нарушается только для boost fixtures
Anonymous
ответ есть, но я пока послушаю
по моему, всё что меньше int всегда преобразуется при арифметических операциях в int как минимум, то есть ответ 1
Evgenii
Anonymous
возможно, это зависит от размера int на конкретной архитектуре
Anonymous
если sizeof(int) > sizeof(unsigned short) то int в результате
Berkus
Billy
не нарушать их
Так да. очевидно. Но я попытался понять, почему это, оказалось, что просто размер такой, что уже хер знает, какие там есть suite, а какие нет, а fixture всегда называют class Fixture и привет
Berkus
🐙 Antony
Запихните все Fixture в анонимный неймспейс
Evgenii
🐙 Antony
Это еще что, вот вам свежачок из C++17:
const char* s = "12345678901234";
std::vector c{s, s+10};
Чему будет равен вектор?
Berkus
эээм, 1234567890?
Berkus
или '1', '2', '3'..
Egor
11?
Anonymous
Anonymous
Anonymous
Последнее "СереброЗолото" , почему не просто Серебро?
Berkus
Oleg
потмоу что break нет
Санжар
🐙 Antony
🐙 Antony
Anonymous
а break где
А всё ,Спасибо!А почему в том чате мне запретили картинки отправлять?
Aliaksei
Vasily
🐙 Antony
Kirill
Kirill
это же не (), он не итераторы принимает, а иниталайзер лист, первое значение 1, второе 1[10]?
Kirill
s, s[10] точнее
Anatoly
Igor
Санжар
Постепенно по мере усложнения с учетом обратной совместимости С++ разрастется так что на сиснтаксис придется жизнь потратить 😆
Anatoly
Vasily
Только вот MSVC такой вывод шаблонных типов не работает (как в примере Антона), что иногда очень неудобно(
Berkus
Anonymous
Anonymous
И здесь тоже
Berkus
Berkus
Kirill
да, авто теймплейт дедакшн дает гемороя :) почему то глаз замыливается и ожилаешь увидеть там <char>
Санжар
Constantine
это же законно?
//file.h
namespace some { template <typename T> T & read_something(); }
template <typename T> inline T& read() { return some::read_something(); }
//file1.cpp
template <>
int & some::read_something<int>() { static int x = 0; return x; }
//file2.cpp
template <>
bool & some::read_something<bool>() { static bool x = 0; return x; }
🐙 Antony
Да
Andrey
нет, кидать код текстом в тг - незаконно
Constantine
Да
То есть можно считать это полностью легальным способом прозрачного развязывания зависимостей между модулями?
🐙 Antony
ага
Constantine
клево)
🐙 Antony
Там одна только проблема - отладка
Constantine
отладка не проблема)
🐙 Antony
С таким способом сообщения об ошибке обычно оказываются на эьапе линковки
Constantine
я просто таким образом хочу глобальными ресурсами управлять
🐙 Antony
И получаются сообщение вида "Unresolved external symbol read_something<очень-многа-букв😠)"
Constantine
ну они понятные, учитывая, что там будет global::read_resource<some_global_resource_interface>