반응형

개발/C++ 4

[C++] "[[no_unique_address]]" 란? C++20 attribute

💡[[no_unique_address]] 란 "[[no_unique_address]]"는 C++20부터 추가된 attribute로 "Empty Class 타입의 멤버를 가질 때 독립적인 주소를 가질 필요 없다."는 의미를 가진다. Empty Class를 멤버변수를 가지고 있어도 크기에 포함되지 않는다. 앞서 살펴 보았던 EBCO와 결과가 같은 것을 볼 수 있다. [C++] EBCO란? 💡EBCO란? Empty Base Class Optimization의 약어로, Empty Class로 부터 상속을 받는 경우 Base Class인 Empty Class의 크기는 0 btye로 최적화 된다는 말이다. * Empty Class에 대해서 알고 싶은 분은아래 링크.. jaegeun.tistory.com [C++] ..

개발/C++ 2021.10.08

[C++] EBCO란?

💡EBCO란? Empty Base Class Optimization의 약어로, Empty Class로 부터 상속을 받는 경우 Base Class인 Empty Class의 크기는 0 btye로 최적화 된다는 말이다. * Empty Class에 대해서 알고 싶은 분은아래 링크에서 확인해주세요. [C++] Empty Class란? 목표 Empty Class 특징에 대해서 알아보고, 어떠한 것들이 Empty Class를 말하는지 예시를 통해서 알아보자. Empty Class 특징 size가 1byte (non-static) member 변수가 없다. 가상 함수가 없다. 가상 상속을 하.. jaegeun.tistory.com 📝예시 코드(Example) 아래와 같이 Empty Class를 상속 받은 경우는 0 b..

개발/C++ 2021.10.08

[C++]Tag Dispatching(꼬리표 분배)이란?-Empty Class 이용한 예(example)

💡목표 Tag Dispatching이란 무엇인지 사용하는 이유가 무엇인지 알아보고, 왜 Empty Class를 사용해야하는지 예시(example)를 보며 알아보자. * Empty Class에 대해서 알고 싶은 분은아래 링크에서 확인해주세요. [C++] Empty Class란? 목표 Empty Class 특징에 대해서 알아보고, 어떠한 것들이 Empty Class를 말하는지 예시를 통해서 알아보자. Empty Class 특징 size가 1byte (non-static) member 변수가 없다. 가상 함수가 없다. 가상 상속을 하.. jaegeun.tistory.com 🔦Tag Dispatching(꼬리표 분배)이란? Empty Class를 꼬리표로 사용해서 함수 오버로딩을 하는 기술을 말한다. 📝Empt..

개발/C++ 2021.10.08

[C++] Empty Class란?

💡목표 Empty Class 특징에 대해서 알아보고, 어떠한 것들이 Empty Class를 말하는지 예시를 통해서 알아보자. 🔦Empty Class 특징 size가 1byte (non-static) member 변수가 없다. 가상 함수가 없다. 가상 상속을 하지 않는다. class또는 struct를 말하며, union은 Empty Class가 될 수 없다. 🔮Empty Class 확인 방법 type_traits 헤더 파일에 있는 is_empty_v를 통해서 Empty를 판별할 수있다. C++11과 17에서 사용법이 다르니 확인해서 사용해야한다. /* 헤더 */ #include /* C++11 */ std::is_empty_v::value /* C++17 */ std::is_empty_v 📝Empty Cl..

개발/C++ 2021.10.08
반응형