Matwey
Pango который Cairo
Дмитрий ⬡
Если дёргаешь из одного потока, то должно быть ок, доставай санитайзер
Ignat
Как найти причину: (process:5050): GLib-WARNING **: corrupted double-linked list detectedГде-то условия гонки в программе, которые приводят к вот этому.
существует ли вообще GTK-софт, не сыплющий в консоль ворнингами про сфейленные ассерты?
Oleg
Лолнет
Дмитрий ⬡
И при этом, зараза, работает.
Anton
Только падает иногда )
Дмитрий ⬡
Я недавно писал очень маленькую программу на GTK через GTKmm, там заметно проще не получать люлей, но местами пишется через задницу.
🦥Alex Fails
Покажи код
Дмитрий ⬡
+ ко всему версия gtkmm отстаёт неплохо так от GTK+
Йеп. Мне вот надо было повесить для отрисовки анимации tick callback, пришлось сишной обёрткой. А они тем временем строят планы на версии 4, 5, 6... И чуваки ваще не хотят в семантическое версионирование. Кажется, если хочется педалить интерфейс на плюсах, лучше пойти в сторону QT, тут реально дикие звери.
Дмитрий ⬡
Кстати, вот то что люди юзают GTK3: версия 3.24 у них называется "А апи ещё не стабильное, да, скоро устаканется"
Дмитрий ⬡
Так что запуск с другой версией рантайм-либы ваще не понятно как работает. Вот ассерты и сыпятся.
🦥Alex Fails
семвер плачет(
Igor
"семвер не нужен, live at head", если верить гуглу
🦥Alex Fails
Это видно по их андроиду
Evgenii
это видно по их хрому
🦥Alex Fails
Да
🦥Alex Fails
https://habrahabr.ru/company/pvs-studio/blog/347594/
🦥Alex Fails
"Красивый"
🦥Alex Fails
Меня бесит он оверинжинирингом
Igor
https://godbolt.org/g/kZCb8E есть вот такая штука в рабочем коде с Threadsafe<X> всё здорово, но в некоторых местах встречается const Threadsafe<X>, и для него не придумали ничего лучше чем написать отдельный ConstScopeLocked с константной ссылкой и только константными методами вопрос, насколько этот дополнительный класс торт, и как можно без него обойтись? в голову приходит только конструирование ScopeLocked через метод const и не-const метод Threadsafe::Lock() ещё есть мысль вместо const Threadsafe<X> использовать Threadsafe<const X>, какие подводные камни могут ждать в этом случае?
Matwey
Господа
Matwey
Позвольте украсить минуточку вашего внимания
Matwey
https://raw.githubusercontent.com/oetiker/rrdtool-1.x/master/src/rrd_nan_inf.c
Matwey
Неужели еще так и не изобрели другого способа сделать это же самое?
Matwey
Я имею ввиду, в C. В C++ вроде в numeric_limits я видел нужное
Ignat
SYNOPSIS #include <math.h> double nan(const char *tagp); long double nanl(const char *tagp); float nanf(const char *tagp); DESCRIPTION The nan() functions return a quiet NaN, whose trailing fraction field contains the result of converting tagp to an unsigned integer. If tagp is too large to be contained in the trailing fraction field of the NaN, then the least significant bits of the integer represented by tagp are used.
Matwey
Это C11?
Ignat
ман говорит, что да, но мне казалось, что и в С99 такое было
Matwey
C99, вижу
Ignat
http://en.cppreference.com/w/c/numeric/math/INFINITY ну и такое есть ещё
Vsevolod
код rrd - это полная помойка
Stanislav
C99, вижу
но надо пписать с89 онли
Ignat
Линус, залогиньтесь
Stanislav
а то вдруг не соберется под моим любимым эээ черт его знает чем
Stanislav
там даже плюсы обычно есть, а про с99 молчу
🦥Alex Fails
https://raw.githubusercontent.com/oetiker/rrdtool-1.x/master/src/rrd_nan_inf.c
Емнип, в каком-то Си есть константы / фкнкции на это
Ignat
у нас в проекте буквально месяц назад перешли на С99 >_<
Ignat
нуу у нас компеляторы бывают старыми
Ignat
а вообще какая разница
Ignat
ну это причина против С++11
Ignat
С11, наверное, поддерживается лучше
Ignat
но зачем, казалось бы
Ignat
static_assert разве что кайф фича
🦥Alex Fails
ну это причина против С++11
Как нитстранно, но обычно плюсы шустрее сей делают (но я могу ошибаться)
Vitaliy ◀️TriΔng3l▶️
Stanislav
MSVC так себе(
в планах кстати
Stanislav
хотят с++17 сначала, потом с++20 и с11 допилить
Ignat
ну когда собираешь только gcc, то более-менее плевать, есть нужные тебе фичи в стандарте или нет
Vitaliy ◀️TriΔng3l▶️
в планах кстати
А на какую долю сейчас поддерживается?
Vitaliy ◀️TriΔng3l▶️
Там есть что-то, чего нет в C++?
Vitaliy ◀️TriΔng3l▶️
ООП, STL :D
Не, наоборот, я имею в виду
Vitaliy ◀️TriΔng3l▶️
Microsoft хотели поддерживать ту часть C11, которая есть в C++
Anonymous
аааа
Vitaliy ◀️TriΔng3l▶️
Но из поддержки std::complex не обязательно следует поддержка _Complex, вообще, там это хоть сделано нормально?
Igor
По поводу ConstScopeLocked - а в обычном классе const-методы, какя понял, не работают? По поводу const X - вроде норм, но надо будет аккуратнее с инстанцированием всяких методов, пытающихся модифицировать не-const
В обычном работают, можно создать const ScopeLocked который не сможет изменять значения Но его нельзя создать из const Threadsafe&, только из Threadsafe&
Vitaliy ◀️TriΔng3l▶️
а, не, с этим нормально всё, complex.h есть в VS2017
Anonymous
хватит меня пугать :D, математика, макросы, си
Anonymous
какбудто страшные истории рассказываете
Vitaliy ◀️TriΔng3l▶️
Макро ж есть
Ну complex.h и complex это два вообще разных файла
Anonymous
какой кстати gcc сейчас последний?7.2.0?
Vitaliy ◀️TriΔng3l▶️
Причём <complex> включает <ccomplex>, который включает <complex>
Vitaliy ◀️TriΔng3l▶️
Includes the STL header <complex>, which effectively includes the Standard C library header <complex.h> and adds the associated names to the std namespace.
Vitaliy ◀️TriΔng3l▶️
Чтоооооо, это как понимать вообще
🦥Alex Fails
Попробуй без <bool> собрать, C++17 позволяет же
А хотя тут в принципе запрещено. У нас const же на сам объект ScopedLocked применяется. Поэтому компиль и шлет лесом
Vitaliy ◀️TriΔng3l▶️
Хотя, csin назвать std::sin вполне логично, по аналогии с sinf
Anonymous
0_o
Anonymous
mingw уже есть?
🦥Alex Fails
Собери
Дмитрий ⬡
Ха ха ха