llvm-project

Форк
0
/
cxx2a-designated-init.cpp 
25 строк · 804.0 Байт
1
// RUN: %clang_cc1 -std=c++98 -verify=cxx98 %s
2
// RUN: %clang_cc1 -std=c++11 -verify %s -Wno-c++2a-extensions
3
// RUN: %clang_cc1 -std=c++2a -verify %s
4

5
struct A {
6
  explicit A(int, int); // expected-note {{here}}
7
};
8

9
struct B {
10
  A a;
11
};
12

13
B b1 = {.a = {1, 2}}; // cxx98-error {{non-aggregate type 'A' cannot be initialized with an initializer list}}
14
// expected-error@-1 {{chosen constructor is explicit in copy-initialization}}
15
B b2 = {.a{1, 2}}; // cxx98-error {{expected '='}}
16

17
struct C {
18
  char x, y;
19
};
20
struct D {
21
  C c;
22
};
23

24
D d1 = {.c = {1, 2000}}; // cxx98-warning {{changes value}} expected-error {{narrow}} expected-warning {{changes value}} expected-note {{}}
25
D d2 = {.c{1, 2000}}; // cxx98-error {{expected '='}} expected-error {{narrow}} expected-warning {{changes value}} expected-note {{}}
26

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.