最近、イテレータが暗黙的にboolに変換されて、次のことができるようになればどうなるかを考えていました。
auto it = find(begin(x),end(x), 42);
if (it) //not it!=x.end();
{
}
しかし、考えてみると、これはit
「NULL」に設定する必要があることを意味するので、何かをしたい場合は直接使用できない(x.end()
使用する必要がある)か、使用できることに気付きました。ただし、iterのサイズは大きくする必要があります(それが指しているものがそうであるかどうかを保存する .end()
ため)。だから私の質問は:
- 私の例の構文は、現在のコードを壊すことなく、またイテレーターのサイズを増やすことなく達成できますか?
- 暗黙的にboolに変換すると、いくつかの問題が発生しますか?