@ProCxx

Страница 2147 из 2477
Max
20.06.2018
14:26:21
Vhäldemar
20.06.2018
14:27:01
std::ptrdiff_t is signed. std::size_t is unsigned.

Aleksandr
20.06.2018
14:27:17
uintptr_t лучше

Влад
20.06.2018
14:27:29
скасти обратно в A* и разыменуй
Да, работает, спасибо) Чёт самому в голову не пришло.

Google
Vhäldemar
20.06.2018
14:27:36
но зачем

Влад
20.06.2018
14:27:45
Чисто для интереса было.

Aidar
20.06.2018
14:27:56
Vhäldemar
20.06.2018
14:28:04
откопают

Aidar
20.06.2018
14:28:30
он уже труп, ахаха(не смешно)

Aidar
20.06.2018
14:31:07
там должен быть uintptr_t какойнибудь а не size_t

тогда можно наверное static_cast<A*> (c)->

Vyacheslav
20.06.2018
14:31:30
там должен быть uintptr_t какойнибудь а не size_t
Они имеют одинаковую размерность.

Max
20.06.2018
14:31:56
там должен быть uintptr_t какойнибудь а не size_t
std::size_t can safely store the value of any non-member pointer, in which case it is synonymous with std::uintptr_t

Aidar
20.06.2018
14:32:16
для uintptr_t определение звучит как кастани туда кастани обратно и ничего не пофейлишь

Google
Max
20.06.2018
14:32:24
Вообще это небезопасный код из-за нарушения strict aliasing
strict aliasing говорит о "fundamentally different types"

Vyacheslav
20.06.2018
14:33:41
strict aliasing говорит о "fundamentally different types"
Так здесь A* и size_t разве не fundamentally different?

докажи
http://www.cplusplus.com/reference/cstring/size_t/ Как могут размер данных и указатель на данные иметь разную размерность? Теоретически только на каких-то совсем экзотических платформах. И не уверен, что там будет хоть в каком-то виде доступен C++

Aidar
20.06.2018
14:35:40
для size_t определение вроде как unsigned integer type of the result of the sizeof operator

Vyacheslav
20.06.2018
14:37:11
sizeof(char) = 1. sizeof можно прибавлять к любому указателю. Прибавление единицы к char* сдвигает указатель на один байт.

Если бы размерность была разная, то при таком сложении было бы несовпадение типов.

Что чревато переполнениями и другой низкоуровневой магией.

Aidar
20.06.2018
14:38:09
словите в лицо когда завезут платформы у которых аллокать можно 64 бита а адресовать 100500 бит

Aidar
20.06.2018
14:40:03
Так здесь A* и size_t разве не fundamentally different?
альясинг это же про доступ, когда ты хранишь указатель в инте ты не делаешь доступ

Vhäldemar
20.06.2018
14:44:06
Aidar
20.06.2018
14:46:35
пусть память это горстка флешек, а аллокация это когда безвольный робот идет на завод по производству флешек и наполняет коробку, робот слабеньький и не может наполнять ее бесконечно, потом он тащит ее хозяину

Max
20.06.2018
14:47:07
Так здесь A* и size_t разве не fundamentally different?
не. Strict aliasing rule говорит про то, что если у тебя есть указатели на сильно различные типы, то они не могут указывать в одно и то же место. И компилятор может делать оптимизации с учетом этого.

а сам адрес вполне можно хранить в size_t.

иначе их даже через memcpy нельзя бы было сериализовать.

Mikhail Voronov
20.06.2018
14:54:22
словите в лицо когда завезут платформы у которых аллокать можно 64 бита а адресовать 100500 бит
кстати, можно притянуть за уши amd64 - можно аллокать 48 бит, адресовать 64, но при этом старшие 16 либо одновременно 0, либо одновременно 1

yuri
20.06.2018
14:54:44
Это как раз то, что из С++ выпиливают: new/delete и сишные касты.

Anton
20.06.2018
14:57:02
Мммм

описание в аски кодах?

Google
Alexey
20.06.2018
14:57:11
это ж просто байтики с пробелами в 32. utf8 или cp1251 какой. скучно.

