Что делает программа, и что это за смайлик-выражение?
Ответ 1
То, что пустая лямбда, использующая орграф, маскируется. Нормальные лямбды не имеют бороды.
Ответ 2
В программе используется digraphs, чтобы представить следующее:
[] {};
Это выражение лямбда, которое ничего не делает. Соответствующие символы имеют следующие эквиваленты:
<: = [
%> = }
Хотя сегодня они вообще не нужны, орграфы полезны, когда на вашей клавиатуре не хватает определенных ключей, необходимых для использования базового набора символов С++, а именно графических. Комбинация символов, составляющих орграф, обрабатывается как один токен. Это, в свою очередь, компенсирует любые недостаточно оборудованные клавиатуры или другое подобное оборудование или программное обеспечение.
Ответ 3
Программа использует digraphs, которые позволяют программировать на С++ с клавиатурами (или текстовыми кодировками), которые могут не иметь символов С++ обычно используется.
Код разрешает следующее:
int main(){
[]{}; // smile!
}
Ответ 4
int main(){
<:]{%>; // smile!
}
В основном выражение Lambda (выражение Lambda является одним из C++11), используя digraphs (оба орграфа и триграфы работают на С++):
[] {};
Использование только орграфов:
<:]<%};
<:]<%%>;
[:>{%>; // like my cubic hat?
[:><%};
[:><%%>;