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

const_casting вопрос
У меня есть следующий код: int main(){ const int a = 1; const int* b(&a); int* c = const_cast<int*>(b); *c = 29; cout<<*c<<a<<*b; return EXIT_SUCCESS; } Почему значение «а» не меняется на 29? Означает...
771 просмотров
schedule 24.09.2023

Удалить константность из переменной
я пытаюсь удалить константность из переменной (char *), но по какой-то причине, когда я пытаюсь изменить значение, исходное значение константной переменной остается прежним. const char* str1 = "david"; char* str2 = const_cast<char *>...
12818 просмотров
schedule 01.12.2022

Преобразование const char* в QString
Мне нужно использовать вывод функции типа const char* , и мне нужно преобразовать его в QString . Примечание: внутри этой функции есть строки кода для возврата const char* char* ClassA::getData() const{ return const_cast<char *>...
39934 просмотров
schedule 19.01.2023

Использование const_cast для добавления константы - плохая идея?
как мы все знаем, следует избегать использования const_cast для удаления константности указателя. Но как же быть наоборот? Для моего варианта использования у меня есть функция, которая копирует данные (байты) из неконстантного исходного буфера....
2884 просмотров
schedule 02.06.2022

Это неопределенное поведение с const_cast?
Что здесь происходит? const int a = 0; const int *pa = &a; int *p = const_cast<int*>(pa); *p = 1; // undefined behavior ?? cout << a << *p; // ?? Мой компилятор выводит 0 и 1, но адрес «a» и значение «p» совпадают,...
2448 просмотров
schedule 17.05.2023

Передача результатов `std::string::c_str()` в `mkdtemp()` с использованием `const_cast‹char*›()`
Хорошо, итак: мы все знаем, что использование const_cast<>() в любом месте настолько плохо, что это практически военное преступление в программировании. Так что это гипотетический вопрос о том, насколько плохо это может быть в конкретном...
714 просмотров
schedule 03.05.2022

Как const предотвращает запись в определенную память [Clang, Mac OS]
Я балуюсь с C++, читаю книги о хороших привычках на этом языке. Я читал про const_cast и написал простую программу, которая отвечает на вопрос: можно ли убрать префикс const и записать значение по этому адресу? Мой код: #include...
66 просмотров
schedule 11.06.2024

преобразовать из «const QVector‹QVector‹qreal››» в «QVector‹QVector‹qreal››»
Как я могу решить следующее, например, преобразовать const QVector<QVector<qreal>> в QVector<QVector<qreal>> ? Я попробовал несколько шагов, но не помогло: QVector<QVector<qreal>> points =...
134 просмотров
schedule 01.06.2022

Разрешено ли отбрасывать константу для объекта, определенного константой, если он фактически не изменен?
Разрешено ли следующее: const int const_array[] = { 42 }; int maybe_inc(bool write, int* array) { if (write) array[0]++; return array[0]; } int main() { return maybe_inc(false, const_cast<int *>(const_array)); } В частности,...
1377 просмотров

Изменение элемента const std::vector‹T› через const_cast
Имеет ли следующая программа неопределенное поведение? #include <iostream> #include <vector> struct Foo { const std::vector<int> x; }; int main() { std::vector<int> v = {1,2,3}; auto f = new Foo{v};...
204 просмотров

Почему const_cast не работает с аргументами std :: function?
Я предоставляю константные и неконстантные варианты функции-члена, где я повторно использую константную версию для реализации неконстантной версии, как описано в в этом ответе из книг Скотта Мейерса. Версия const принимает аргумент типа:...
514 просмотров
schedule 13.12.2022

Продление срока службы временного по неконстантной ссылке с использованием const-cast
Это то, что возникло недавно и, как мне кажется, не должно работать так, как, по-видимому, работает: #include <iostream> #include <memory> int main() { std::shared_ptr<int>& ptr =...
149 просмотров

Безопасно ли использовать std::string::c_str() для изменения базового std::string?
Я наткнулся на некоторый код, который имеет несколько экземпляров приведенного ниже примера: std::string str = "This is my string"; char* ptr = const_cast<char*>(str.c_str()); ptr[5] = 'w'; ptr[6] = 'a'; В этом упрощенном...
230 просмотров
schedule 25.05.2024