이 내용은 절대적인 룰 이 아닌 권장사항이나 가급적 지켜짐이 좋다고 판단되는 부분을 다룹니다 포인터 delete 후 nullptr 대입 포인터를 사용 할땐 항시 nullptr 상태 인지 체크 한다 이건 따로 기술할 의미도 없다 그때에 nullptr 인 상태를 체크 하기위해서는 포인터 변수는 항상 사용후 삭제시 쓰레기주소가 남아있지 않도록 nullptr (NULL,0 보다는 nullptr) 을 대입하자 하물며 함수 스코프 […]
Tag: c++
c++ 배열보다 std::array 를 쓰자
일반적인 정적 사이즈를 선언할 경우에도 배열보다는 std::array 를 사용하는 편이 좀더 장점이 있다 c style 고정 사이즈 배열c++11 이후 std::array c style 고정 array 보다 더 많은걸 쉽게 할 수 있다stl 스타일 iterator 를 사용 할 수도있고algorithm 을 바로 적용해 sort 도 할 수 있으며당연히 관련 함수를 사용할 수 있고배열의 사이즈를 별도로 기록해두고 사용하지 않아도 […]
static_cast vs c-style cast c++ 스타일 캐스팅을 써야 해
c++ 에서는 가급적 c style cast 보다 static_castdynamic_castreinterpret_cast const_cast사용하자 이중 일단 static_cast 를 써야 하는 이유를 살펴보자 위 코드는int 형 변수 하나 char 형 변수 하나를서로 반대의 pointer 로 casting 할 경우에 대해서 테스트 한다 실제로 아래 두가지 케이스의 경우 c++ style 의 static_cast 를 사용 하며 서로 casting 될수없는 혹은 캐스팅 될수 있더라도 문제될 […]
c++(and another) compiler on website
gcc 버전별 컴파일 가능한 modern c++ feature 확인하기 곧 바뀔 현실이지만 실제 현업에서 많이 장애물이기도 하면서 현재도 많이 남아 있는 centos 에 대한 이슈로 gcc 빌드가 몇몇 회사의 몇몇 솔루션의 경우 c++ 11 의 feature 조차 제대로 사용할 수 없는 (하지만 일부는 또 사용가능한) 케이스가 많다 그때 그때 확인하거나 알고 싶을 때 유용한 사이트가 있다 […]
프로그래밍 언어별 Hello, World!
std::vector::emplace_back (modern c++)
list,deque,vector 에 사용가능한 멤버 함수 c++11 에 처음 추가 되었으며 가변인자 템플릿을 인자로 받는다인자로는 vector 의 instance / class 인 경우 생성자를 넣어 주어야 한다emplace_back 의 경우 일반 push_back 과 다르게 vector 로 복사되는 흐름이 아닌vector 에 element 가 생기는 동시에 초기값을 넣어주게되어 복사가 일어나거나 임시객체가 생성되지 않아 좀더 빠른 코드 c++17 이후의 return value […]
C++ 최적화 : 커트 건서로스 (옥찬호)
당연하지만 당연하지 않았던 C++ 최적화에 대해 다룬 책을 읽어보기 시작한다 이런 책의 경우 하나하나의 내용들이 주요하고 기록, 요약 해두는게 의미있다고 생각되 두서 없이 그때 그때 기분에따라 블로그에 기록 해 두려 한다 1. 최적화란 1.5.1 더 좋은 컴파일러를 더 잘 사용하세요 1.5.2 더 좋은 알고리즘을 사용하세요 1.5.3 더 좋은 라이브러리를 사용하세요 1.5.4 메모리 할당과 복사 줄이기 […]