Anton
но за ссылку все равно спасибо
Рома
Рома
блин нельзя скрины кидать
Рома
https://imgur.com/a/hCTRW
Anton
не поверишь
Кстати, ты случайно на ЛОРе не сидишь?
Рома
нет
Рома
Anonymous
Зачем юзать contexpr если есть const?
Alexander "SonnySlave"
Сережа
Чтобы проводить расчеты во время компиляции
Anonymous
В книге написано, что contexpr используется когда значение известно при компиляции
Anonymous
а const - когда не известно
Anonymous
Не так?
Сережа
С++ за 21 день?
Alexander "SonnySlave"
Не так?
constexpr используется для компайлтайм вычислений с использованием всяких constexpr функций
Alexander "SonnySlave"
constexpr переменная гарантирует тебе, что она будет вычислена на этапе компиляции.
const гарантирует, что всего лишь не будет меняться
Anonymous
А ок
Сережа
Не гарантирует
Сережа
Фактически уж точно
Anonymous
С++ за 21 день?
Принципы и практика с использованием С++, Страуструп
Сережа
Есть mutable и const_cast
Alexander "SonnySlave"
Сережа
Это если не брать в расчёт грязные трюки с указателями
Alexander "SonnySlave"
Сережа
Вот в расте я понимаю, константа - значит не меняется
Ignat
Что, в unsafe нельзя узнать её адрес?
Aidar
mutable нужен же для конст методов
Aidar
const методы это типа: если между вызовами конст методов не было вызова неконст то результат одинаков
Aidar
ясен пень что это не подразумевает неизменяемость служебных штук
Berkus
Nikita
Aidar
тут нужно уточнять чтоза изменения
Alexander "SonnySlave"
тогда сами человеку обьясняйте, что const делает
Alexander "SonnySlave"
ну или отправляйте его читать Стандарт 😊
Alexander "SonnySlave"
уже выше писали и про mutable, и про указатели
Alexander "SonnySlave"
так что всё окей)
Дмитрий ⬡
Господа! Если я вызвал конструктор вектора с указанием размера (то есть от одного числа), стоит ли ожидать, что capacity == size? А то в данный момент при отладке выполз очень странный экземпляр, который сразу после конструктора выглядит как: "size как ты просил, 3к, capacity что-то более чем 10значное"?
Daniil
Дмитрий ⬡
Там столько всякого разного вокруг, что даже не оч ясно. Я залез внутрь вектора, кажется в его полях всё правильно. Видимо, gdb оч упорот при отладке OpenCL и OpenGL одновременно.
Дмитрий ⬡
Или это симптомы, что мои обращения к памяти напоминают Халка, которого попросили написать эссе на тему "Крушить — очень плохо"?
Дмитрий ⬡
А нет, кажется реально память похерена, end_of_storage раньше начала вектора.
Дмитрий ⬡
Извините, отбой.
Daniil
Интересная ситуация в любом случае. удачи в разработке!
Дмитрий ⬡
Ещё интереснее: вставляем ассерт - чинится. Кажется, компилятор решил оптимизнуть поле вектора, оч удобно, зараза.
Alexander
это вам не это)
Evgenii
Дмитрий ⬡
Evgenii
Evgenii
попробуй валгринд
Дмитрий ⬡
Ещё хуже
Berkus
валгринд вряд ли дружит
Anonymous
Валгринд через эмуляцию все гоняет и эмулировать cuda еще не научились
Evgenii
а если куду ллвмом собрать?
Дмитрий ⬡
Хип-то мой, CPUшный)
ᅟ
Какой софт использовать для эмуляции com порта
ᅟ
Windows
ᅟ
Хочу понять как девайс воспринимает данные моей проги
Сережа
com0com
Сережа
А вообще лучше портмонитор и смотри обмен с реальным говном мамонта
ᅟ
Ок
Oleg
Снова добрый вечер.
Есть у меня класс. Умеет приводиться к bool (определён operator bool () const). Определены ещё два сравнения (operator == и operator <=). А я беру и два экземпляра сравниваю на >=.
Ожидание: ошибка компиляции.
Реальность: оба экземпляра привелись неявно к bool и сравнили то, что получилось.
Есть под этим какая-нибудь тайная логика? Есть ли возможность получать ожидаемый результат? Понятно, что я сейчас доопределю четыре оператора и вроде бы успокоюсь, но всё равно интересно.
Berkus
>= не сравнивает булы, с чего бы им приводиться?
Ignat
explicit operator bool?
Крылатый
Тут есть решение.
Крылатый
Нужке explicit typedef, но его пока нет.
Крылатый
Нужен*
Oleg
>= не сравнивает булы, с чего бы им приводиться?
Сам удивлён, но вот (gcc version 6.4.0 (Gentoo 6.4.0 p1.1)).
https://pastebin.com/0U0eJCjh
$ g++ -O2 -Wall -Wextra -Werror -o sample -x c++ sample.c++
$ ./sample
[warning] casted to bool!
[warning] casted to bool!
5 >= 7 is true
Дмитрий ⬡
Я за explicit operator bool
Oleg
Дмитрий ⬡
И вообще время хайповать operator <=>. Ещё никто его не реализовал?
Kirill
но имхо стронг тайпдеф это для другого, утебя херова гора параметров, например std::function коллбеков и тебе не хочется поменять их местами, иначе наступишь на грабли в рантайме. а хотелось бы сдвинуть проверку в compiletime
Berkus
Berkus