GNU bug report logs -
#14626
CC Mode 5.32.5 (C++/l); indentation problem involving override
Previous Next
Full log
View this message in rfc822 format
Michael Welsh Duggan <mwd <at> md5i.com> writes:
> Date: Sat, 15 Jun 2013 12:03:45 -0400
> Message-ID: <87a9mrqs2m.fsf <at> maru.md5i.com>
> User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux)
>
> In c++-mode, the following class gets indented correctly:
>
> class Foo
> {
> Foo
> foo()
> const;
> };
>
> as does this:
>
> class Foo
> {
> Foo *
> foo()
> const;
> };
>
> and this:
>
> class Foo
> {
> Foo
> foo()
> const
> override;
> };
>
>
> But the following does not:
>
> class Foo
> {
> Foo *
> foo()
> const
> override;
> };
It looks to me that "noexcept", "override", and "final" may need to be
added to c-type-modifier-kwds. Or maybe more appropriately in
c-type-decl-suffix-key, since they can only appear at the end of a
declaration. A brief scan through cc-langs.el shows that there might
need to be a few other new c++11 symbols added as well, such as
"constexpr". "decltype" might be particularly troublesome, as it is a
type that includes an argument in parentheses.
Please note that "noexcept", like "throw", can have a parenthetical
expression after it.
--
Michael Welsh Duggan
(md5i <at> md5i.com)
This bug report was last modified 8 years and 332 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.