LambdaとRangeを混ぜてみる

  • ソースはこれのoven/apply_range.hppあたり
  • Boost.Lambdaのドキュメントはしみじみひどいと思う

[]{[]
[]BOOST_CHECK[][](([]
[]oven[][]::[][]equals[][]([]
[]std[][]::[][]string[][]([][]"efghijk"[][]),[]
[]oven[][]::[][]make_apply_range[][]([][]src[][], [][]bll[][]::[][]bind[][]([][]ll[][]::[][]find[][](), [][]bll[][]::[][]_1[][], [][]bll[][]::[][]_2[][], [][]'e'[][]), [][]bll[][]::[][]_2[][])[]
[] )[]
[] ));[]
[]}[]

[]{[]
[]BOOST_CHECK[][](([]
[]oven[][]::[][]equals[][]([]
[]std[][]::[][]string[][]([][]"abcdefghij"[][]),[]
[]src[][]|[][]applied[][]([][]bll[][]::[][]_1[][], [][]bll[][]::[][]_2[][] - [][]1[][])[]
[] )[]
[] ));[]
[]}[]

[]{[]
[]BOOST_CHECK[][](([]
[]oven[][]::[][]equals[][]([]
[]std[][]::[][]string[][]([][]"defgh"[][]),[]
[]src[][]|[][]applied[][]([][]bll[][]::[][]_1[][] + [][]3[][], [][]bll[][]::[][]_2[][] - [][]3[][])[]
[] )[]
[] ));[]
[]}[]


[]{[]
[]BOOST_CHECK[][](([]
[]oven[][]::[][]equals[][]([]
[]std[][]::[][]string[][]([][]"efgh"[][]),[]
[]src[][]|[]
[]applied[][]([][]bll[][]::[][]bind[][]([][]ll[][]::[][]find[][](), [][]bll[][]::[][]_1[][], [][]bll[][]::[][]_2[][], [][]'e'[][]), [][]bll[][]::[][]_2[][])|[]
[]applied[][]([][]bll[][]::[][]_1[][], [][]bll[][]::[][]bind[][]([][]ll[][]::[][]find[][](), [][]bll[][]::[][]_1[][], [][]bll[][]::[][]_2[][], [][]'i'[][]))[]
[] )[]
[] ));[]
[]}[]