6
ответов

Действительно ли const_cast безопасен?

Я не могу найти много информации о const_cast. Единственная информация, которую я мог найти (на Переполнении стека): const_cast <> () используется для добавления/удаления константы (мыс) (или энергозависимый) переменной. Это...
вопрос задан: 28 August 2017 11:57
6
ответов

Корректное использование (использования) const_cast <>

Как общее правило, это очень часто считают плохой практикой для использования const_cast <> () в коде C++, поскольку это показывает (большую часть времени) дефект в дизайне. В то время как я полностью соглашаюсь с этим, я однако...
вопрос задан: 20 April 2010 08:02
5
ответов

Невозможно преобразовать из «unsigned char **» в «const unsigned char **», почему? [Дубликат]

Почему невозможно вызвать функцию, ожидающую const unsigned char ** с unsigned char **? Пример кода: void f1 (const unsigned char * p) {; } void f2 (const unsigned char ** pp) {; } ...
вопрос задан: 6 October 2013 15:49
5
ответов

Разъяснения потребности в C-стиле, дайте иное толкование, и броски константы

Действительно ли я прав в предположении, что C-стиль бросает (которым препятствуют), только reinterpret_casts? Используя последнего визуально поразительно и легок искать при поиске противных бросков и следовательно этого'...
вопрос задан: 18 September 2010 16:20
5
ответов

Использует const_cast для доступа только для чтения к позволенному объекту константы?

