Обложка канала

Sea++

Канал об интересных материалах из мира C/C++, Python, Go, Linux и не только. Новости, заметки, полезные советы и многое другое.

Sea++

7 лет назад
Открыть в
Pythonic C++

 std::string s;
s = 1;

— Вау, C++, оказывается, как Python! Можно присваивать строке целые числа, — подумаете вы, увидев, что данный фрагмент кода компилируется без ошибок. И... Будете неправы.

Все дело в объявлении оператора присваивания:
 string& string::operator=(char ch);

которое приводит 1 в char.

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

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

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