повысить вопрос синтеза - PullRequest
0 голосов
/ 22 июня 2011

У меня проблемы с компиляцией следующего (я новичок в фьюжн). В частности, я не уверен, откуда берется "_" (в is_same)? От boost :: lambda? Повысьте :: MPL? Что мне нужно для компиляции?

template <typename T>
struct check
{ 
  const T& value;

  check(const T& v) : value(v) {}

  template <typename X>
  bool operator()(const fusion::pair<X,T>& data) const
  {
    return data.second == value;
  }
};

template <typename T1, typename T2, typename P>
bool new_match(const P& p, const T2& values)
{
  fusion::for_each(fusion::filter_if<boost::is_same<_, T2> >(p), check(values));
  return true; // not finished, just trying to compile
}

Спасибо! * * 1004

1 Ответ

3 голосов
/ 22 июня 2011

Да, это действительно должно быть boost::mpl::_, как продемонстрировано в fusion::filter_if документации , поэтому вам нужно только #include <boost/mpl/placeholders.hpp> и квалификация или использование декларации, чтобы ввести _ вОбъем.

...