CXX95 Telegram 10
#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");
%>
%>

Также для прикола были сделаны триграфы - можно вместо { писать ??<, вместо [ писать ??(, и так далее.
😁3👍1



tgoop.com/cxx95/10
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. Healing through screaming therapy Done! Now you’re the proud owner of a Telegram channel. The next step is to set up and customize your channel. Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group.
from us


Telegram C++95
FROM American