예외 명세가 가치가 있는가? 이 질문을 전제로 생각한다면, .. 많은 생각들을 할 수 있을 것이다. 1 ) 예외 명세를 위반하면 어떤 일이 생길까? C++ 기능에 깔린 기본적인 근거를 논하라. 내가 알고 있는 것은 예외 명세를 위반시키면, unexpected 핸들러가 호출 되어지게 된다. 인데, MSVC2005 에서 테스트를 해봐도 작동 되지 않는다. 테스트 코드 #include class A { public: void Darw() throw( int ) { throw A(); } }; void f() { std::cout f(); return 0; } 4 ) 예외 명세는 무엇이고, 하는 일은 무엇인가? 엄밀하게 서술하라. 예외 명세는 "무슨 무슨 예외를 던지겠다" 라고 정하는 것이고, 하는 일은, "지..
분류 전체보기 검색 결과
효원이가 물어 봤을 때, 정확하게 몰랐었다가, 동우가 소개해준 책의 첫번재 페이지에 설명 되어 있는 것을 보고, 자세히 보게 되었다가, 정리하게 된다. big O 표기법은, 전산학자들이 어떤 하나의 함수의 복잡도를 정의하는데 즐겨 사용하는 표기법이다. 표기는 다음 처럼 한다. O(함수); 식으로 표현 한다. 괄호안의 함수는 (n) 또는 (c) 로 표기하는데, c는 상수를 뜻한다. (즉 1, 2, 3, 4 등..) 함수의 복잡도란 무엇일까? 복잡도를 해결하기 위해서, n 번의 연산을 한다면, 그것은 n 번의 복잡도를 가졌다고 말할 수 있고, 표기하면, O(n) 으로 표기 된다. 어떤 일을 처리함에 있어, 그 처리의 복잡도를 뜻한다. 라고 해석 해도 될 듯 싶다. 예를 들자면, 내가 상자 1000개를 가지고..
예외 안전성을 추구할 가치가 있는가? 어떻게 이런 질문을 할 수 있을까 한다. "추구할 가치가 있는가?" .. 나는 단연코 추구할 가치가 있다고 생각한다. 여러가지가 있지만, 에러가 한번 터졌다 하면, 어디서 부터 봐야 하는지 난감할 때, 이 때문에 나는 단연코 추구해야 한다고 생각한다. 어느정도 알고 있을 때의 코딩과 그냥 막무가네로 찾아야 하는 코딩은 분명 차이가 있기 때문이다. 이번 항목은 "추구할 가치가 있는가?" 로 생각하는 논쟁에 대해서 정리하는 항목이라 할 수 있겠다. 1 ) Abrahams의 예외 안전성 보장들을 강략히 정의하라. 기본 보장(basic guarantee) : 자원 누수는 일어나지 않으며, 연산 실패된 객체의 파괴가 가능하다는 보장, : 쉽게 말해서 RAII 를 들 수 있겠다..
제일 싫어하는 try 와 catch 이다. 사용해 본적이 별로 없어서인지 친근하지 않을 뿐더로, 알아야 할 것이 산떠미 처럼 쌓여(.. C++ 이 원래 그렇지만 )있으니, 손 댈 때도 조심해야 할 것이다. 1 ) try 블록 이란? 코드를 보자. #include #include int main( void ) { bool some_condition = true; bool some_other_condition = true; try { if( some_condition ) { throw std::string( "this is a string" ); } else if( some_other_condition ) { throw 42; } } catch( const std::string& rError ) { // s..
이번 항목은 항목 9에서 더 생각해 봐야 할 것 들을 이번 항목에서 다룬다. 이번 항목에선 "export의 한계"가 있음에도 불과하고, 왜 표준에 들어갔으며, 프로그래머에게 어떤 영향을 미치는지 알아 본다. 1 ) export가 현재 현태로 C++ 표준에 도입된 것은 언제이며, 처음으로 구현된 적은 언제인가? 템플릿에 관한 역사 1988년 10월, 비야네 스트롭스트룹이 초기 C++ 템플릿 설계를 발표 1990년, 마거릿 엘리스(Margaret Ellis)와 비야네 스트롭스트룹은 "The Annotated C++ Reference Manual"을 출판하였고, 거기에 템플릿의 전체 명세와 설명을 포함시켰다. 1994년, Stepanov가 STL을 위원회에 제시했다. 1995년, STL은 표준안으로 채용 되었..
"export의 한계"라 표현한 것 보면, 무엇인가 기대한것에 미치지 못한다는 의미를 갖고 있다고 추측이 된다. 그런데 이 export 는 무슨 export 일까? 바로 템플릿의 export 이다. .. export 는 템플릿 말고, 몇개 더 있는거 같던데(라이브러리 만들때, 아니였나 만들어 본적이 없어서..), 이번 항목은 "템플릿의 export 함계"라고 말해도 좋을 듯 싶다. 질문으로 논쟁을 유도해 보자. 1 ) 템플릿의 "포함 모형"이 뜻하는 바는 무엇인가? ... 부스트의 hpp 같은 녀석들이랄까? 헤더 파일에 정의도 다 포함된 녀석들을 뜻한다. 대표적인 예로 stl 을 들 수 있겠다. 2 ) 템플릿의 "분리 모형"이 뜻하는 바는 무엇인가? .h 와 .cpp 로 헤더파일과 정의 부분을 나누어서,..
최근댓글