Notice
Recent Posts
Recent Comments
NeuroWhAI의 잡블로그
[C++] Designated initializers 본문
T object = { .designator = arg1 , .designator { arg2 } ... }; T object { .designator = arg1 , .designator { arg2 } ... };
#include <iostream>
using namespace std;
struct Foo
{
int a, b;
float c = 42.0f;
};
int main()
{
cout << "Designated initializers" << endl;
Foo f1{ 1, 2, 3.4f };
Foo f2 = { 1, 2, 3.4f };
Foo f3{ .a = 1, .b = 2, .c = 3.4f };
Foo f4 = { .a = 1, .b = 2, .c = 3.4f };
Foo f5 = {
.a = 1,
.b = 2,
.c = 3.4f,
};
Foo f6 = {
.a = 1,
.b = f6.a + f6.a,
};
return 0;
}
C++20부터 지원하는 기능이라고 적혀있는데 C++11 이하를 빼면 컴파일이 잘 됩니다. 무엇??
이런 글이 있던데 C에서는 됬지만 C++에선 굳이 필요하지 않으므로 뺐다는 듯 합니다.
그러다가 다시 필요해졌는지 추가했다는 것?
생성자를 쓰지 직접 이렇게 초기화할 일이 없긴 하겠네요. 있어도 이상하고...
'개발 및 공부 > 언어' 카테고리의 다른 글
[Rust] enum 사용시 주의 사항 (0) | 2018.12.06 |
---|---|
[Rust] Lifetime의 한계 (0) | 2018.11.18 |
[C++] get/return_temporary_buffer, uninitialized_*에 대하여 (0) | 2018.11.14 |
[Rust] Send와 Sync (0) | 2018.11.12 |
[C/C++] a[i] == i[a] ??? (0) | 2018.11.06 |
Comments