Anton
20.06.2018
14:57:13
Оригинальненко (нет)

Alexey
20.06.2018
14:58:35
да, судя по повторяющимся байтам, utf8

а нафига руби-вакансию кидать в с++ чатик?

yuri
20.06.2018
15:08:38
а слабо конвертацию сделать в компайл-тайм?

Alexey
20.06.2018
15:09:38
вначале в compile time скачав страничку и распарсив html? ?

Aleksandr
20.06.2018
15:12:11
распарсить plain HTML, думаю, теоретически осуществимо. есть же compile time парсинг JSON-а

Vitaly
20.06.2018
15:31:45
Главное никогда не парсить HTML регэкспами.

Дед Пегас
20.06.2018
15:32:46
Это, в принципе, осуществимо в каком D.

В плюсах пока боль.)

Vitaly
20.06.2018
15:33:11
https://stackoverflow.com/a/1732454

Дед Пегас
20.06.2018
15:33:45
Это, в принципе, осуществимо в каком D.
Я про парс HTML во время компиляции.

Constantine
20.06.2018
15:35:24
Admin
ERROR: S client not available

Constantine
20.06.2018
15:35:40
XML не регулярный язык

Vitaly
20.06.2018
15:35:58
Это же невозможно, вроде
Есть любители к сожалению. Потом удивляются, почему у них всё криво работает.

Constantine
20.06.2018
15:36:16
Есть любители к сожалению. Потом удивляются, почему у них всё криво работает.
Я к тому, что математически невозможно проверить регэкспом XML на валидность

Никита
20.06.2018
16:00:29
Помогите, пожалуйста, я тут недавно язык Си начал изучать (именно чистый Си не C++), я конечно понимаю что это чат разработчиков на C++, но чатов по Си я не нашел, и у меня вот такой вопрос: как запустить приложение на Си в фоновом режиме (на windows), то есть имеется консольное приложение,но оно в консоль ничего не выводит и нужно убрать консоль при запуске, к примеру в питоне это изменить расширение на .pyw, есть ли в Си какая-нибудь такая же фишка?

Konstantin
20.06.2018
16:02:19
добавить флаг /SUBSYSTEM:WINDOWS

Google
Никита
20.06.2018
16:03:09
/SUBSYSTEM

Куда, при компиляции?

Konstantin
20.06.2018
16:03:28
при линковке

консоль создается только для /SUBSYSTEM:CONSOLE

Никита
20.06.2018
16:04:09
Ок, спасибо, попробую

Anton
20.06.2018
16:05:34
Ок, спасибо, попробую
Через #pragma быстрее всего

Никита
20.06.2018
16:11:42
Через #pragma быстрее всего
Примерно так? #pragma comment(linker, "/SUBSYSTEM:windows")  

Konstantin
20.06.2018
16:12:23
именно

Никита
20.06.2018
16:12:51
Спасибо вам огромное!

Max
20.06.2018
16:46:41
Всем привет, кто-нибудь работал с ffmpeg? нужно просто формат avi переконвертировать в mpegts либо любой другой формат, сам файл avi немного модифицирован, вся проблема в том что аудиоданные из него вытащить мне не удалось, да и понять не могу как это сделать, в документации просто скинули typdef structure и magic char (hexdump по файлу прошелся и не нашел такого, без понятия в какую сторону еще искать), может кто сталкивался с таким уже

Ilia
20.06.2018
16:47:58
Примерно так? #pragma comment(linker, "/SUBSYSTEM:windows")  
Но это вот всё -- ВРЕДНЫЕ СОВЕТЫ!

Konstantin
20.06.2018
16:52:06
Little Endian AVI начинается с сигнатуры RIFF, Big Endian c RIFX

суешь в ресурсы, в мейне распаковываешь в TEMP

Constantine
20.06.2018
16:54:51
суешь в ресурсы, в мейне распаковываешь в TEMP
dll-ки записывать в temp и оттуда грузить? страшновато выглядит)

Том
20.06.2018
16:55:10
суешь в ресурсы, в мейне распаковываешь в TEMP
а можно ещё раз для не далеких

Konstantin
20.06.2018
16:55:11
емнип process explorer так делает

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