6
голосов
5ответов
1198 просмотров

Is using const_cast for read-only access to a const object allowed?

In C++ I have a function that only requires read-only access to an array but is mistakenly declared as receiving a non-const pointer: size_t countZeroes( int* array, size_t count ) { size_t result = 0; for( size_t i = 0; i < count; i++ ) { if( array[i] == 0 ) { ...

6
голосов
5ответов
6937 просмотров

const_cast in template. Is there a unconst modifier?

I have a template class like this: template<T> class MyClass { T* data; } Sometimes, I want to use the class with a constant type T as follows: MyClass<const MyObject> mci; but I want to modify the data using const_cast<MyObject*>data (it is not important why but MyClass...

2
голосов
5ответов
2049 просмотров

Почему я не могу const_cast возвращать оператор преобразования?

У меня есть оператор преобразования, который возвращает указатель const, и мне нужно преобразовать его в const_cast. Однако это не работает, по крайней мере, в MSVC8. Следующий код воспроизводит мою проблему: class MyClass { public: operator const int* () { return 0; } }; int...

8
голосов
4ответов
401 просмотров

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

Верно ли, что const_cast - это просто способ сказать компилятору: «Прекратите стонать, относитесь к этому как к неконстантному указателю»? Есть ли случаи, когда само const_cast транслируется в реальный машинный код?

8
голосов
4ответов
10081 просмотров

Использование C ++ const_cast вместо приведений в стиле C

Почему следующее ?: const int i0 = 5; //int i1 = const_cast<int>(i0); // compilation error int i2 = (int)i0; // okay int i3 = 5; //const int i4 = const_cast<const int>(i3); // compilation error const int i5 = (const int)i3; ...

92
голосов
7ответов
48248 просмотров

Const_cast безопасно?

Я не могу найти много информации по const_cast. Единственная информация, которую я смог найти (в Stack Overflow): const_cast<>() используется для добавления / удаления константы (или изменчивости) переменной. Это заставляет меня нервничать. Может ли использование const_cast вызва...