@ProCxx

Страница 2310 из 2477
Alex Фэils?︙
30.08.2018
12:16:53
т.е. это просто затыкивание дыры с форвард-декларацией хрени из пространства имен классов

Google
Spoonson
30.08.2018
12:19:10
а почему текущий вариант реализации должен сломаться?
ой, а я проверил и впрямь ломается если enable_if<false> определить

Alex Фэils?︙
30.08.2018
12:19:54
н да, тогда же не происходит сбоя в подстановке

Andrey
30.08.2018
12:21:53
мне кажется, что удобно это или нет, но текущие правила — все декларации членов класса содержатся в его теле — поменять уже невозвможно. что-нибудь да порвется

Spoonson
30.08.2018
12:26:46
я так понимаю проблема тут в том что если класс неполный, то это будет immediate context, и выходит sfinae, а если проваливаемся в лукап, то уже не immediate и случается ошибка

можно сказать, что лукап в неполном классе это будет immediate context, но не факт что это единственный баг который вылезет

Ilia
30.08.2018
12:28:59
7 ка
chcp 1251

Andrey
30.08.2018
12:31:38
я так понимаю проблема тут в том что если класс неполный, то это будет immediate context, и выходит sfinae, а если проваливаемся в лукап, то уже не immediate и случается ошибка
Нет, почему же, enable_if<false> может быть не определен или определен пустым, и то и другое работает. Я же говорил о другом — если он не определен, то сейчас при попытке lookup'а сразу ошибка, теоретически, наверное, можно сделать так, чтобы lookup в нем возвращал пустое множество и так все sfinae трюки тоже работать будут.

Google
Ilia
30.08.2018
12:35:47
В нем, есть ли что то подобное внутри коробки, чтобы был некий низкоуровневый Апи для работы со звуком?
Все используются параллельно и независимо, в зависимости от того, на чем написано конкретное приложение

Andrey
30.08.2018
12:35:51
У вас 2 функции с одинаковой сигнатурой, на самом деле это одна и та же функция

Denya
30.08.2018
12:36:45
Привет, можете посоветовать что-то для сборки проекта в линукс??/

Denya
30.08.2018
12:37:13
Так. А ещё что нибудь?/

Anton
30.08.2018
12:37:28
Так. А ещё что нибудь?/
http://doc.qt.io/qt-5/qmake-manual.html

Denya
30.08.2018
12:38:01
cmake.org
А cmake соберёт гткмм?

Alex Фэils?︙
30.08.2018
12:38:13
А cmake соберёт гткмм?
а надо смотреть, что там используется

А это?/
qmake ТОЧНО не соберет проект GTK

Denya
30.08.2018
12:38:43
Окей

Ну у меня с++ и гткмм

Egor
30.08.2018
12:39:09
гтк вроде на мезон переходили

Stanislav
30.08.2018
12:39:12
Alexander
30.08.2018
12:39:17
Alex Фэils?︙
30.08.2018
12:39:40
Ну у меня с++ и гткмм
там автотулз: https://gitlab.gnome.org/GNOME/gtkmm/blob/master/Makefile.am

Denya
30.08.2018
12:39:59
гтк вроде на мезон переходили
У меня месон не ставится хз почему

yuri
30.08.2018
12:40:17
...and autotools to rule them all...

Google
Spoonson
30.08.2018
12:56:37
У вас 2 функции с одинаковой сигнатурой, на самом деле это одна и та же функция
Да, про пустой enable_if - дейсвительно будет работать, вы правы. Однако не уверен, что про две функции с одниковой сигнатурой это полное обьяснение - т.к. https://godbolt.org/z/8MEaJc работает, хотя сигнатуры должны быть одинаковые.

Pavel
30.08.2018
13:04:48
а если у меня дефолтный конструктор, то, например, int член класса инициализируется в 0?

Max
30.08.2018
13:13:29
а если у меня дефолтный конструктор, то, например, int член класса инициализируется в 0?
нет, он рандомный. Во избежание неожиданностей - ВСЕГДА инициализируй переменные примитивных типов .

Igor
30.08.2018
13:14:28
за исключением тех случаев, когда класс инициализируется как myclass x{};, кажется

