Вопросы по теме 'static-cast'

Зачем заниматься static_cast-преобразованием числа в двойное?
Наткнулся на это в коде, над которым я работаю: double part2 = static_cast<double>(2) * somthing1 * ( static_cast<double>(1) + something2 ) + ( static_cast<double>(1) / static_cast<double>(2) ) * something3 + (...
972 просмотров
schedule 29.10.2022

Накладные расходы времени выполнения C ++ static_cast
См. Код ниже. a) Имеет ли в этом случае (простое наследование, без виртуальных членов) статическое приведение в B :: df () какие-либо накладные расходы (какие бы то ни было)? Я нашел несколько противоречивых ответов на подобные вопросы, поэтому и...
12883 просмотров
schedule 23.02.2022

Как реализовать static_cast в C++
Я пытаюсь использовать библиотеку чисел GMP вместе с библиотекой матриц Eigen. Я пытаюсь создать экземпляр шаблона: Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime> с Matrix<mpz_class, 3, 3> matrix;...
1800 просмотров
schedule 04.10.2022

статическое приведение от базового класса к производному
Мне что-то непонятно, я хочу обратить ваше внимание, пожалуйста, проверьте эти фрагменты кода: template< typename DerivedClass > class construction_management { city* this_city; public: construction_management() {...
1874 просмотров
schedule 25.11.2022

Что происходит, когда static_cast из производного класса в базовый класс?
При чтении стандарта C++ я прочитал, что static_cast является своего рода прямой инициализацией (стандарт C++ 8.5/15). Я думаю, это означает, что во время static_cast соответствующий перегруженный конструктор . Например, есть тип B и тип D,...
720 просмотров
schedule 20.10.2022

c++, static_cast ‹int› вычисления с плавающей запятой и возможной потери целых чисел
Со следующим кодом: int ten{ 1 }; double zeroPnine{ 0.9 }; cout << ten - zeroPnine << endl; // 0.1 cout << (ten - zeroPnine) * 10 << endl; // 1 cout << static_cast <int>(ten - zeroPnine)...
271 просмотров
schedule 03.06.2023

Почему присваивание выполняется медленнее при неявном преобразовании?
Если были подобные вопросы, пожалуйста, направьте меня туда, я некоторое время искал в тишине, но ничего не нашел. Фон: Я просто играл и обнаружил некоторое поведение, которое я не могу полностью объяснить... Для примитивных типов это похоже на...
100 просмотров
schedule 03.04.2023

static_cast унаследовал этот объект от базового класса в C++
При чтении статьи 27 "Минимизируйте приведение в Effective C++ " говорится, что не пытайтесь использовать static_cast для приведения *this в производном классе к базовому классу. Это потому, что static_cast<Base>(*this) создаст...
3976 просмотров

С ++ 11 Приведение перечислений к целым
У меня есть типизированное перечисление enum side : int {_white=0, _yellow=1, _green=2, _blue=3, _red=4, _orange=5}; Однако при использовании gcc-5...
257 просмотров
schedule 18.02.2023

Вызов метода после недопустимого приведения в стиле C работает
Поэтому я пытаюсь узнать немного больше о различиях между C-style-casts , static_cast , dynamic_cast , и я решил попробовать этот пример, который должен отражать различия между приведениями в стиле C и > static_cast неплохо....
86 просмотров
schedule 20.03.2022

CGAL static_cast сбой
Для своей диссертации я использую код CGAL, написанный другим студентом год назад. Однако я не могу заставить его построить. Функция, которая выдает ошибки, следующая: std::set<Curve_handle> originatingCurves(PL_Arrangement arrangement,...
122 просмотров
schedule 12.12.2022

Почему статическое приведение съедает ссылку?
Рассмотрим следующий код: struct base {}; struct derived : public base {}; int main() { derived d = {}; derived* ptr_d = &d; derived*& ref_ptr_d = ptr_d; base*& ref_ptr_b = static_cast<base*&>(ref_ptr_d); //...
48 просмотров
schedule 17.08.2022

Разница между функциональной нотацией приведения T (x) и static_cast ‹T› (x)
(Я знаю, что это очень похоже на некоторые другие вопросы здесь, но я не нашел ни одного, чтобы конкретно, с точки зрения языка, ответить на эту точную деталь . Большинство почти дубликатов просто спрашивают, действительно ли они должны использовать...
699 просмотров
schedule 17.08.2022

static_cast для ссылок на r-значение и std::move меняют свой аргумент при инициализации
Следующий простой код показывает, что static_cast к ссылочному типу r-value и std::move могут изменить свой входной аргумент (здесь переменная inupt ) в операторе инициализации в зависимости от типа инициализируемого объекта. Может кто-нибудь...
136 просмотров
schedule 17.04.2023

Когда `static_cast‹Base*›(static_cast‹void*›(derived))` из указателя на производный класс действителен?
В этом вопросе не должно быть полиморфизма, т.е. никаких виртуальных методов, никаких виртуальных базовых классов. На всякий случай, если это имеет значение, мой случай не связан ни с одним из них. Предположим, у меня есть класс Derived , у...
167 просмотров
schedule 08.11.2022

Почему `decltype(static_cast‹T›())` не всегда `T`?
Для следующего кода проходят все утверждения, кроме последнего: template<typename T> constexpr void assert_static_cast_identity() { using T_cast = decltype(static_cast<T>(std::declval<T>()));...
846 просмотров
schedule 22.06.2022

enable_if в конструкторе преобразования (статическое приведение, is_base_of)
Я работаю над реализацией общего указателя. (используя С++ 17, если это имеет значение) Единственная проблема - конструктор преобразования. Я хочу иметь возможность статического преобразования smart_ptr в smart_ptr базового типа....
62 просмотров

Лучший способ в С++ приводить разные типы подписи друг к другу?
Существует поле данных uint64_t, отправленное узлом связи, оно содержит идентификатор заказа, который мне нужно сохранить в базе данных Postgresql-11, которая НЕ поддерживает целочисленные типы без знака. Хотя реальные данные могут превышать 2 ^ 63,...
89 просмотров