Результаты поиска по запросу "reinterpret-cast"

5 ответов

Совместим ли бит std :: array со старым массивом C?

1 ответ

reinterpret_cast, char * и неопределенное поведение

Каковы случаи, когда

2 ответа

Почему я могу использовать static_cast с void *, но не с char *

я знаю это

ТОП публикаций

3 ответа

Работает и для ссылок:

одство FFTWговорит что его

1 ответ

«Опасность» заключается в том, что этот бросок в стиле C может отбрасывать константу.

было много строк, написанных на тему reinterpret_cast, и насколько это плохо, я все еще озадачен лучшим способом избежать этого, особенно когда имеешь дело с функциями, такими как чтение и запись из fstream. Итак, вот моя дилемма ... Допустим, у ...

3 ответа

http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=134

+ без страха: руководство для начинающих, которое заставляет вас чувствовать себя умнымкнига, а в главе (8) упоминается следующее о.... конвертирует из одного типа указателя (intreinterpret_cast ) другому (char *). Поскольку приведение изменяет ...

2 ответа

) и обратно к исходному типу возвращает исходное значение указателя. - конец примечания]

ли (семантическая) разница между возвращаемым значением размещения new и приведенным значением его операнда? struct Foo { ... }; char buffer[...]; Foo *a = new(buffer) Foo; Foo *b = reinterpret_cast<Foo *>(buffer);Есть лиa а такжеb чем-то ...

2 ответа

@VittorioRomeo: Еще одно редактирование - я склонен это сделать.

отрим следующий сценарий: std::array<int, 8> a; auto p = reinterpret_cast<int(*)[8]>(a.data()); (*p)[0] = 42;Этонеопределенное поведение? Я думаю, что это. a.data() возвращаетint*, который не совпадает сint(*)[8] правила наложения ...

1 ответ

 объяснение. Я также добавил ссылку, подтверждающую ваше требование.

ец кода: struct S { int x; }; int func() { S s{2}; return (int &)s; // Equivalent to *reinterpret_cast<int *>(&s) }Я считаю, что это распространено и считается приемлемым. Стандарт гарантирует, что в структуре нет начального заполнения. Однако ...

7 ответов

Использование литья в стиле C не является безопасным. Он никогда не проверяет, чтобы разные типы можно было смешивать вместе. Приведение типов в C ++ помогает вам убедиться, что приведение типов выполняется в соответствии со связанными объектами (на основе используемого вами приведения). Это более рекомендуемый способ использования приведений, чем использование традиционных приведений в стиле C, которые всегда вредны.

, что я хочу броситьA* вchar* и наоборот, у нас есть два варианта (я имею в виду, многие из нас думают, что у нас есть два варианта,потому что оба, кажется, работают! Отсюда и путаница!) struct A { int age; char name[128]; }; A a; char *buffer ...