본문 바로가기

프로그래밍 언어 노트/C++ | Modern C++

(13)
[모던 C++] C++의 아버지 스트로스트눕이 해주는 모던 C++ 이야기 https://youtu.be/KIxDrQctILM
[Visual Studio] Template의 intellisence https://blogs.msdn.microsoft.com/vcblog/2018/06/26/template-intellisense/ 와씨 이게되네.. 원래 템플릿은 컴파일러가 코드를 만들어주기때문에오류도 링크에러로 뜨고, 인텔리센스가 그지같이 작동하기때문에 기본적으로 코드상에서 나오는 오류를 확인하기 너무 힘든데.. 모르는 사이에 Visual Studio C++에 킹갓기능이 추가되었다. 걍 템플릿 인수를 설정해서 그때 생기는 인텔리센스를 확인할수있다.
[C++] C++ 의 RTTI, typeid RTTI란 Run Time type info의 약자로타 언어에서의 리플랙션와 유사하다(기능이 많이 떨어진다) 타언어에서 자주쓰던 리플렉션을 C++에서 사용하고싶었는데type_info 구조체를 리턴해주는 typeid라는것이 있었다. 모던 C++은 아니고 원래 C++에 있던거 같은데 있는지도 모르고있었다 ㅜtypeinfo헤더를 포함해주어야한다. int a; double b; MyClass c; cout
[모던 C++] 킹갓 auto 와 decltype auto i = 10; decltype(i) j = 10;auto는 자동으로 형추론을 한다decltype은 declared type의약자로 ()안에 들어간 녀석의 형식을 나타낸다. templateauto Test(T1 a, T2 b)->decltype(a + b) { return a + b;}리턴으로 auto는 가능하나 후행 타입형식을 지정해주어야한다.템플릿의 경우 decltype을 이용하여 후행타입을 정해주면 기가막히게 사용할수있다.
[모던 C++] 스마트 포인터 memory헤더 파일에 정의되어있다. 0.auto_ptr삭제되었다. 1.unique_ptr특정 객체를 하나의 스마트포인터만 소유할수있도록 한다.복사가 불가능하고 move() 함수를 통하여 소유권을 이전 할 수 있다. unique_ptr u_ptr1(new int(10)); unique_ptr u_ptr2 = make_unique(10); //auto u_ptr3 = u_ptr1; //복사 불가 auto u_ptr4 = move(u_ptr2); //소유권 이전 u_ptr4.get(); //포인터 획득 u_ptr1.reset(); //reset으로 메모리 해제 u_ptr2.reset(); u_ptr4.reset(); const unique_ptr c_u_ptr1(new int(10)); //auto c_u_..