GNU bug report logs -
#19867
c++-mode indentation issues with C++1x initializer lists
Previous Next
Reported by: turner25 <at> gmail.com
Date: Sat, 14 Feb 2015 18:17:01 UTC
Severity: minor
Found in version 24.4.1
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Stefan Kangas <stefankangas <at> gmail.com> writes:
> Simon <turner25 <at> gmail.com> writes:
>
>> Initializer lists use curly braces, but their contents do not indent properly with emacs' c++-mode.
>> In short, one may use an initializer list to declare and initialize a vector of integers as such:
>> std::vector<int> Foo( { 1, 2, 3, 4, 5 } );
>>
>> Problems arise when the elements of the list span on multiple line and it gets even worse when the elements are lambda-expressions
>> and nested initializer lists.
>> The following code illustrate most cases and related situations. The code below compiles without error or warning with gcc 4.8.3.
>
> I had a look at the fairly long example provided here, and AFAICT, the
> indentation is incorrect in the below cases (trimmed down from the
> original). Some of the examples of incorrect indentation were already
> fixed.
>
> Alan, could you perhaps take a look at this and see if this is something
> that is fixable? Thanks in advance.
Alan, any chance you could look into the below cases? Thanks in advance.
> #include <vector>
> #include <functional>
>
> namespace emacs_initlist_indentation_bug {
> struct DEF {
> int d, //
> e, // indented from "int" + 2
> f; //
> };
> struct GHI {
> int //
> g, // indented from "int" +0
> h, // indented from "int" + 2
> i; //
> };
>
> void f4 (int a, int b, int c)
> {
> std::vector<ABC> abcList2( // Source of
> alignment for closing ")" below
> {{a+6,
> b+6,
> c+6}
> } //
> ); /* Somehow, this
> one aligns with first line's comment position!! */
> }
>
> lambda_initlist_bug.push_back( //
> [](int p) // OK, text-book indentation
> { //
> return p+p; //
> } //
> ); /* Aligned with
> first comment! */
> }
> }
This bug report was last modified 2 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.