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