В C++ у меня есть функция, которая только требует доступа только для чтения к массиву, но по ошибке объявляется как получение указателя неконстанты: size_t countZeroes (интервал* массив, size_t количество) {size_t...
вопрос задан: 19 December 2009 01:43
4
ответа

const_cast в шаблоне. Существует ли unconst модификатор?

У меня есть шаблонный класс как это: класс шаблона <T> MyClass {T* данные;} Иногда, я хочу использовать класс с постоянным типом T следующим образом: MyClass <константа MyObject> mci; но я...
вопрос задан: 4 October 2009 14:39
3
ответа

const_cast когда-либо вызывает фактическую эмиссию кода?

Действительно ли это верно, что const_cast является просто способом сказать, что компилятор "прекращает стонать, рассматривает это как указатель неконстанты"? Есть ли какие-либо случаи, когда сам const_cast переводится в фактический машинный код
вопрос задан: 20 July 2012 18:55
3
ответа

C++ const_cast использование вместо бросков C-стиля

Почему следующее?: интервал константы i0 = 5;//интервал i1 = const_cast <интервал> (i0);//интервал ошибки компиляции i2 = (интервал) i0;//хорошо интервал i3 = 5;//интервал константы...
вопрос задан: 16 December 2008 06:47
1
ответ

используя const_cast по постоянному типу данных [duplicate]

Насколько я знаю, const_cast может использоваться для удаления (удаления) константы или волатильности. Но я не мог понять выполнение кода ниже. #include & lt; iostream & gt; int main () {...
вопрос задан: 12 May 2013 10:29
0
ответов

Почему запись в не const объект после отбрасывания const указателя на этот объект не является UB?

Согласно стандарту C++, можно отбрасывать const от указателя и записывать в объект, если сам объект изначально не const. То есть так: const Type* object = new Type(); ...
вопрос задан: 3 June 2018 10:12
0
ответов

Правильно ли я говорю, что const_cast с последующей модификацией ссылки ref-to-const на временный - это нормально?

Я хотел бы проверить свое понимание и выводы по этому поводу. В IRC спросили: допустимо ли использовать const_cast для ссылки на константу, привязанной к временному объекту? Перевод: он ...
вопрос задан: 23 May 2017 11:44
0
ответов

Compiler switch to disable const_cast semantics in c-style casts?

Recently I stumbled over code such as this: void foo(const Bar* b) { ... takes_nonconst_param_fn((Bar*)b); ... Obviously, the developer didn't know what he was doing, but if the compiler hadn'...
вопрос задан: 29 April 2017 16:07
0
ответов

Как избежать const_cast при вызове std :: set :: find

Есть ли хороший способ избежать const_cast ниже, сохраняя при этом правильность const? Без const_cast приведенный ниже код не компилируется. set :: find получает константную ссылку на тип ключа набора, так что ...
вопрос задан: 9 May 2016 14:20
0
ответов

Какое значение дает const void *по сравнению с void *?

В С++ есть ли смысл использовать const void *для типа аргумента функции над void *? Поскольку пустота *непрозрачна, существует ли какой-либо риск модификации, кроме случаев, когда пользователь делает...
вопрос задан: 9 July 2012 15:42
0
ответов

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

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

C ++: почему const_cast злой?

Я продолжаю слышать это заявление, хотя не могу найти причину, по которой const_cast является злом. В следующем примере: template void OscillatorToFieldTransformer :: ...
вопрос задан: 8 May 2012 12:08
0
ответов

C++ const cast, не уверен, что это безопасно

Возможно, это покажется глупым вопросом, но мне действительно нужно это уточнить :Не принесет ли это какой-либо опасности моей программе? Нужно ли приведение const _? Если я изменю значения входных указателей на месте, будет...
вопрос задан: 24 April 2012 07:56
0
ответов

const_cast не работает c ++? [дубликат]

У меня есть следующий код: const int k = 1; int * p = const_cast (& k); cout << "k before =" << * p << endl; * р = 10; * const_cast (& k) = 12; ...
вопрос задан: 21 January 2012 15:40
0
ответов

Можно ли преобразовать пару в пару ?

Итак, у меня есть умный итератор, который имитирует карту const_iterator, и ему необходимо внутренне построить возвращаемый тип. Очевидно, я хотел бы сохранить пару в моем классе итератора (поскольку я ...
вопрос задан: 2 December 2011 08:05
0
ответов

неявное приведение констант в шаблонах

я наткнулся на нечто подобное к приведенному ниже фрагменту кода, который вызывает ошибку компилятора, поскольку он использует const_iterator. есть ли причина, по которой vec.end () в std :: copy неявно не получает ...
вопрос задан: 10 November 2011 05:18
0
ответов

Как вызвать неконстантную функцию в константной функции (C ++)

У меня есть устаревшая функция, которая выглядит так: int Random () const {return var_? 4: 0; } и мне нужно вызвать функцию в этом устаревшем коде, чтобы теперь она выглядела так: int Random () const ...
вопрос задан: 4 November 2011 19:44
0
ответов

Эффективное преобразование константного ссылочного параметра с помощью const_cast

У меня есть функция-член, которая принимает постоянный ссылочный параметр к другому объекту. rameter, чтобы легко использовать его внутри функции-члена. Для этой цели, которая ...
вопрос задан: 4 November 2011 02:32
0
ответов

Неопределенное поведение с Const_Cast

Я надеялся, что кто-то мог уточнить, что именно подразумевается под undefined поведением в C ++. Учитывая следующее определение класса: класс FOO { Public: явное значение foo (int value): m_int (значение) {} ...
вопрос задан: 8 September 2011 14:21
0
ответов

const_cast статического const member

Следующий код хорошо компилируется как с GCC (4.2-4.6), так и с Clang (2.1), но когда я запускаю исполняемый файл, он дает мне «Ошибка шины: 10». Я не понимаю в чем причина. #include ...
вопрос задан: 8 August 2011 19:30
0
ответов

Можно ли переопределить мою константную функцию-член C ++, возвращающую const указатель на внутренний неконстантный массив с использованием const_cast?

Я изучаю C ++ и наткнулся на этот оператор const_cast. Рассмотрим следующий пример: класс Test {частный: имя символа [100]; общедоступные: Тест (const char * n) {std :: strncpy (имя, n, 99); ...
вопрос задан: 20 June 2011 23:13
0
ответов

Это неопределенное поведение const_cast?

Мне было интересно, является ли следующее поведение undefined // Случай 1: int * p = 0; int const * q = * const_cast < int const * const *> (& p); // Случай 2: (я думаю, что это то же самое) int * p = 0; int ...
вопрос задан: 11 May 2011 19:57
0
ответов

Где поведение undefined при использовании const_cast <>?

Если я это сделаю: const char * const_str = "Некоторая строка"; char * str = const_cast (const_str); // (1) str [0] = "P"; // (2) Где (в какой строке) находится неопределенное поведение? Я был ...
вопрос задан: 4 April 2011 07:54
0
ответов

Имеет ли эта инициализация const с помощью const_cast неопределенное поведение?

Согласно моим небольшим тестам, этот код работает. Но есть ли у него неопределенное поведение? Объект const с помощью const_cast привел к нарушениям доступа во время выполнения в моих предыдущих тестах, ...
вопрос задан: 28 November 2010 08:34
0
ответов

const_cast и UB

$ 5.2.11 / 7 - "[Примечание: в зависимости от типа объекта операция записи через указатель, lvalue или указатель на элемент данных результат const_cast, который отбрасывает const -...
вопрос задан: 28 October 2010 11:55