最近我在做一个项目,它需要很多结构,比如“repeat”和“foreach”。我知道 C++ 中没有这样的结构,但我试图想象它们会是什么样子。
repeat(count)
{
...
}
foreach(someList, it)
{
...
}
由于 C++ 中已经支持模板内联函数,因此只需很少的更改即可支持模板代码块。一种可能的语法可能是这样的:
template<unsigned count> repeat(unsigned count)
while(count--) __code;
template <class ContainerT, typename ContainerT::iterator it>
foreach(ContainerT& cn, typename ContainerT::iterator it)
for(typename ContainerT::iterator it=cn.begin(); it!=cn.end(); ++it) __code;
您如何看待这种语法?在未来的 C++ 版本中是否有机会添加此类功能?您是否知道在当前 C++ 版本中实现此类功能的任何解决方法?