본문 바로가기

Programming123

gcc 4.3 포팅시 유의할 점 원문 : http://gcc.gnu.org/gcc-4.3/porting_to.html 기존 std library가 계속 누적되서 개발되다보니, 그에 따른 중 아래의 표를 보고 참고해서 각각 맞는 녀석들을 골라써야 한다. 이것 이외에도 template 관련 사항이나 함수의 인자관련 에러가 추가되었는데 위의 원문을 참고 바란다. If missingThen include this header find, for_each, sort ostream_iterator, istream_iterator auto_ptr typeid isalnum, toupper INT_MIN, INT_MAX, RAND_MAX printf atoi, free, rand, exit EXIT_FAILURE strcmp, strdup, strcp.. 2009. 9. 29.
glibc version checking 3가지 방법이 있으니 취향대로 선택하세요 $ getconf GNU_LIBC_VERSION $ rpm -q glibc $ ls /lib/libc* 후에 육안으로 확인 2009. 9. 29.
해깔리는 STL resize() 와 reserve()에 대한 고찰 상황 : 할당하고자 하는 메모리영역은 현재 잡힌 것보다 크다. resize(n) : 메모리를 할당. 오브젝트 하나를 생성한 후, 크기가 일치할때까지 오브젝트를 계속 삽입힌다. reserve(n) : 메모리를 할당. 끝 size() : 컨테이너 내부의 실제 오브젝트 갯수 capacity() : 할당된 메모리 총 영역 ( 컨테이너에 들어갈 수 있는 오브젝트의 총 갯수 ) 아래의 소스를 보자. #include #include using namespace std; class Test { public: int val_; static int t; Test() : val_(0) { cout 2009. 9. 21.
operator== issue in inheritance 클래스 A 와 B가 있는데 A 는 B를 상속한다. 만약 클래스 A에 operator== 를 구현하고자 한다면 상속된 B의 멤버 변수에 대한 비교도 포함을 시켜야 한다. 한가지 방법으로는 클래스 A안에서 B의 멤버변수들을 모두 비교해볼수도 있지만, 이는 좀 껄쩍지근하다. 게다가 B의 멤버변수가 많아지면, 타이프하기 구찮아지고 빼먹을 확률도 높다. 두번째 방법으로는 ParentClass::operator== 를 직접 호출하는게 있다. 우연히 발견한건데 이미 많은 사람들이 알고 있을지도 ... ㅋㅋ 아래의 코드를 보면 알수 있다. #include using std::cout; using std::endl; class Parent { public: bool operator== (const Parent& obj).. 2009. 9. 10.