crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как работать с boost::mpl::copy_if?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
panter_dsd Дата 11.7.2011, 20:20
  Хм. Значит я полез совсем не туда.... :)
Спасибо за пинок в нужную сторону.
Iron Bug Дата 11.7.2011, 18:44
  зачем тебе MPL? он работает с последовательностями типов. это метапрограммирование, это операции с массивами типов. я с трудом себе могу представить, где такое может понадобиться. разве что в каких-нибудь самодельных компиляторах, и то вряд ли.
а у тебя обычные STL контейнеры и вполне нормальное решение задачи. чем оно не устраивает?
можешь покопать boost::algorithm там много всего полезного, и гораздо менее замороченного, чем MPL.
panter_dsd Дата 11.7.2011, 14:19
  Убил уже не один час в попытках разобраться с boost::mpl::copy_if. До этого с бустом не работал, сейчас пытаюсь его изучить, но пока безрезультатно. Объясните, плиз, на примере работу с этой функцией, а там, надеюсь, уже полегче пойдет освоение.

Входные данные:
1. ProductVersion - класс.
2. typedef std::set <ProductVersion, ProductVersionListComparator> ProductVersionList - контейнер.
3. Функция, в которую передается ProductVersion и она должна вернуть ProductVersionList со всеми элементами, большими, чем этот.

Вот текущий вариант
ProductVersionList AbstractUpdateConfig::availableUpdates (const ProductVersion &currentProductVersion_) const
{
    ProductVersionList l;

    if (productVersionList_.empty () || currentProductVersion_.empty ()) {
        return l;
    }

    const ProductVersionList::const_iterator &it = productVersionList_.lower_bound (currentProductVersion_);

    if (it != productVersionList_.begin ()) {
        l.insert (productVersionList_.begin (), it);
    }

    return l;
}

А как его через copy_if провернуть?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 18.4.2024, 7:45