Files
clang-p2996/clang/test/FixIt/fixit-c++2a.cpp
Richard Smith b2997f579a [c++20] P0780R2: Support pack-expansion of init-captures.
This permits an init-capture to introduce a new pack:

  template<typename ...T> auto x = [...a = T()] { /* a is a pack */ };

To support this, the mechanism for allowing ParmVarDecls to be packs has
been extended to support arbitrary local VarDecls.

llvm-svn: 361300
2019-05-21 20:10:50 +00:00

16 lines
698 B
C++

// RUN: %clang_cc1 -verify -std=c++2a %s
// RUN: cp %s %t
// RUN: not %clang_cc1 -x c++ -std=c++2a -fixit %t
// RUN: %clang_cc1 -Wall -pedantic -x c++ -std=c++2a %t
/* This is a test of the various code modification hints that only
apply in C++2a. */
template<typename ...T> void init_capture_pack(T ...a) {
[x... = a]{}; // expected-error {{must appear before the name}}
[x = a...]{}; // expected-error {{must appear before the name}}
[...&x = a]{}; // expected-error {{must appear before the name}}
[...a]{}; // expected-error {{must appear after the name}}
[&...a]{}; // expected-error {{must appear after the name}}
[...&a]{}; // expected-error {{must appear after the name}}
}