最近、私は「repeat」や「foreach」などの多くの構造を必要とするプロジェクトに取り組んでいました。C++ にはそのような構造がないことはわかっていますが、それらがどのように見えるかを想像してみました。
repeat(count)
{
...
}
foreach(someList, it)
{
...
}
テンプレート インライン関数は C++ で既にサポートされているため、テンプレート コード ブロックもサポートするために必要な変更はほとんどありません。考えられる構文の 1 つは次のようになります。
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++ バージョンでこのようなものを実装するための回避策を知っていますか?