GNU bug report logs -
#62386
CC Mode 5.35.2 (C++//l); C++ concept indentation
Previous Next
Full log
View this message in rfc822 format
Alan Mackenzie <acm <at> muc.de> writes:
>> Before:
>
>> template <typename T>
>> requires (OctetLike<T>
>> || (std::rank_v<T> == 1 && std::extent_v<T> == 0
>> && OctetLike<std::remove_extent_t<T>>))
>> Chunk(std::shared_ptr<T> const & p, length_t size)
>> : data_{p, octet_cast(p.get())},
>> size_{size}
>> {}
>
>
>> After:
>
>> template <typename T>
>> requires (OctetLike<T>
>> || (std::rank_v<T> == 1 && std::extent_v<T> == 0
>> && OctetLike<std::remove_extent_t<T>>))
>> Chunk(std::shared_ptr<T> const & p, length_t size)
>> : data_{p, octet_cast(p.get())},
>> size_{size}
>> {}
>
> This is a difficult one. Aligning the || under OctetLike causes problems
> when the parenthesis is already far to the right, for example if requires
> is on the same line as template. Then everything will be indented too
> far to the right. This dilemma has come up at least twice before.
>
> I think what's worse is the lack of further indentation of the && line.
> I don't know what to do about that, at the moment.
I guess I just see it as the standard parenthesized expression problem
that already exists. It's generally up to the programmer to make sure
opening parentheses don't happen too far to the right.
I agree about the && line.
> I'm also a little bit worried about the "virtual semicolon" detection on
> some more complicated requires constructs.
>
> Anyhow, I think I'll commit what I've got, and leave these doubts to be
> cleared up later.
Sure. I'm generally happy with the improvements that have been made so
far.
--
Michael Welsh Duggan
(md5i <at> md5i.com)
This bug report was last modified 2 years and 34 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.