私は、エラーや警告さえせずにコンパイルし、次のプログラム、出くわした:このスマイリー・アンド・ビアの表現は「<:]{%>」ですか?
int main(){
<:]{%>; // smile!
}
プログラムが何をして、スマイリー表現というものですでしょうか?
私は、エラーや警告さえせずにコンパイルし、次のプログラム、出くわした:このスマイリー・アンド・ビアの表現は「<:]{%>」ですか?
int main(){
<:]{%>; // smile!
}
プログラムが何をして、スマイリー表現というものですでしょうか?
これは、有向グラフを使った空のラムダです。通常のラムダにはひげがありません。
プログラムは次のことを表現するためにdigraphsを使用しています。
[] {};
これは何もしないラムダ式です。彼らは今日、一般的に不要ですけれども
<: = [
%> = }
は、有向グラフはキーボードがC++の基本ソース文字セット、つまりグラフィカルなものを使用するために必要な特定のキーが欠けているときに便利です:対応するシンボルは、これらの同等物を持っています。有向グラフを構成する文字の組み合わせは、単一のトークンとして処理されます。これは、不十分に装備されたキーボードまたは他のそのようなハードウェアまたはソフトウェアを補う。
プログラムではdigraphsが使用されています。これにより、C++で一般的に使用されている文字を持たないキーボード(またはテキストエンコード)でのC++プログラミングが可能になります。
コードはこれに解決されます。
int main(){
[]{}; // smile!
}
int main(){ <:]{%>; // smile! }
それは基本的にLambda expressionです(ラムダ式はC++11の特徴の一つである)digraphs(有向グラフとトリグラフの両方がC++で動作)を使用して:
を[] {};
dig raphs:
トリグラフでそれらを混合<:]<%};
<:]<%%>;
[:>{%>; // like my cubic hat?
[:><%};
[:><%%>;
:
<:??)<%??>; // popeye
??(:>{??>; // pirate
私はボーナスとして、プログラミングクラスにこれらの線に沿って何かを与えました。私は悪いです、私は知っています。それはGoogleで非常に発見できません。 – chris
ニースの周回;私は彼らが "ungoogleable"と言ってあなたを訴えたと聞いています。 – matt
@matt彼らはsweedenを訴えました:http://www.bbc.com/news/magazine-21956743 – Edward