C++ - Argument Dependent Lookup

출처 C++ 언어가 가진 화려한 기구의 하나로 ADL(Argument Dependent Lookup)라는 것이 있다. 번역하면 “실 매개 변수 의존 이름 검색”으로 읽고, 글씨처럼 “실 매개 변수”에 의존하는 “이름 검색”이 된다. ADL의 동작 코드를 보면서 차례로 이해해 보자. int main() { func(); return...
더 읽기

C++ - 배열 참조

출처 배열 참조는 배열보다 안전한 속도 면에서 유리하다 !!! int *a[1]; // (1) int (*a)[1]; // (2) int &a[1]; // (3) int (&a)[1]; // (4) 이 4개의 차이점은 ? (1)은 모두 알다시피 int의 포인터의 배열이다. (2) int 배열의 포인터이다. (3)은...
더 읽기

C++ - ref-qualifier 유무로 오버로드 할 수는 없다

출처 C++11에는 implicit object parameter(*this를 참조하는 객체)를 lvalue 참조로 받거나 rvalue 참조로 받는지를 지정하는 기능이 있다. 이를 참고 참고 수식자(ref-qualifier)라고 한다. struct S { // void S::f(void) & void f() & ; // void S::f(void) && void f() && ;...
더 읽기

C++ - Virtual 전파

이 Box 클래스를 public 계승해도 안전할까? class Box : public Object { public: Box(); ~Box(); }; 정답은…이 정보만으로는 뭐라고 말할 수 없다 이다. 얼핏 보면 안 되다고 느끼는 사람도 많을 걸로 생각한다.특히 c++를 좀 알게 되었을 때의 사람은 우선 소멸자에...
더 읽기

C++ - PLAIN OLD DATA

출처 C++의 POD(Plain Old Data)는 C언어의 데이터와 호환을 가진 데이터 구조이다. memcpy로 데이터를 복사하거나 하지만 그것은 본질적인 것이 아니지만 어쨌든 POD의 가장 큰 의미는 C 언어의 데이터와 bit 수준으로 완전히 호환을 갖는다는 것이다. C++과 C 언어의 프로그램이 있을 경우 교환하는...
더 읽기