リスト内包表記
C++にはリスト内包表記を直接サポートする言語機能は存在しないが、 演算子オーバーロード(例えば、|、>>、>>=など)を使用して、「埋め込み」クエリDSLの構文を提供するということがしばしば行われる。また、erase-removeイディオムを使用してコンテナ内の要素を選択し、STLのfor_eachアルゴリズムを使用して要素を変換することでもリスト内包表記を構築できる。
また、集合内包表記と似たリスト内包表記の構文・記法をC++に提供するための試みがいくつか存在する。
Boostのrangeライブラリには、アダプタ記法が存在し、フィルタや変換などを任意のrangeに適用することができる。このライブラリーを使用すると、上のHaskellのコード例は次のように書ける(匿名フィルタと変換関数のためにBoost.Lambdaを用いている)(完全な例 )。 counting_range(1,10) | filtered( _1*_1 > 3 ) | transformed(ret<int>( _1*2 ))
ある実装では、マクロと、<<演算子のオーバーロードを使用する。これは条件文の中の任意の式を有効と評価するため、条件文中では任意の変数名を選択できる。ただし、スレッドセーフではない。