【发布时间】:2015-02-24 16:08:56
【问题描述】:
标题确实说明了一切。说明事务精神的示例代码:
if( std::is_constructible<T, unsigned long>::value )
{
unsigned long identity = collection.rbegin()->first + 1;
std::shared_ptr<T> newObject(new T(identity));
collection.insert( identity , newObject );
return true;
}
else
{
return false;
}
【问题讨论】:
-
D 语言将此作为静态 if,而 DM C++ 将此作为扩展。但它不是标准 C++ 的一部分。
-
优化器会移除无用的分支......
-
是的,但不是那种语法。搜索“标签调度”。
标签: c++11 metaprogramming boost-mpl