@ProCxx

Страница 2464 из 2477
Yarique
24.10.2018
16:09:00
А вот так не легче? std::string str;
Легче, просто хотелось бы спасения от опечаток (:

Ilia
24.10.2018
16:09:43
Легче, просто хотелось бы спасения от опечаток (:
Ну как бы и печатать меньше, и таки сложные символы как {0} не надо набирать, уже же спасение, нет ?

Google
Group Butler [beta]
24.10.2018
16:10:26
Yarique has been warned (1/3)

Yarique
24.10.2018
16:13:11
/warn crossposting
Чтобы здесь не сыпать сообщениями сильно по мелочи.

Vyacheslav
24.10.2018
16:19:24
nullptr передавать в конструктор std::string это не то что хотелось бы ожидать от std::string str{0}; Это же ошибка стандарта?
Кстати, а на x64 не должно быть хотя бы warning'а из-за разности в рязрядности? (И на остальных платформах, где sizeof(int) != sizeof(void*) ). Или же компилятор в своих недрах кастит int к void* неявно через промежуточный тип?

Vyacheslav
24.10.2018
16:23:07
А почему int обязательно на x64 не равен размеру указателя ?
Обычно я встречал на х64 именно их неравенство.

Я не говорил, что он обязательно не равен.

Yarique
24.10.2018
16:24:55
Wut?
Блин, тут я явно не прав

Anton
24.10.2018
16:33:35
Мда. Интрига https://ideone.com/GMpurD
В чём интрига? там видимо с -Werror собирается

Google
Vyacheslav
24.10.2018
16:33:49
Хорошо, что double к void* не приводится :)

В чём интрига? там видимо с -Werror собирается
В принципе, это UB (создание строки таким образом). Поэтому ничего необычного. If s is a null pointer, if n == npos, or if the range specified by [first,last) is not valid, it causes undefined behavior. Отсюда: http://www.cplusplus.com/reference/string/string/string/ (Ссылка радует :) )

Предупреждения компилятора посмотреть с телефона неудобно.

Alexander
24.10.2018
16:40:37
Он чем-то плох?
он хуже мейнтейнится

Vyacheslav
24.10.2018
16:41:04
он хуже мейнтейнится
Пруфы есть или это личное мнение?

Alexander
24.10.2018
16:43:04
Пруфы есть или это личное мнение?
1) Нет HTTPS в отличие от cppreference 2) ну просто посмотрите по списку фичей, на сайтах. Как пример - найдите описание std::variant на cplusplus.com И таких фичей очень много

3) cppreference обновляется со скоростью "сегодня приняли пропозал, завтра обновили cppreference"

Alexen
24.10.2018
16:44:03
cplusplus.com вообще не ментейнится

Alexander
24.10.2018
16:44:21
4) Если чего-то не так на cppreference, то в слаке пишите в #cppreference

Vitaly
24.10.2018
16:44:53
Пруфы есть или это личное мнение?
cplusplus.com скорее мёртв, чем жив. Многие страницы много лет не обновлялись. Не используй его вообще.

Marsel
24.10.2018
16:50:17
И -- зря ты собираешь STATIC...
спасибо ещё раз, всё заработало.)

