@ProCxx

Страница 1634 из 2477
Alexander
08.01.2018
14:50:08
Не так?
constexpr используется для компайлтайм вычислений с использованием всяких constexpr функций

constexpr переменная гарантирует тебе, что она будет вычислена на этапе компиляции. const гарантирует, что всего лишь не будет меняться

Alexander
08.01.2018
14:50:55
А ок

Серж
08.01.2018
14:51:18
Не гарантирует

Google
Серж
08.01.2018
14:51:21
Фактически уж точно

Alexander
08.01.2018
14:51:37
С++ за 21 день?
Принципы и практика с использованием С++, Страуструп

Серж
08.01.2018
14:51:55
Есть mutable и const_cast

Alexander
08.01.2018
14:52:08
Серж
08.01.2018
14:52:21
Это если не брать в расчёт грязные трюки с указателями

Серж
08.01.2018
14:52:45
Вот в расте я понимаю, константа - значит не меняется

Ignat
08.01.2018
14:55:51
Что, в unsafe нельзя узнать её адрес?

Aidar
08.01.2018
14:56:25
mutable нужен же для конст методов

const методы это типа: если между вызовами конст методов не было вызова неконст то результат одинаков

ясен пень что это не подразумевает неизменяемость служебных штук

Berkus
08.01.2018
14:59:48
Google
Aidar
08.01.2018
15:27:45
тут нужно уточнять чтоза изменения

Alexander
08.01.2018
15:31:15
const и этого не гарантирует
ааа, ну давайте придираться ?

тогда сами человеку обьясняйте, что const делает

ну или отправляйте его читать Стандарт ?

Pavel
08.01.2018
15:32:34
ааа, ну давайте придираться ?
Ну как же любимый конст каст?

Alexander
08.01.2018
15:33:00
уже выше писали и про mutable, и про указатели

так что всё окей)

Дмитрий
08.01.2018
15:54:13
Господа! Если я вызвал конструктор вектора с указанием размера (то есть от одного числа), стоит ли ожидать, что capacity == size? А то в данный момент при отладке выполз очень странный экземпляр, который сразу после конструктора выглядит как: "size как ты просил, 3к, capacity что-то более чем 10значное"?

Дмитрий
08.01.2018
16:01:53
Там столько всякого разного вокруг, что даже не оч ясно. Я залез внутрь вектора, кажется в его полях всё правильно. Видимо, gdb оч упорот при отладке OpenCL и OpenGL одновременно.

Или это симптомы, что мои обращения к памяти напоминают Халка, которого попросили написать эссе на тему "Крушить — очень плохо"?

А нет, кажется реально память похерена, end_of_storage раньше начала вектора.

Извините, отбой.

Terik23
08.01.2018
16:06:34
Интересная ситуация в любом случае. удачи в разработке!

Дмитрий
08.01.2018
16:13:37
Ещё интереснее: вставляем ассерт - чинится. Кажется, компилятор решил оптимизнуть поле вектора, оч удобно, зараза.

Alexander
08.01.2018
16:52:15
это вам не это)

Дмитрий
08.01.2018
17:21:16
асан тебе в помощь, точно память похерил
Чот Асан не дружит с OpenCL/CUDA.

Evgeniy
08.01.2018
17:22:41
попробуй валгринд

Google
Дмитрий
08.01.2018
17:23:27
Ещё хуже

Berkus
08.01.2018
17:23:31
валгринд вряд ли дружит

Nik
08.01.2018
17:25:11
Валгринд через эмуляцию все гоняет и эмулировать cuda еще не научились

Berkus
08.01.2018
17:26:53
Чот Асан не дружит с OpenCL/CUDA.
а чего ему не нравится? или ты дебажишь текущий хип на GPU (такой бывает?)?

Evgeniy
08.01.2018
17:27:52
а если куду ллвмом собрать?

Дмитрий
08.01.2018
17:30:39
а чего ему не нравится? или ты дебажишь текущий хип на GPU (такой бывает?)?
Не, просто падает на getPlatform со словами "нема ваще о чём ты".

