17
ответов

static_cast не делает то, что я ожидаю [дубликат]

Я пытаюсь хранить объекты наследуемых типов в массив std :: deque. Мне удается сохранить элементы, но когда я пытаюсь их использовать, сохраняются только родительские свойства. enum Family {parent_, ...
вопрос задан: 22 March 2017 17:09
8
ответов

Мой метод для предотвращения dynamic_cast <> быстрее, чем dynamic_cast <> сам?

Я отвечал на вопрос несколько минут назад, и он повысил до меня другой: В одном из моих проектов я делаю некоторый парсинг сетевого сообщения. Сообщения в форме: [1-байтовый тип сообщения] [2 байта...
вопрос задан: 23 May 2017 12:04
6
ответов

Как правильно делать броски в этих случаях? dynamic_cast / static_cast [duplicate]

Для следующих классов: class Base {// ...}; класс D: public Base {// ...}; Как правильно использовать указатели от Base до D (включая тестирование успеха конверсии)? (...
вопрос задан: 24 August 2015 13:58
5
ответов

C++: не может static_cast от двойного* к интервалу*

Когда я пытаюсь использовать static_cast для кастинга двойного* к интервалу*, я получаю следующую ошибку: недопустимый static_cast от типа ‘дважды*’ для ввода ‘интервала*’ Вот является кодом: #include <iostream> международное основное ()...
вопрос задан: 18 March 2010 22:50
4
ответа

Почему static_cast есть ссылка? [Дубликат]

Рассмотрим следующий код: struct base {}; struct generated: public base {}; int main () {производный d = {}; производный * ptr_d = & amp; d; полученный * & амп; ref_ptr_d = ptr_d; база * & амп; ...
вопрос задан: 16 January 2015 16:29
4
ответа

static_cast с повышением:: shared_ptr?

Что является эквивалентом static_cast с повышением:: shared_ptr? Другими словами, как делают я должен переписать следующую Основу* b = новый Полученный (); Полученный* d = static_cast <Полученный*> (b); когда...
вопрос задан: 12 August 2014 09:52
4
ответа

static_cast может превратить ненулевого указателя в нулевого указателя?

Я должен написать код для функции обратного вызова (это назовут из ATL, но это не действительно важно): обратный вызов HRESULT (освобождают* myObjectVoid) {если (myObjectVoid == 0) {возврат...
вопрос задан: 12 August 2010 14:49
4
ответа

Если я использую static_cast или reinterpret_cast при кастинге пустоты* ко что

И static_cast и reinterpret_cast, кажется, хорошо работают для кастинга пусто* к другому типу указателя. Существует ли серьезное основание способствовать один по другому?
вопрос задан: 10 April 2010 05:06
4
ответа

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

Я видел одну книгу по C++, упоминая, что навигация по иерархиям наследования с помощью статического броска более эффективна, чем использование динамического броска. Пример: #include <iostream> #include <typeinfo>...
вопрос задан: 5 September 2009 06:13
4
ответа

В чем разница между static_cast и Implicit_cast?

Что такое implicit_cast? когда я должен предпочесть implicit_cast, а не static_cast?
вопрос задан: 15 May 2009 14:40
3
ответа

Каково различие между static_cast <> и кастингом стиля C?

Там какая-либо причина состоит в том, чтобы предпочесть static_cast <> по кастингу стиля C? Действительно ли они эквивалентны? Их любой вид различия в скорости?
вопрос задан: 3 July 2015 01:38
3
ответа

Бросок от Пустоты* для ВВОДА* использующий бросок стиля C++: static_cast или reinterpret_cast

Таким образом, если Ваше преобразование из Пустоты* для Ввода* или из Типа* для Освобождения* должно Вы использовать: освободите func (пусто *p) {Params *параметрические усилители = static_cast <Params*> (p);} или пустой func (освобождают *p) {Param
вопрос задан: 17 June 2010 18:36
2
ответа

Как делает реализацию нескольких работы COM-интерфейсов в C++?

Я пытаюсь понять этот пример кода относительно Объектов Помощника Браузера. Внутри, автор реализует единый класс, который выставляет несколько интерфейсов (IObjectWithSite, IDispatch). Его...
вопрос задан: 25 August 2010 23:26
2
ответа

Почему я не могу `static_cast` от` const char * `до` const PVOID` (`typedef void *`)? [Дубликат]

Но static_cast от const char * до CPVOID, который является typedef const void *, является бесшовным. Есть ли разница между const PVOID и CPVOID, что я не понимаю? Код: typedef void * PVOID; ...
вопрос задан: 12 February 2010 18:27
1
ответ

Почему `decltype (static_cast (…))` не всегда `T`?

Для следующего кода первое утверждение проходит, но второе не проходит шаблон constexpr void assert_static_cast_identity () {using T_cast = decltype (static_cast (std :: ...)
вопрос задан: 5 October 2019 21:39
1
ответ

Что формулировка в стандарте C++ позволяет static_cast <non-void-type*> (malloc (N)); работать?

Насколько я понимаю формулировку в 5.2.9 Статических бросках, единственное время результат void*-to-object-pointer, преобразование позволяется, когда пустота* была результатом обратного преобразования в...
вопрос задан: 7 November 2018 23:30
1
ответ

Что произошло с static_cast с несколькими аргументами?

Кто-либо может сказать мне, что этот бросок имеет для эффекта (помимо установки happyNumber к 1337), если кто-либо вообще, и если он не имеет никакого другого эффекта, каким образом я могу написать код как это??? Это ошибка компилятора, или...
вопрос задан: 8 April 2010 02:34
0
ответов

Оператор преобразования реализован с помощью static_cast

Я задаю этот вопрос после проблемы, которую я поднял здесь. Суть довольно проста. Предположим, у вас есть два таких класса: template < class Derived > класс База { ... оператор const Derived&...
вопрос задан: 23 May 2017 12:11
0
ответов

C ++ Когда лучше использовать двухцепное static_cast вместо reinterpret_cast

Во-первых, это не дубликат Почему у нас есть reinterpret_cast в C ++, когда два связанных static_cast могут выполнять свою работу ?. Я знаю ситуации, когда мы не можем использовать даже два связанных static_cast для ...
вопрос задан: 23 May 2017 11:48
0
ответов

Неправильно ли используется static_cast?

У меня смешанные чувства по поводу static_cast, так как это самый безопасный доступный код C ++, но позволяет одновременно и безопасные, и небезопасные преобразования, поэтому вы должны знать контекст, чтобы сказать, действительно ли это ...
вопрос задан: 23 May 2017 10:34
0
ответов

Почему у нас есть reinterpret_cast в C ++, когда два связанных static_cast могут делать свою работу?

Скажем, я хочу преобразовать A * в char * и наоборот, у нас есть два варианта (I Значит, многие из нас думают, что у нас есть два варианта, потому что оба, похоже, работают! Отсюда путаница!): struct A {int age; char ...
вопрос задан: 23 May 2017 10:31
0
ответов

Могу ли я привести пример из реальной жизни, где приведение через void * работает, а reinterpret_cast - нет?

Существует ряд вопросов относительно перекрестных приведений (приведение из T1 * в несвязанный T2 * ), например то и это. Обычно ответ звучит так: reinterpret_cast определяется реализацией и ...
вопрос задан: 23 May 2017 10:24
0
ответов

Каким образом qobject_cast work?

Я только что нашел следующий код в Qt и немного запутался в том, что здесь происходит. В частности, что делает reinterpret_cast (0)? template inline T qobject_cast (const ...
вопрос задан: 5 January 2016 12:36
0
ответов

C ++ не может преобразовать базовый A в производный тип B через виртуальный базовый A

У меня есть три класса: class A {}; класс B: виртуальная публика A {}; класс C: виртуальный публичный A {}; класс D: публичный B, публичный C {}; При попытке статического преобразования из A * в B * я получаю следующую ошибку: ...
вопрос задан: 25 December 2015 17:32
0
ответов

Замена удаления в C++, дезинформация

Я пытаюсь (и решил )проблему с выравниванием 16 байтов в классе, содержащем оптимизированные для SSE элементы. Но что меня беспокоит, так это большая часть примеров, которые я нашел в Интернете...
вопрос задан: 23 August 2015 11:19
0
ответов

Когда статическое приведение безопасно при использовании множественного наследования?

Я оказался в ситуации, когда я знаю, какого типа что-то. Тип является одним из трех (или более) уровней наследования. Я вызываю factory, который возвращает B*, однако T - это либо самый высокий уровень ...
вопрос задан: 10 June 2015 14:51
0
ответов

Понижение в алмазной иерархии

Почему static_cast не может выполнять понижающее преобразование с виртуальной базы? struct A {}; структура B: общедоступный виртуальный A {}; struct C: общедоступный виртуальный A {}; структура D: общедоступная B, общедоступная C {}; int main () {D d; A
вопрос задан: 21 May 2014 10:16
0
ответов

Сделайте так, чтобы у двух делений была одна и та же полоса прокрутки?

Учитывая два деления, которые представляют столбцы, встроенные в большее деление. Если HTML «! stuff» представляет множество строк данных, которые превышали бы высоту контейнера, как я могу настроить его так, чтобы два див...
вопрос задан: 7 March 2013 18:05
0
ответов

Зачем мне нужно приведение переинтерпретировать _для преобразования Fred **const в void **const?

У меня есть указатель const на указатель на Fred, и я не понимаю, почему статического приведения _недостаточно. typedef struct { int n; } Фред; Фред *pFred; Фред **const ppFred = &pFred; пустота **...
вопрос задан: 10 July 2012 09:58
0
ответов

Разница в C++ между добавлением const-ness с помощью static_cast и const_cast «этого» объекта?

Согласно Скотту Мейерсу, чтобы предотвратить повторение кода в константной версии геттера и неконстантной версии геттера, вызовите константную версию метода из неконстантной версии: static_cast&...
вопрос задан: 20 June 2012 20:34