У меня вопрос относительно опций легкого веса, учитывая приведенное ниже определение, основанное на 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 и этого недостаточно :)