
Alex Фэils?︙
14.09.2017
21:01:29

Berkus
14.09.2017
21:01:47
это он для вас классический!

Sergey❄️
14.09.2017
21:03:19
В функции делаю sizeof(type), но я так понимаю мне проще заранее найти size и отдать в функцию

Vladislav
14.09.2017
21:03:49

Google

Alexander
14.09.2017
21:04:04
я пропустил - в чём проблема?

Sergey❄️
14.09.2017
21:04:22

Vladislav
14.09.2017
21:04:32
делай
template <class T>
void f(int a, T b) {
size_t s = sizeof(T);
}

Alexander
14.09.2017
21:04:53
typename*

Sergey❄️
14.09.2017
21:05:45
sizeof возвращает size_t
такю штуку можно же как аргумент функции сделать?

Норман
14.09.2017
21:06:05
можно
size_t это тип данных

Vladislav
14.09.2017
21:06:14
можно, это число

Норман
14.09.2017
21:06:50
это имя сделали для удобства просто
по сути это int

Alex Фэils?︙
14.09.2017
21:06:56
неееее
это не инт

Google

Норман
14.09.2017
21:07:00
правда в С это был странный int

alexgdi
14.09.2017
21:07:10
unsigned int

Alex Фэils?︙
14.09.2017
21:07:18
это любой БЕЗЗНАКОВЫЙ ТИП, в котором можно представить МАКСИМАЛЬНО АДРЕСУЕМЫЙ размер

Норман
14.09.2017
21:07:19
вот точно

Alex Фэils?︙
14.09.2017
21:07:27
бля, слишком много капса

Sergey❄️
14.09.2017
21:07:56
блин, всё же без полного куска кода не обойтись, начинаю нарываться на XY

Alex Фэils?︙
14.09.2017
21:08:21
го полный кусок)

Sergey❄️
14.09.2017
21:14:30
https://gist.github.com/Kylmakalle/90b6b71b5a3ff6a605fba5a5d603b452
Короче, такая штука - выводит данные в машинном представлении (аля двоичный код). Мне нужна такая же функция только для различнх типов данных (достаточно сменить int в некоторх местах и тип данного TYPE), иии я не хочу плодить кучу функций для каждого типа данных где я буду менять две строчки, думал что-то универсальное, но не знаю как

Pavel
14.09.2017
21:15:57
Шаблон сделай

Sergey❄️
14.09.2017
21:16:04
ничё не умею

Alex Фэils?︙
14.09.2017
21:16:33
ух, какая черная битовая магия
а, прочитал описание того, что охота

Konstantin
14.09.2017
21:17:50
Сделай такой шаблон:
template<typename T>
union ToBinary{
T t;
std::array<uint8_t, sizeof(T)>
}
Соответственно сможешь выводить любую вещь, линейно расположенную в памяти

Alex Фэils?︙
14.09.2017
21:20:24
ничё не умею
https://gist.github.com/leha-bot/93d0beb2639240a89aafdcdd978ef239
теперь когда ты напишешь binary_form(100001230510610LL) , компиль сделает по шаблону функцию с типом long long, который обычно имеет длину в 8 байт

Sergey❄️
14.09.2017
21:28:04

Matwey
15.09.2017
05:51:36

Konstantin
15.09.2017
06:15:22
А с выравниванием тут что?
Ну так надо было вывести так, как в памяти представлено
А вообще, я эту фигню использую чтобы структуры по сети кидать между ++ сервисами

Google

Berkus
15.09.2017
06:20:23
может передавать структуру, может удалять данные на диске, как пойдет

Konstantin
15.09.2017
06:21:11
Из-за чего?

Berkus
15.09.2017
06:21:46
The C++11 standard says the following:
“9.5 Unions [class.union]
In a union, at most one of the non-static data members can be active at any time, that is, the value of at most one of the non-static data members can be stored in a union at any time.”

Pavel
15.09.2017
07:35:08
Есть там что-нибудь про то что они в памяти лежат как попало? Ну или не как попало?

Matwey
15.09.2017
07:39:35

Pavel
15.09.2017
07:44:30
the access to a union by a non-active member is defined and is defined to follow the object and value representation, access without one of the above interpositions is undefined behaviour.
Ну. У нас третий случай из того списка?

Matwey
15.09.2017
07:45:05

Berkus
15.09.2017
07:45:16
ну окей

Pavel
15.09.2017
07:45:58
Ну т.е. defined?

Berkus
15.09.2017
07:52:43
ну тогда да

Admin
ERROR: S client not available

Anatoly
15.09.2017
08:39:28
А если нашел неточность в текущей версии стандарта, куда это публикуется обычно? Например,
4 If a lambda-expression does not include a lambda-declarator, it is as if the lambda-declarator were (). The
lambda return type is auto, which is replaced by the type specified by the trailing-return-type if provided
and/or deduced from return statements as described in 10.1.7.4. [ Example:
auto x1 = [](int i){ return i; }; // OK: return type is int
auto x2 = []{ return { 1, 2 }; }; // error: deducing return type from braced-init-list
int j;
auto x3 = []()->auto&& { return j; }; // OK: return type is int&
—end example ]
содержит ошибку в примере в части
int j;
auto x3 = []()->auto&& { return j; }; // OK: return type is int&

Berkus
15.09.2017
08:40:31
https://github.com/cplusplus/draft/ сюда

Anatoly
15.09.2017
08:40:55
спасибо!

Berkus
15.09.2017
08:41:12
проверь что там уже такого фикса нет в пулл-реквестах )

cat.cpp (second account)
15.09.2017
08:55:50
киньте ссылку на pro.* groups collection

Google

Anatoly
15.09.2017
08:57:35

cat.cpp (second account)
15.09.2017
08:58:18

Berkus
15.09.2017
09:02:28
плюсанул

Ilia
15.09.2017
09:22:39

cat.cpp (second account)
15.09.2017
09:43:26

Berkus
15.09.2017
10:00:47
кек
Rust compile time mandelbrot
http://www.treblig.org/daveG/rust-mand.html

cat.cpp (second account)
15.09.2017
11:17:08

Александр
15.09.2017
11:19:26

Berkus
15.09.2017
11:38:02

Anatoly
15.09.2017
13:14:57
плюсанул
закрыли, посчитав, что ошибки нет https://github.com/cplusplus/draft/pull/1749

Berkus
15.09.2017
13:15:37
I think j should be interpreted as having namespace scope, so it needn't (and can't) be captured.

Anatoly
15.09.2017
13:15:54
да

Berkus
15.09.2017
13:16:05
надо написать им что в этом месте неплохо комментарий бы добавиь

Дед Пегас
15.09.2017
13:16:16
Плюсую.

Berkus
15.09.2017
13:17:42
написал им коммент в твоем ишуе
переоткрой там если можешь