[Boost][MPL] vector
От: _nn_ www.nemerleweb.com
Дата: 01.07.10 14:12
Оценка:
Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: [Boost][MPL] vector
От: alexeiz  
Дата: 02.07.10 03:19
Оценка: :))) :)
Здравствуйте, _nn_, Вы писали:

__>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


#define BOOST_MPL_LIMIT_VECTOR_SIZE 200
#include <boost/mpl/vector.hpp>

И спрятаться под столом перед запуском компиляции.
Re: [Boost][MPL] vector
От: jazzer Россия Skype: enerjazzer
Дата: 02.07.10 04:39
Оценка: 10 (1)
Здравствуйте, _nn_, Вы писали:

__>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


Я столкнулся с такой задачей в свое время, пробовал разные варианты.
Наилучшим (для моих целей) оказался такой (скопирую коммент):
/// one of (X in [1,50]):
/// - vectorX
/// - joint_view< vector50, vectorX >
/// - joint_view< joint_view< vector50, vector50 >, vectorX >
/// - joint_view< joint_view< vector50, vector50 >, joint_view< vector50, vectorX > >

Реализацию привести не могу, ибо NDA, но, я думаю, ты и сам справишься

Тут необходимо помнить, что в результате получится список с последовательным доступом.
Смотри, достаточно ли тебе этого.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: [Boost][MPL] vector
От: night beast СССР  
Дата: 02.07.10 05:20
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


alexeiz сказал как.
о результатах сообщи плиз.
у меня помнится гсс 3-й на размерах больше 60 умирал.
хотя может и запамятовал, давно дело было.
Re[2]: [Boost][MPL] vector
От: _nn_ www.nemerleweb.com
Дата: 02.07.10 10:05
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, _nn_, Вы писали:


__>>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


A>
A>#define BOOST_MPL_LIMIT_VECTOR_SIZE 200
A>#include <boost/mpl/vector.hpp>
A>

A>И спрятаться под столом перед запуском компиляции.

Это я уже пробовал..

\boost\mpl\vector.hpp(36) : fatal error C1083: Cannot open include file: 'boost/mpl/vector/vector200.hpp': No such file or directory

http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: [Boost][MPL] vector
От: night beast СССР  
Дата: 02.07.10 10:38
Оценка:
Здравствуйте, _nn_, Вы писали:

__>>>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


A>>
A>>#define BOOST_MPL_LIMIT_VECTOR_SIZE 200
A>>#include <boost/mpl/vector.hpp>
A>>

A>>И спрятаться под столом перед запуском компиляции.

__>Это я уже пробовал..

__>

__>\boost\mpl\vector.hpp(36) : fatal error C1083: Cannot open include file: 'boost/mpl/vector/vector200.hpp': No such file or directory



зайди в boost/mpl/vector
файлы vector50.hpp и vector50_c.hpp
скопируй в vector200.hpp и vector200_c.hpp и в них замени
(3,(41, 50, <boost/mpl/vector/aux_/numbered_c.hpp>))
на
(3,(41, 200, <boost/mpl/vector/aux_/numbered_c.hpp>))
как-то так
Re[4]: [Boost][MPL] vector
От: taluk  
Дата: 02.07.10 11:19
Оценка: 2 (2)
Здравствуйте, night beast, Вы писали:

NB>Здравствуйте, _nn_, Вы писали:


__>>>>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


A>>>
A>>>#define BOOST_MPL_LIMIT_VECTOR_SIZE 200
A>>>#include <boost/mpl/vector.hpp>
A>>>

A>>>И спрятаться под столом перед запуском компиляции.

__>>Это я уже пробовал..

__>>

__>>\boost\mpl\vector.hpp(36) : fatal error C1083: Cannot open include file: 'boost/mpl/vector/vector200.hpp': No such file or directory



NB>зайди в boost/mpl/vector

NB>файлы vector50.hpp и vector50_c.hpp
NB>скопируй в vector200.hpp и vector200_c.hpp и в них замени
NB> (3,(41, 50, <boost/mpl/vector/aux_/numbered_c.hpp>))
NB>на
NB> (3,(41, 200, <boost/mpl/vector/aux_/numbered_c.hpp>))
NB>как-то так

А если ничего не копировать то можно так

// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

// vectorX
#define BOOST_MPL_LIMIT_VECTOR_SIZE 200
#include "boost/mpl/vector/vector50.hpp"
#include "boost/mpl/aux_/config/ctps.hpp"
#include "boost/preprocessor/iterate.hpp"
#include "boost/config.hpp"

namespace boost { namespace mpl {
#define BOOST_PP_ITERATION_PARAMS_1         (3,(51, BOOST_MPL_LIMIT_VECTOR_SIZE, "boost/mpl/vector/aux_/numbered.hpp"))
#include BOOST_PP_ITERATE()
}}

// vector
#define BOOST_MPL_PREPROCESSING_MODE
#include "boost/mpl/vector.hpp"
#undef BOOST_MPL_PREPROCESSING_MODE


using namespace boost::mpl;
using namespace boost;


// создать
typedef vector<
    float
        ,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int

    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
    ,int,int,int,int,int,int,int,int,int,int
//     ,int,int,int,int,int,int,int,int,int,int
//     ,int,int,int,int,int,int,int,int,int,int
> v_180;
typedef vector<float> v_1;


// показать что работает
#include <boost/mpl/remove_if.hpp>
#include <boost/type_traits/is_same.hpp>
typedef remove_if<v_180, is_same<_1, int > >::type v_1_from_180;
BOOST_MPL_ASSERT(( is_same< v_1_from_180::type, v_1::type > ));



int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
Re: [Boost][MPL] vector
От: IROV..  
Дата: 02.07.10 13:39
Оценка: +2
Здравствуйте, _nn_, Вы писали:

__>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


Можно офтоп, откуда дрова/обьемы?
я не волшебник, я только учусь!
Re[5]: [Boost][MPL] vector
От: _nn_ www.nemerleweb.com
Дата: 03.07.10 11:29
Оценка:
Здравствуйте, taluk, Вы писали:


<skip/>

Время компиляции впечатляет

Правда 300 элементов уже так не сделать
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: [Boost][MPL] vector
От: _nn_ www.nemerleweb.com
Дата: 03.07.10 11:34
Оценка:
Здравствуйте, IROV.., Вы писали:

IRO>Здравствуйте, _nn_, Вы писали:


__>>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


IRO>Можно офтоп, откуда дрова/обьемы?


Хочу обработку строк во время компиляции
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: [Boost][MPL] vector
От: Ops Россия  
Дата: 03.07.10 18:01
Оценка: -3
Здравствуйте, _nn_, Вы писали:

__>Как заставить boost::mpl::vector принять большое количество аргументов ? скажем 200


Архитектура гавно
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.