Описание тега static-cast
A C++ cast operator to convert from one type to another, using only information about the static type of the object being cast
0
ответов
std::forward vs static_cast для переменных аргументов
Я не до конца понимаю, что делает "&&" после параметра variadic. Следующие функции в целом одинаковы, или в некоторых случаях есть разница? template <typename... Args> void function1(Args&&... args) { some_other_function(std::forward&l…
15 янв '14 в 05:55
2
ответа
C++: создание производного объекта через интерфейс базового класса
У меня есть шаблонный класс, который создается с использованием двух аргументов, целого числа и предыдущего экземпляра этого класса. Я хочу иметь возможность хранить экземпляры этих классов в контейнерах, поэтому я наследую их от базового класса (по…
20 окт '13 в 18:57
2
ответа
static_cast между примитивными ссылками
Использует static_cast конвертировать из const unsigned char& в const unsigned long long& определены? constexpr unsigned char arr[sizeof(unsigned long long)]{ 1 }; constexpr bool value = static_cast<const unsigned long long&>(arr[0…
09 ноя '15 в 22:05
4
ответа
Может ли static_cast превратить ненулевой указатель в нулевой указатель?
Мне нужно написать код для функции обратного вызова (она будет вызываться изнутри ATL, но это не очень важно): HRESULT callback( void* myObjectVoid ) { if( myObjectVoid == 0 ) { return E_POINTER; } CMyClass* myObject = static_cast<CMyClass*>( …
12 авг '10 в 14:49
2
ответа
Замена delete в C++, неверная информация
Я пытаюсь (и решил) проблему с 16-байтовыми проблемами выравнивания с классом, который содержит оптимизированные SSE члены. Но что меня беспокоит, так это большая часть примеров, которые я нашел в Интернете, которые содержат строку кода, которая мне…
25 июл '12 в 08:41
3
ответа
Безопасность static_cast для указателя на производный класс от базового деструктора
Это вариант вопросов Downcasting с использованием Static_cast в C++ и Безопасность недопустимого downcast с использованием static_cast (или reinterpret_cast) для наследования без добавления членов Мне неясно фраза в стандарте "B, которая на самом де…
08 мар '15 в 16:02
3
ответа
static_cast вывел этот объект в базовый класс в C++
При чтении пункта 27 "Минимизируйте приведение типов в Effective C++" говорится, что не пытайтесь использовать static_cast транслировать *this в производном классе до базового класса. Это потому что static_cast<Base>(*this) создаст временный о…
28 апр '16 в 22:16
2
ответа
Считается ли static_cast из базы в производный "безопасным" в ЭТОМ конкретном контексте?
В дереве объектов полиморфной иерархии только Root Тип экземпляра имеет null _parent, Я использую этот метод для извлечения корневого объекта определенного узла дерева: inline Root * root() { Object * r = this; while (r->_parent) r = r->_paren…
15 июн '14 в 12:30
6
ответов
Контейнерное литье
У меня есть два класса и мои методы преобразования: class A; class B; class A { ... }; class B { ... static B fromA(A a) { B b; // ... some property conversions from A to B return b; } operator A() { // ... some property conversions from this(B) to …
26 ноя '13 в 13:41
1
ответ
Как цепочка static_cast четко определена?
(5.2.9/10) Значение r типа "указатель на cv1 void" может быть преобразовано в значение типа "указатель на cv2 T", где T - тип объекта, а cv2 - та же квалификация cv, что и более cv-квалификация, чем, cv1. Значение указателя типа на объект, преобразо…
11 дек '11 в 18:42
4
ответа
Используя static_cast<datatype> для преобразования float в строку C++
Так что это мой первый "тест" с использованием static_cast, я никогда не делал этого, поэтому, пожалуйста, потерпите меня (я очень плохо знаком с C++, заявлено 3 дня назад) // ConsoleApplication3.cpp : Defines the entry point for the console applica…
17 янв '14 в 19:00
1
ответ
При использовании статического приведения имеет ли смысл приводить к типу класса или к ссылке на объект?
Я просто понял, что могу использовать любой из них для достижения того же эффекта. Есть ли какие-либо предостережения? Какое соглашение имеет больше смысла? #include <iostream> using namespace std; class some_class { public: void echo() { cout…
15 фев '16 в 23:25
1
ответ
Что случилось со static_cast с несколькими аргументами?
Может кто-нибудь сказать мне, что это приведение имеет для эффекта (помимо установки happyNumber 1337), если таковые вообще имеются, и если это не имеет никакого другого эффекта, почему я могу написать код, подобный этому??? Это ошибка компилятора и…
27 фев '09 в 09:48
3
ответа
Какой идиоматический способ документировать static_cast?
Я это понимаю (MyType)foo, MyType(foo), а также static_cast<MyType>(foo) несколько похожи в том, что первые два становятся последними (РЕДАКТИРОВАТЬ: я был исправлен. Предыдущее предложение не соответствует действительности.) Мой вопрос: какую…
10 дек '13 в 15:13
4
ответа
Могу ли я привести неподписанный символ * к неподписанному типу int*?
error: invalid static_cast from type ‘unsigned char*’ to type ‘uint32_t* {aka unsigned int*}’ uint32_t *starti = static_cast<uint32_t*>(&memory[164]); Я выделил массив символов и хочу прочитать 4 байта как 32-битное целое, но я получаю оши…
31 мар '14 в 19:18
3
ответа
Почему (int&)0 плохо сформировано?
Согласно [expr.cast]/4, бросок в стиле C пытается выполнить следующие приведенные ниже броски: const_cast static_cast static_cast с последующим const_cast reinterpret_cast reinterpret_cast с последующим const_cast Следующий состав хорошо сформирован…
30 мар '18 в 21:47
1
ответ
Корректировка указателя без множественного наследования
Рассмотрим макет класса: | A | B | ( class B is derived from A ) 0x0 0x8 Конечно, нет ничего, что можно было бы отрегулировать при понижении или понижении. но определяется ли поведение компилятора для этого случая в стандарте? если нет, то, в целом,…
15 дек '16 в 18:45
3
ответа
Должен ли я использовать static_cast в присваиваниях и операторах возврата и почему?
Вот два очень похожих фрагмента: vector<int> a; int n = static_cast<int>(a.size()); // --------- int f(const vector<int>& a) { return static_cast<int>(a.size()); } Здесь я явно приведу значение типа size_t печатать int, Е…
17 сен '17 в 12:21
1
ответ
Преобразование типов C++ из double в const int не работает должным образом
У меня есть переменная типа const int, но параметры, от которых она зависит, имеют тип double. Когда я пытаюсь преобразовать это значение из "double" в "const int", оно не работает должным образом. Например, когда N должно быть 991, оно вводится как…
08 фев '13 в 23:49
1
ответ
Статическое приведение C++11 к rvalue
Мой друг написал код, похожий на этот, в проекте: struct A { int x{0}; }; struct B : public A { int y{1}; }; int main() { A a; B b = static_cast<B &&>(a); } ИМО, этот код явно ошибочен, и я подтвердил это, пытаясь получить доступ b.y и…
25 дек '15 в 10:28