Boost.flyweight и Boost.MPL

У меня вопрос относительно опций легкого веса, учитывая приведенное ниже определение, основанное на http://www.boost.org/doc/libs/ 1_40_0 / libs / flyweight / test / test_basic.cpp

typedef boost::flyweights::flyweight<
    std::string, 
    boost::flyweights::tag,
    boost::flyweights::static_holder_class,          
    boost::flyweights::hashed_factory_class<
        boost::mpl::_1, 
        boost::mpl::_2, 
        boost::hash,
        std::equal_to,
        std::allocator
    >,
    boost::flyweights::simple_locking,
    boost::flyweights::refcounted
> StringFlyweight;

StringFlyweight    test1("Hello World");

какое значение имеет boost :: mpl :: _ 1 и boost :: mpl :: _ 2 ? Когда присваиваются значения?

boost :: mpl :: _ 1 , скорее всего, std :: string . boost :: mpl :: _ 2 должно быть size_t ? Если это правда, как вычитается? Я не понимаю, как выбирается key_type.

Я прочитал http://www.boost.org/doc/libs/1_41_0/libs/flyweight/doc/tutorial/lambda_expressions.html , но это мой первый контакт с Boost.MPL и этого недостаточно :)

5
задан vlg789 20 October 2011 в 07:25
поделиться