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