Vladislav
24.10.2018
16:54:06
Господа, покритикуйте идею, пожалуйста. Задача: Есть функция Ctx getContext(); Нужно обернуть в существующем коде все выражения вида foo(..., getContext()); обернуть вызовами enter(ctx); / exit(ctx);, минимально меняя код (и желательно с гарантией что в новых подобных выражениях было невозможно забыть обертку. Преполагаемое решение: Пусть getContext() возвращает временную не копируемую структуру WrappedCtx, конструктор/деструктор которой вызывает enter/exit и которая конвертится в Ctx. Какие у такого подхода могут быть подводные камни?

Vladislav
24.10.2018
17:01:26
exit noexcept?
допустим да, и enter тоже

Constantine
24.10.2018
17:01:44
допустим да, и enter тоже
enter не важно, вот exit важно

Google
Vladislav
24.10.2018
17:04:52
а Ctx по типу кто? CC/MC?
сырой указатель

Constantine
24.10.2018
17:05:07
ужос

Vladislav
24.10.2018
17:05:23
(да, это все нужно для корректной работы с нехорошим сишным API)

Господин
24.10.2018
17:05:31
А есть способ реализовать такой вызов функции? sum(a)(b)(c)..., которая вернет сумму ?

Andrew
24.10.2018
17:06:23
return [a](int b) { return a + b; }?

Господин
24.10.2018
17:07:10
кол-во входных данных произвольно

Andrew
24.10.2018
17:07:13
И для произвольного количества чисел тоже можно несложно.

Сделай функтор, который еще умеет конвертиться в int.

Constantine
24.10.2018
17:07:52
У меня там кажись было sum(a)(b)(c)()

Ignat
24.10.2018
17:08:23
но чому бы не неявное преобразование к инту

Constantine
24.10.2018
17:08:27
Господин
24.10.2018
17:08:44
ну то есть я могу написать int abc = sum(a)(b)(c)

Andrew
24.10.2018
17:08:46
лучше явное

да

Vladislav
24.10.2018
17:09:10
сохранение ctx не проблема, видимо
проблема в том смысле что можно сохранить ctx, а потом повызывать методы API без обертки

Constantine
24.10.2018
17:09:34
Google
Andrew
24.10.2018
17:11:27
Constantine
24.10.2018
17:11:30
проблема в том смысле что можно сохранить ctx, а потом повызывать методы API без обертки
а ты не можешь просто wrappedctx как умный указатель сделать и -> попроксить в своем коде?

Alexander
24.10.2018
17:11:52
Grigor
24.10.2018
17:11:57
Пруфы есть или это личное мнение?
Там еще ошибки есть(были)

Vladislav
24.10.2018
17:12:34
а ты не можешь просто wrappedctx как умный указатель сделать и -> попроксить в своем коде?
нет( есть сишная API, над которой нет власти, она принимает сырой указатель на контекст

Andrew
24.10.2018
17:12:37
он уже написал, что его защитит
> проблема в том смысле что можно сохранить ctx, а потом повызывать методы API без обертки

Constantine
24.10.2018
17:13:51
нет( есть сишная API, над которой нет власти, она принимает сырой указатель на контекст
ты можешь сжульничать и в основном коде делать ctx прозрачным типом

Господин
24.10.2018
17:14:08
https://ideone.com/nwNcV8
не понял как это работает. Sum operator()(int x) { return Sum{sum + x}; } что тут происходит?

Andrew
24.10.2018
17:14:38
что именно непонятно?

Constantine
24.10.2018
17:14:45
нет( есть сишная API, над которой нет власти, она принимает сырой указатель на контекст
т.е. вне сишного API у тебя вообще ничего не используется, а сишное там знает что делать

Constantine
24.10.2018
17:16:44
пока не очень понял(
ну как я понял у тебя нормальный плюсовый код и сишная легаси либа

и Ctx это SomeType* запрети инклудить определение SomeType в нормальном коде

Господин
24.10.2018
17:18:37
перегружать скобки вообще легально?

Vladislav
24.10.2018
17:19:04
Ignat
24.10.2018
17:19:42
некоторые вон запятую перегружают

Claudio
24.10.2018
17:20:06
что из вас в слеке

;лещ

Google
Claudio
24.10.2018
17:20:19
*кто

Alexen
24.10.2018
17:20:34
перегружающий унарный & - должен в наказание поддежривать библиотеку которая использует его класс

Alexander
24.10.2018
17:24:29
Constantine
24.10.2018
17:26:10
Vladislav
24.10.2018
17:28:15
++ и -- небось :)
ну почти - кладу кое-что на стек)

Constantine
24.10.2018
17:33:20
ну почти - кладу кое-что на стек)
заслонку в 1024 байта чтобы эта хрень сишная весь стек не пробила? :)

вообще у нас по такому принципу пишется <node></node> и никто за N лет не попытался сохранить промежуточное значение где не надо

Constantine
24.10.2018
17:35:45
а еще WrappedCtx перемещаемый, но это не суть

Aidar
24.10.2018
17:36:04
1) foo(x) 2) bar(x) преобразовывать в auto y = x.foo() y.bar() это классека

Constantine
24.10.2018
17:36:38
Aidar
24.10.2018
17:36:51
.
чекни vulkan-hpp

там указатели крч которые типа .get()

зато явно

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