Хип-то мой, CPUшный)

Hannibal
08.01.2018
17:38:28
Какой софт использовать для эмуляции com порта

Windows

Хочу понять как девайс воспринимает данные моей проги

Серж
08.01.2018
18:13:24
com0com

А вообще лучше портмонитор и смотри обмен с реальным говном мамонта

Hannibal
08.01.2018
18:20:32
Ок

Олег
08.01.2018
20:30:44
Снова добрый вечер. Есть у меня класс. Умеет приводиться к bool (определён operator bool () const). Определены ещё два сравнения (operator == и operator <=). А я беру и два экземпляра сравниваю на >=. Ожидание: ошибка компиляции. Реальность: оба экземпляра привелись неявно к bool и сравнили то, что получилось. Есть под этим какая-нибудь тайная логика? Есть ли возможность получать ожидаемый результат? Понятно, что я сейчас доопределю четыре оператора и вроде бы успокоюсь, но всё равно интересно.

Berkus
08.01.2018
20:32:36
>= не сравнивает булы, с чего бы им приводиться?

Ignat
08.01.2018
20:32:49
explicit operator bool?

Дед Пегас
08.01.2018
20:36:50
Тут есть решение.

Нужке explicit typedef, но его пока нет.

Нужен*

Олег
08.01.2018
20:37:44
>= не сравнивает булы, с чего бы им приводиться?
Сам удивлён, но вот (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

Google
Дмитрий
08.01.2018
20:37:54
Я за explicit operator bool

Олег
08.01.2018
20:37:57
explicit operator bool?
Благодарю.

Дмитрий
08.01.2018
20:38:42
И вообще время хайповать operator <=>. Ещё никто его не реализовал?

Kirill
08.01.2018
20:39:20
Нужке explicit typedef, но его пока нет.
strong typedef в бусте есть. НО этож safe bool idiom. тут как сказали действительно нужно делать explicit оператор каста.

но имхо стронг тайпдеф это для другого, утебя херова гора параметров, например std::function коллбеков и тебе не хочется поменять их местами, иначе наступишь на грабли в рантайме. а хотелось бы сдвинуть проверку в compiletime

Дмитрий
08.01.2018
20:55:53
(сейчас вот)
Клёво! А это имеется в виду какой компилятор?

Berkus
08.01.2018
21:27:48
Клёво! А это имеется в виду какой компилятор?
где-то было в начальной стадии, на статус страницах не нашел

Дмитрий
08.01.2018
21:38:04
Код в студию.
https://github.com/LDVSOFT/spbau-term7-graphics/tree/master/hw4 . Что для сборки нужно в README написано. Падает в Hw4Window::gl_render_marching, в данный момент я с помощью valgrind выкидываю вызовы OpenCL и смотрю на то, что остаётся. В какой-то момент явно повреждается код/данные аллокатора(без идей как ловить).

ShadoWalkeR
09.01.2018
07:36:05
Добрый день, подскажите вот такой вопрос - в extern "C" оборачиваются функции в С++, которые будут API для вещей работающих только с сишными библиотеками и насколько помню вещей добавленных в С++ там не должно быть. А как в данном случае обрабатываются шаблоны? Насколько помню они вычисляются на этапе компиляции и если я вызов засуну в блок extern "C", то в результате там должна оказаться готовая функция.

Maxim
09.01.2018
07:40:25
Привет

Alex Фэils?︙
09.01.2018
07:43:10
Шаблоны емнип будут все равно как extern "C++" линковаться

Дед Пегас
09.01.2018
07:45:36
Шаблоны разве линкуются?

Вроде как только их инстансы.

Vladislav
09.01.2018
07:46:08
конкретные инстанциации - да

Дед Пегас
09.01.2018
07:46:23
конкретные инстанциации - да
Ну, это уже конкретные функции.

Т.е. принципиальной разницы между foo() и bar<int>() нет.

Google
ShadoWalkeR
09.01.2018
07:47:13
У меня есть одинаковый код для int и float. Чтобы не копипастить хочу шаблонную функцию написать и вызывать её в блоке extern

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