TGViewer
this->notes. this->notes. @thisnotes · 4.52K subscribers
Post #248 2.07K
#common #cpp

0. Это вообще довольно известная штука, но я о ней не писал, так что поделюсь.

Когда вы учите C++, вам говорят, что возвращаемое значение на перегрузку не влияет. Но это не значит, что нельзя использовать силу рук, чтобы намутить такое. Мы же всё-таки на C++ пишем☺️

Пусть есть две функции, которые отличаются только возвращаемым значением:

int process(std::string s);
bool process(std::string s);


Мы хотим, чтобы следующий код заработал:

int i = process(some_string);
bool b = process(some_string);


Нам поможет вот такая замечательная структура:

struct converter {
std::string s;

operator int() const;
operator bool() const;
};


у которой операторы приведения типа как раз совершают необходимую логику, соответствующую функциям process. Тогда наш код превращается в

int i = converter{some_string};
bool b = converter{some_string};


Ну или можно сделать немножко аккуратнее и написать общую функцию, чтобы детали реализации не висели наружу:

converter process(std::string s) {
return converter{s};
}

int i = process(some_string);
bool b = process(some_string);


И ссылочки.

1. Unexpected downsides of UUID keys in PostgreSQL.

2. Big Data is Dead. Статья прикольная, потому что идёт вразрез с моим мироощущением, где данных очень много и рано или поздно это начнёт приносить проблемы.

3. Goodbye, Clean Code.
  • 👍 27
  • ❤ 4
  • 😈 3
  • 😁 2
  • 🤯 1
More from @thisnotes
  1. Sep 17, 2026#common Сидите вы себе спокойно, разрабатываете поиск каких-нибудь объектов. Может это тов…
  2. Sep 9, 2026#cpp #books Да, книга 2001ого года. Мы ровесники. И да, в ней в основном обсуждаются какие…
  3. Sep 2, 2026#perf Попробовал собрать в кучку (кажется, немного сумбурно всё же) мысли по двум моментам…
  4. Aug 31, 2026Давайте новый тег заведём: #perf Во-первых, надо понять, что я вообще понимаю под перфом,…
  5. Aug 27, 2026#common Мы часто делаем системы, которые обладают какими-то ограничениями. Ограничения наш…
  6. Aug 24, 2026#list 0. [talk] Achieving Peak Performance for Matrix Multiplication in C++. Aliaksei Sala…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →