procxx | Unsorted

Telegram-канал procxx - pro.cxx

-

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

Subscribe to a channel

pro.cxx

Возможно, не консультировался со стандартом сейчас

Читать полностью…

pro.cxx

Ну понятно что тут надо очень аккуратно , а вообще лучше не надо изобретать велосипед и делать то, что уже сделано в языке😁

Читать полностью…

pro.cxx

Хорошо, Твои какие предложения будут?

Читать полностью…

pro.cxx

В документе говорят, что никаких массивов под объектами нет в текущем стандарте: "An
object representation as defined by [basic.types] p4 is merely a sequence of unsigned char objects,
not an array, and is therefore unsuitable for pointer arithmetics"

Читать полностью…

pro.cxx

char * - специальный случай, алиасится со всеми

Читать полностью…

pro.cxx

Тогда следует использовать offsetof, который определяется имплементацией

Читать полностью…

pro.cxx

Мы просто хотим узнать смещение поля относительно указателя на структуру

Читать полностью…

pro.cxx

Так мы тут ничего и не интерпретируем

Читать полностью…

pro.cxx

p1839r5, здесь описано, что нельзя интерпретировать объекты как массивы их байтового представления

Читать полностью…

pro.cxx

С++ не позволяет это сделать

Читать полностью…

pro.cxx

Арифметика указателей доступна лишь для массивов

Читать полностью…

pro.cxx

Более всего удивляет что эту тупость наобсуждать успели

Читать полностью…

pro.cxx

привет, у меня есть небольшой вопросики, возможно довольно глупые. Допустим, у меня есть следующая структура:

template<u32 idx>
struct some_struct : public some_parent
{
struct params
{
...
};
...
};

Первый вопрос: как я могу получить оффсет данных внутри params? Я думал, что, возможно что-то вроде этого offsetof(some_struct::params, Data)
Второй вопрос: у меня есть структура для получения рефлексии:
template<typename T>
struct reflect
{
static meta_descriptor* Get()
{
static meta_descriptor Empty{nullptr, 0};
return &Empty;
}
};

Как мне лучше всего определить структуру reflect(думаю делать через специализацию шаблона), чтобы я мог получить что то вроде reflect<some_struct<...>>::Get()?

Читать полностью…

pro.cxx

Иногда требование -Werror бывает невыполнимо в абсолютном смысле, компилятор может например выдавать false positive. Ну да, баг анализатора, есть версия где его предположительно поправят (и это может быть какая-то следующая мажорная). Приходится давить локально или под конкретную версию глобально.

Читать полностью…

pro.cxx

Cmake, C++, Linux, Posix API?

Читать полностью…

pro.cxx

Да, но можно вычитать адреса объектов друг из друга - у двух подобъектов разные адреса, т.к. они разные объекты

Читать полностью…

pro.cxx

Чисто гипотетически будто бы можно так делать, но надо учитывать [[no_unique_address]] (и наследование тоже)

Читать полностью…

pro.cxx

А что делать с вот этим?

An object of trivially copyable or standard-layout type shall occupy contiguous bytes of storage.

Читать полностью…

pro.cxx

Ну там тоже несколько правил на этот счет есть (тривиальная копируемость, отсутствие невиртуальных баз и т.д.), но в данном случае можно будет только читать байтовое представление объекта, в противном случае использовать std::bit_cast или std::start_lifetime_as

Читать полностью…

pro.cxx

Так я не говорю, что его не надо использовать

Читать полностью…

pro.cxx

Смотри Для чего интерпретировать Если для вычисления относительных адресов то почему нет?

Читать полностью…

pro.cxx

это массив байт, да...

Читать полностью…

pro.cxx

Если коротко — type aliasing. Если у тебя на участке памяти лежит объект типа T, то на нем лежит именно объект данного типа, а не массив байт, которые его представляют.

Читать полностью…

pro.cxx

С чего бы это не позволяет. А как же тогда работают функции сишные типо write

Читать полностью…

pro.cxx

Ну вот мы и представили структуру как массив байтов)

Читать полностью…

pro.cxx

Это же UB, разве нет?

Читать полностью…

pro.cxx

офсет получается разницей указателей. приведённых к char*

Читать полностью…

pro.cxx

Да, но когда это в сторонних библиотеках заголовочных это очень тяжело

Читать полностью…

pro.cxx

На самом деле все зависит от того чем вы хотите заниматься. Так то можно посоветовать учить что-то связанное с робототехникой или математикой

Читать полностью…

pro.cxx

Буст и начинать писать сеть

Читать полностью…
Subscribe to a channel