/ categories / Технологии / @sea_plus_plus / post #86
1797

Pythonic C++

std::string s;<br/> s = 1;<br/><br/>— Вау, C++, оказывается, как Python! Можно присваивать строке целые числа, — подумаете вы, увидев, что данный фрагмент кода компилируется без ошибок. И... Будете неправы.

Все дело в объявлении оператора присваивания:
string& string::operator=(char ch);<br/><br/>которое приводит 1 в char.

Так что никакой магии нет. И данный момент заставит вас подумать, почему же в код закралась ошибка.

А если вы все-таки хотите подобное поведение как в Python, взгляните в сторону std::any https://en.cppreference.com/w/cpp/utility/any

English version: https://telegra.ph/Pythonic-C-03-18


06:06 18.03.19
@sea_plus_plus
1094 +10

Interesting materials from C/C++, Python, Go, Linux world and more by @sabbakumov">@sabbakumov | Интересные материалы из мира C/C++, Python, Go, Linux и не только от @sabbakumov">@sabbakumov