crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Как работать с boost::mpl::copy_if?
panter_dsd
  опции профиля:
сообщение 11.7.2011, 14:19
Сообщение #1


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

Спасибо сказали: 32 раз(а)




Репутация:   3  


Убил уже не один час в попытках разобраться с 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 провернуть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 11.7.2011, 18:44
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1593
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 218 раз(а)




Репутация:   12  


зачем тебе MPL? он работает с последовательностями типов. это метапрограммирование, это операции с массивами типов. я с трудом себе могу представить, где такое может понадобиться. разве что в каких-нибудь самодельных компиляторах, и то вряд ли.
а у тебя обычные STL контейнеры и вполне нормальное решение задачи. чем оно не устраивает?
можешь покопать boost::algorithm там много всего полезного, и гораздо менее замороченного, чем MPL.

Сообщение отредактировал Iron Bug - 11.7.2011, 18:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 11.7.2011, 20:20
Сообщение #3


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

Спасибо сказали: 32 раз(а)




Репутация:   3  


Хм. Значит я полез совсем не туда.... :)
Спасибо за пинок в нужную сторону.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.11.2019, 11:07