Berkus
это он для вас классический!
Sergey️
В функции делаю sizeof(type), но я так понимаю мне проще заранее найти size и отдать в функцию
Vladislav
Sergey️
Vladislav
делай
template <class T>
void f(int a, T b) {
size_t s = sizeof(T);
}
Vladislav
Sergey️
sizeof возвращает size_t
такю штуку можно же как аргумент функции сделать?
Processor
можно
Processor
size_t это тип данных
Vladislav
можно, это число
Processor
это имя сделали для удобства просто
Processor
по сути это int
🦥Alex Fails
неееее
🦥Alex Fails
это не инт
Processor
правда в С это был странный int
Anonymous
unsigned int
🦥Alex Fails
это любой БЕЗЗНАКОВЫЙ ТИП, в котором можно представить МАКСИМАЛЬНО АДРЕСУЕМЫЙ размер
Processor
вот точно
🦥Alex Fails
бля, слишком много капса
Sergey️
блин, всё же без полного куска кода не обойтись, начинаю нарываться на XY
🦥Alex Fails
го полный кусок)
Sergey️
https://gist.github.com/Kylmakalle/90b6b71b5a3ff6a605fba5a5d603b452
Короче, такая штука - выводит данные в машинном представлении (аля двоичный код). Мне нужна такая же функция только для различнх типов данных (достаточно сменить int в некоторх местах и тип данного TYPE), иии я не хочу плодить кучу функций для каждого типа данных где я буду менять две строчки, думал что-то универсальное, но не знаю как
Pavel
Шаблон сделай
Sergey️
ничё не умею
🦥Alex Fails
ух, какая черная битовая магия
🦥Alex Fails
а, прочитал описание того, что охота
Konstantin
Сделай такой шаблон:
template<typename T>
union ToBinary{
T t;
std::array<uint8_t, sizeof(T)>
}
Konstantin
Konstantin
Соответственно сможешь выводить любую вещь, линейно расположенную в памяти
🦥Alex Fails
ничё не умею
https://gist.github.com/leha-bot/93d0beb2639240a89aafdcdd978ef239
🦥Alex Fails
теперь когда ты напишешь binary_form(100001230510610LL) , компиль сделает по шаблону функцию с типом long long, который обычно имеет длину в 8 байт
Sergey️
Matwey
Konstantin
А с выравниванием тут что?
Ну так надо было вывести так, как в памяти представлено
А вообще, я эту фигню использую чтобы структуры по сети кидать между ++ сервисами
Berkus
Berkus
может передавать структуру, может удалять данные на диске, как пойдет
Konstantin
Из-за чего?
Berkus
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
Pavel
Есть там что-нибудь про то что они в памяти лежат как попало? Ну или не как попало?
Matwey
Pavel
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. 
Pavel
Ну. У нас третий случай из того списка?
Matwey
Berkus
ну окей
Pavel
Ну т.е. defined?
Berkus
ну тогда да
Anatoly
А если нашел неточность в текущей версии стандарта, куда это публикуется обычно? Например,
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
Berkus
https://github.com/cplusplus/draft/ сюда
Anatoly
спасибо!
Berkus
проверь что там уже такого фикса нет в пулл-реквестах )
Anonymous
киньте ссылку на pro.* groups collection
Anatoly
Anonymous
Berkus
Berkus
плюсанул
Anonymous
там нету @prodot
Berkus
кек
Berkus
Rust compile time mandelbrot
http://www.treblig.org/daveG/rust-mand.html
Anonymous
Berkus
бинарник весит dahua?
ну он получается фрактальный, так что весит всё свободное пространство на диске
Anatoly
плюсанул
закрыли, посчитав, что ошибки нет https://github.com/cplusplus/draft/pull/1749
Berkus
I think j should be interpreted as having namespace scope, so it needn't (and can't) be captured.
Anatoly
да
Berkus
надо написать им что в этом месте неплохо комментарий бы добавиь
Крылатый
Плюсую.
Berkus
написал им коммент в твоем ишуе
Berkus
переоткрой там если можешь
Berkus
пусть сделают чтонибудь уже
🐙 Antony
Так там же всё в порядке. глобальные переменные не надо явно захватывать
Ruslan
Никто не подскажет, как использовать structured bindings для boost::combine ? Boost 1.65.1, 7.2 gcc, и -std=c++17
Ruslan
Anonymous
а raise(11) это нормально?
Anonymous
контекст вопроса не ясен
🦥Alex Fails
типа кинуть сигнал SIGKILL
Anonymous
ну если автор кода больной, то почему бы и нет
Ned
А как внутри приложения перехватывать эти сигналы?