template void fucn(T&& param) { ... } "param의 형식은 오른값이지만 param자체는 왼값이다" 위의 코드와 문장을 보고 무슨말이신지 이해가 안 가신다면 https://cjbworld.tistory.com/27를 보고 와주시면 감사하겠습니다. 전달 참조란? auto, template 같은 "형식 연역"에서 type deduction 발생시 자주사용하는 개념입니다. (형식 연역 : 아직은 정해지지 않았지만 컴파일 타임에 때려 맞추겠다) 오른값 참조와 비슷하게 생긴 요녀석은 &&를 같이 사용합니다. 위 코드애서 p1는 lvalue입니다. 컴파일러 경고에 따르면 rvalue참조에다가 lvalue를 넣을 수 없다고 하는군요. 왜냐하면 mp의 형식은 오른값 참조이기 때문에 오른값을..
이번글은 오른값 참조와 전달(보편)참조에 대한 글입니다. (전달 참조는 보편참조로도 불립니다) 오른값의 개념이 Mordern C++ C++11부터 생겼으며 해당개념의 등장으로 C++속도의 엄청난 치아를 가져다 주었습니다. 먼저 오른값이 무엇인지 알아보기 전에 "왼값"이 무엇인지 개념부터 살펴보도록 하겠습니다. 왼값(lvalue, l-value)은 단일식을 넘어서 계속 유지되는 개체이며, 오른값(rvalue, r-value)는 "전체 개체에서 - 왼값" 인 개체입니다. 즉 임시객체나, 상수 등이 포함됩니다. 기존의 참조는 '&'하나만 사용하고 오른값 참조의 경우 '&&'두개를 사용합니다. template void fucn(T&& param) { ... } "param의 형식은 오른값이지만 param자체는 ..
스콧 마이어스 형님의 Effective c++ 항목1~27까지 읽고 개인적으로 이해한 내용을 키워드를 중심으로 정리한 내용입니다 :) C++의 효과적인 방법 책의 구성 = 일반적인 설계전략 + C++만의 언어적 특징에 관련된 실전 세부사항 설계이슈 > 접근들 > "선택방법" "선택방법" 안목이 올라간다. 항목 1 : C++ 언어들의 연합체로 바라보는 안목은 필수 C++ : Multi Paradugm Progrmming Language (다중 패러다임 프로그래밍 언어) Procedual 기반 -> Obejct Oriented, Functional, Generic, Meta Progr..
이번글은 제가 Effective C++ 항목 24 부분을 공부한 내용과 컴파일 과정,(전처리, 어셈블리, 링킹), header gouard 에 대한 정리 글입니다. 컴파일 과정 먼저 C++ 의 컴파일 과정은 1. #include, #define과 같은 전처리기 메크로를 처리하는 Preprocessing 단계 (전처리 단계) 2. source code를 Assembly 명령어로 변환하는 compile단계. 3. Assembly 코드들을 실제 기계어로 이루어진 목적 코드(Object file)로 변환하는 어셈블 단계 4. 목적 코드들을 한데 모아서 하나의 실행파일로 만들어주는 Linking단계로 나누어 볼 수 있습니다. 이후 1~4를 수행하고 나면 실행파일이 나오게 됩니다. (윈도우 계열에서는 Portabl..
이번글은 C++의 다형성의 가상함수에 대한 글입니다. C++ 다형성에 대해서 전부는 다룰 수 없고 제가 이해한 내용중에서도 "정적 바인딩", "동적 바인딩", "가상 함수", "vftable", "순수 가상함수", "추상 클래스" 정도에 대해서만 다룰려고 합니다. 먼저 아래의 코드에서 class A { public: void Func() { cout
이번글은 C++의 복사 생성자와 임시객체에 대한 글입니다! #include using namespace std; class Person { private: int val; public: Person(int n) : val(n) { cout