Andrey
30.08.2018
13:14:55
local uninitialized variables SHOULD NEVER be used ” – Unless you’re seeding a random number generator and using the uninitialised memory as an added source of entropy. где-то встречалось

Pavel
30.08.2018
13:15:01
где то же оно инициализировалось в 0. с чем то я попутал...

ну ладно, спасибо

Andrey
30.08.2018
13:15:31
где то же оно инициализировалось в 0. с чем то я попутал...
если статическая примитивная переменная

Побитый
30.08.2018
13:15:32
за исключением тех случаев, когда класс инициализируется как myclass x{};, кажется
можно и так: myclass x = myclass(); и так myclass* px = new myclass(); Это называется инициализация значением

Spoonson
30.08.2018
13:16:06
правильное :) легко проверить — дописать тела к функциям — в первом случае будет redefinition, а в вашем новом примере — нет.
да, кажется понял. Значения по умолчанию не являются частью сигнатуры (?) шаблона, а вот типы - являются, поэтому во втором случае порождается другая функция. Спасибо.

Igor
30.08.2018
13:16:12
я про brace-initialization при котором даже примитивные типы забиваются нулями вроде

Ruslan
30.08.2018
13:17:24
не нулями, а default initialization

Nodir
30.08.2018
13:21:50
chcp 1251
Где это указать?

Evgeny
30.08.2018
13:26:07
есть ещё одна удобная штука на самом деле

Google
Evgeny
30.08.2018
13:26:38
ага :D

A.D.
30.08.2018
13:26:59
ну и ну! расскажи!

Ilia
30.08.2018
13:27:07
А cmake соберёт гткмм?
Если ты сам проект не пишешь, нахрена спрашивать чем его собирать? Он собирается тем, чем решили его авторы

Дед Пегас
30.08.2018
13:28:02
харам*

Evgeny
30.08.2018
13:29:51
ну если ты пишешь, то собирай с помощью CMake :D

Denya
30.08.2018
13:31:06
?

Andrey
30.08.2018
14:01:34
разве чтение неинициализированной переменной не UB?
ну, ты считаешь мусор, приведенный к типу читаемой переменной

Spoonson
30.08.2018
14:02:56
насколько я понимаю, может быть похуже чем мусор. Если не было записи в переменную, то страница может быть не подгружена в память и т.д., вплоть до краша

Igor
30.08.2018
14:05:30
а ещё конпелятор может вывести, что в неинициализированной переменной может находиться какое-нибудь ровно одно значение, и соптимизирует все обращения к переменной до подстановки этого значения https://godbolt.org/z/hm150H https://kristerw.blogspot.com/2017/09/why-undefined-behavior-may-call-never.html

Matwey
30.08.2018
14:05:40
Может быть хуже - тебе нулем заинициализируют а ты и поверишь

На Лоре был тред

Gcc когда использует регистры под переменные - всегда их очищает

Igor
30.08.2018
14:05:47
так что неопределенное поведение на то и неопределенное

Matwey
30.08.2018
14:06:19
Коноплятор

Google
Igor
30.08.2018
14:06:30
да, тот самый который используется линуксоидами для конпеляции ведра

Matwey
30.08.2018
14:06:55
Для конопляции

Ну вообщем на мой вкус это худший вариант UB, который маскируется под требуемое поведение

Aleksandr
30.08.2018
14:13:35
там ещё был какой-то прикол, что значение "не инициализироовано" можно присваивать другим переменным для какого-то ограниченного списка типов. что-то в духе int a; int b = a; и это ок, но b читать нельзя =)

наврал, с интом как раз нельзя. можно с unsigned char https://en.cppreference.com/w/cpp/language/default_initialization

Eugene
30.08.2018
14:40:56
Я так всегда говорю)

Anatoly
30.08.2018
16:12:05
#meetup #spb https://www.meetup.com/St-Petersburg-CPP-User-Group/events/254171514/

Anatoly
30.08.2018
16:30:38
видео будет?
Будет запись

Assasin
30.08.2018
16:30:55
во, супер

Kotbegemot
30.08.2018
16:39:02


Страница 2310 из 2477