Есть ли лучший способ преобразования в верхний регистр в буст-духе? - PullRequest
4 голосов
/ 14 марта 2012

Я сделал что-то вроде создания struct для phoenix::function

struct to_upper_impl
{
  template <typename T1>
  struct result { typedef std::string type; };

  std::string operator()(const std::string & s) const
  {
    return boost::algorithm::to_upper_copy(s);
  }
};

boost::phoenix::function<to_upper_impl> to_upper;

и затем использую эту функцию в моих семантических действиях.

Мне было интересно, смогу ли я использовать какой-либо однострочный текст в моем семантическом коде вместо (создания структуры)?

Спасибо!

1 Ответ

1 голос
/ 21 октября 2012

Насколько я знаю - нет. До сих пор нет других способов передать другой вызываемый тип в качестве параметра в phoenix :: function.Пока я экспериментирую с этим, я пытаюсь использовать лямбды C ++ 11 и не могу при попытке вызвать phoenix :: function с некоторыми параметрами из-за протокола Boost.ResultOf.Вы можете увидеть объяснение в этой теме: Невозможно вызвать ленивую лямбда-функцию с параметрами через boost :: phoenix :: function .

Использование boost (BLL) и phoenix lambdas не намного укорачивает и облегчает,Так что к настоящему времени нет хороших альтернатив.

...