tgoop.com/cxx95/10
Create:
Last Update:
Last Update:
#creepy
Alternative operator representations (диграфы)
Когда-то давным-давно на свете существовали странные кодировки, в которых не существовало базовых символов.
Например, кодировка для немецкого языка DIN 66003, бывшая в использовании с 1974 по 1999 годы. Она была создана прямой заменой символов [\]{|}~ на ÄÖÜäöüß, которых нет в ASCII. Получилось очень круто - никому не нужные скобочки заменили на буквы алфавита.
Чтобы юзеры кодировки смогли программировать на C++, была реализована гениальная схема - в языке вместо {, }, [, ], # можно писать соответственно <%, %>, <:, :>, %:, %:%:.
Вместе с заменой && на and, != на not_eq, etc. получился код, который можно скомпилировать и сейчас:
int main(int argc, char* argv<::>)
<%
// lambda with reference-capture:
auto greet = <:bitand:>(const char* name)
<%
std::cout << "Hello " << name
<< " from " << argv<:0:> << '\n';
%>;
if (argc > 1 and argv<:1:> not_eq nullptr) <%
greet(argv<:1:>);
%> else <%
greet("Anon");
%>
%>
Также для прикола были сделаны триграфы - можно вместо
{ писать ??<, вместо [ писать ??(, и так далее.BY C++95
Share with your friend now:
tgoop.com/cxx95/10
