Boost.ForeachとBoost.RangeEx

  • Boost.Iteratorのboost::filter_iteratorは使い方がめんどう
  • Boost.RangeExのboost::make_filter_rangeでその作業を自動化できる
  • そのままBoost.RangeExの関数はもちろん、BOOST_FOREACHにも渡せる
  • 以下のfind_fileの実装はKetchup Version1.02にあります


[]find_file[] []ff[]([]_T[]([]"*.*"[]));
[]BOOST_FOREACH[](
[]WIN32_FIND_DATA[] []const[]& []fd[],
[]boost[]::[]make_filter_range[]([]ff[], []boost[]::[]not1[]([]find_file_matches_mask[]<[]FILE_ATTRIBUTE_HIDDEN[]>()))
)
{
[]ATLTRACE[]([]fd[].[]cFileName[]);
[]ATLTRACE[]([]_T[]([]"\n"[]));
}