В C++ можно было программировать смайликами еще до того, как это стало мейнстимом

С поддержкой в новых хипстерских языках Юникода в исходниках стало возможным использовать этот самый юникод для написания программ. Например:

Утиная типизация и Swift

Кроме всего прочего в языке Swift от яблок появилась возможность использовать unicode для имен переменных и типов, в итоге можно написать что-то такое:
Swift, утиная типизация
Утиная типизация в Swift

C++11

В С/С++ возможность писать смайликами была задолго до появления шаблонов юникода вообще, и даже 8 битных кодировок в частности. Но поскольку C++ это язык суровых бородатых дядек, то смайлики все здесь текстовые, но от этого не теряющие своей выразительности.
Синтаксис C++ и так  не подарок, но на нем, даже без использования шаблонов можно написать нечто подобное:
Мама, я пишу смайликами на C++
Это совершенно валидная программа на C++11, она будет без ошибок скомпилирована и выполнена: Пример в Online IDE
Как это вообще возможно? ответ под катом:

Диграфы и триграфы

Язык си использует набор символов, не все из которых есть в 7-битной английской кодировке ISO/IEC 646, которая пришла еще из мохнатого 1972 года. И вот для представления в 7 битной кодировке отсутствующих символов были придуманы диграфы - последовательность двух символов, которые обозначают те самые отсутствующие символы.

Диграф Заменяемый символ
<: [
:> ]
<% {
%> }
%: #
Самое интересное, это то, что в c++ есть свои костыли для решения аналогичной проблемы - триграфы , которые начинаются с '??', но в отличае от си триграфы по умолчанию отключены в большинсве компиляторов,  и есть предложение в следующем стандарте обозначить их как deprecated.

Кроме того в C++ есть замечательные макросы, с помощью которых можно создавать странные вещи.

Если хотим померяться не просто знаниями, неочевидных и давно забытых вещей, а измеримыми величинами, то тут в игру вступает cloc



Комментарии

Популярные сообщения из этого блога

Алгоритм NEAT. Эволюционирующие нейронные сети возрастающих топологий.

Цепи Маркова простыми словами. Пишем пирожки.