Size: a a a

2021 February 20

Y

Yura in supapro.cxx
std::slavik
типа того
А есть наглядный какой то пример опасности си преобразование
источник

s

std::slavik in supapro.cxx
Yura
Ещё не дашол до перегрузок
я фигню сказал, вот это имел в виду

struct X {
   //implicit conversion
   operator int() const { return 7; }
   // explicit conversion
   explicit operator int*() const { return nullptr; }
};

int main()
{
   X x;

   int n = static_cast<int>(x);   // OK: sets n to 7
   int m = x;                     // OK: sets m to 7

   int* p = static_cast<int*>(x);  // OK: sets p to null
//  int* q = x; // Error: no implicit conversion

}

https://en.cppreference.com/w/cpp/language/cast_operator
источник

FS

Flower Surgeon in supapro.cxx
Yura
А есть наглядный какой то пример опасности си преобразование
const int i = 5;

int *j = (int *)&i;

*j = 42;

Например, так.
источник

s

std::slavik in supapro.cxx
Yura
А есть наглядный какой то пример опасности си преобразование
по си касту не понятно что программист хотел сделать
источник

s

std::slavik in supapro.cxx
понимал ли он тут что он делает
источник

s

std::slavik in supapro.cxx
reinterpret_cast явно показывает что программист в этом месте подумал над кастом и он именно это хотел сделать
источник

Y

Yura in supapro.cxx
std::slavik
reinterpret_cast явно показывает что программист в этом месте подумал над кастом и он именно это хотел сделать
я имел виду static_cast
источник

Y

Yura in supapro.cxx
Flower Surgeon
const int i = 5;

int *j = (int *)&i;

*j = 42;

Например, так.
тип может изменить значение констани?
источник

Y

Yura in supapro.cxx
через указатель
источник

FS

Flower Surgeon in supapro.cxx
Yura
тип может изменить значение констани?
Да, он может отбросить константность, но это UB.
источник

Y

Yura in supapro.cxx
Flower Surgeon
Да, он может отбросить константность, но это UB.
первое у меня не получилось так отбросить консантность ,второе что такое UB
источник

s

std::slavik in supapro.cxx
Yura
первое у меня не получилось так отбросить консантность ,второе что такое UB
неопределенное поведение
источник

Y

Yura in supapro.cxx
понятно
источник

FS

Flower Surgeon in supapro.cxx
Yura
первое у меня не получилось так отбросить консантность ,второе что такое UB
1. А как пробовал?
2. undefined behavior
источник

Y

Yura in supapro.cxx
Flower Surgeon
1. А как пробовал?
2. undefined behavior
твой пример
источник

FS

Flower Surgeon in supapro.cxx
Yura
твой пример
источник

FS

Flower Surgeon in supapro.cxx
Всё получается, но UB как результат.
источник

s

std::slavik in supapro.cxx
источник

FS

Flower Surgeon in supapro.cxx
Смотри обновлённую ссылку у меня.
источник

FS

Flower Surgeon in supapro.cxx
Там нагляднее.
источник