C++で高階関数が使いたい

 最近はお仕事ではC++ばっかり使っている。Perlを覚えろと言われたのでOJT期間にやった作業はだいたいPerlで書いたが、OJT期間を終了してからというもの、全然Perlのコードは書いてない。おかげでPerlの知識は頭からほとんど抜けてしまった。
 C++STLを使ってコードを書いていると、ちょっとしたところで書かないといけないコードの多さにストレスを感じる。例えば、文字列のvectorから条件に会う要素のみを取り出して連結する、とか、一行で書かせてほしいような処理がなかなか短く書けず、結局それ用に関数を一つ書いたりする羽目になる。Rubyだったらこんな感じで一行に書けるのに。

  vec.find_all{|item| pred(item)}.join("")

 Schemeでも一行だ。SRFI-1とSRFI-13が要るけど。

  (string-join (filter pred lst))

 C++でもSTLのfunctionalとかboost::lambdaとかを使えば短く書けるんだろうと予測はできるんだけど、なんか落とし穴が待ち受けてそうで、怖くてまだ一歩が踏み出せない。