Date: Sat, 30 Nov 2019 19:41:42 +0200
On Sat, 30 Nov 2019 at 19:35, Ville Voutilainen
<ville.voutilainen_at_[hidden]> wrote:
>
> On Sat, 30 Nov 2019 at 18:55, Lyberta via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
> >
> > John McFarlane via Std-Proposals:
> > > Sanitizing user input sounds like something that is best served by explicit
> > > logic. I certainly don't think that UI is any concern of containers.
> >
> > Explicit logic such as
> >
> > if (i >= std::size(whatever))
> > {
> > throw std::out_of_range{"Invalid index."};
> > }
> >
> > How is that better than calling at()?
>
> I can't find either innocent or non-innocent users who would find it
> better.
Note, though, that there is this aspect of it:
rather than write:
do_something(foo.at(bar));
do_something(foo.at(bax));
do_something(foo.at(baz));
you can write
if (bar >= 0 && baz <= foo.size() ) {
do_domething(foo[bar]);
do_something(foo[bax]);
do_something(foo[baz]);
}
So, rather than looking at single-condition cases, we should remember
to consider multi-condition ones.
<ville.voutilainen_at_[hidden]> wrote:
>
> On Sat, 30 Nov 2019 at 18:55, Lyberta via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
> >
> > John McFarlane via Std-Proposals:
> > > Sanitizing user input sounds like something that is best served by explicit
> > > logic. I certainly don't think that UI is any concern of containers.
> >
> > Explicit logic such as
> >
> > if (i >= std::size(whatever))
> > {
> > throw std::out_of_range{"Invalid index."};
> > }
> >
> > How is that better than calling at()?
>
> I can't find either innocent or non-innocent users who would find it
> better.
Note, though, that there is this aspect of it:
rather than write:
do_something(foo.at(bar));
do_something(foo.at(bax));
do_something(foo.at(baz));
you can write
if (bar >= 0 && baz <= foo.size() ) {
do_domething(foo[bar]);
do_something(foo[bax]);
do_something(foo[baz]);
}
So, rather than looking at single-condition cases, we should remember
to consider multi-condition ones.
Received on 2019-11-30 11:44:16