换句话说,一个占位符表达式始终包含(至少)一个占位符。
关于占位符表达式,一个尚未讨论的细节是:为了使普通模板更容易融入元编程,mpl对它们使用了特殊的规则。在所有的占位符都被相应的实际参数替换后,如果作为结果的模板特化体x并没有内嵌的::type,那么结果就是x自身。
例如,mpl::apply<std::vector<_>,t>的结果始终都是std::vector<t>。如果不是由于这个行为,我们就得写一个元函数用于在lambda表达式中创建模板特化体:
换句话说,一个占位符表达式始终包含(至少)一个占位符。
关于占位符表达式,一个尚未讨论的细节是:为了使普通模板更容易融入元编程,mpl对它们使用了特殊的规则。在所有的占位符都被相应的实际参数替换后,如果作为结果的模板特化体x并没有内嵌的::type,那么结果就是x自身。
例如,mpl::apply<std::vector<_>,t>的结果始终都是std::vector<t>。如果不是由于这个行为,我们就得写一个元函数用于在lambda表达式中创建模板特化体: