Вопросы по теме '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 просмотров
schedule
23.03.2024
Изменение элемента 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 просмотров
schedule
16.12.2022
Почему const_cast не работает с аргументами std :: function?
Я предоставляю константные и неконстантные варианты функции-члена, где я повторно использую константную версию для реализации неконстантной версии, как описано в в этом ответе из книг Скотта Мейерса.
Версия const принимает аргумент типа:...
514 просмотров
schedule
13.12.2022
Продление срока службы временного по неконстантной ссылке с использованием const-cast
Это то, что возникло недавно и, как мне кажется, не должно работать так, как, по-видимому, работает:
#include <iostream>
#include <memory>
int main()
{
std::shared_ptr<int>& ptr =...
149 просмотров
schedule
01.02.2022
Безопасно ли использовать 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