본문 바로가기
반응형

프로그래밍/C++14

C++ Structured Exception Handling (구조화된 예외 처리) 🔖 INDEX 기본 설명 구조화된 예외 처리는 코드 내에서 예외적인 상황을 안전하고 효과적으로 처리하기 위한 프로그래밍 패러다임입니다. C++에서의 구조화된 예외 처리는 주로 try, catch, throw 키워드와 함께 사용되는 관련 메커니즘을 기반으로 합니다. throw 기능: 프로그램의 실행 중 예외적인 상황을 발견할 때 예외를 발생(던지기)시키는 데 사용됩니다. 사용: throw 키워드 뒤에는 발생시킬 예외 객체를 지정합니다. throw std::runtime_error("This is an error message."); try 기능: 예외가 발생할 가능성이 있는 코드 블록을 감쌉니다. 사용: try 블록 내에서 발생하는 모든 예외는 해당 블록 뒤에 오는 catch 블록에서 처리됩니다. try .. 2023. 10. 3.
C++11 주요 업데이트 : std::tuple, Variadic Templates, std::bind, std::function 🔖 INDEX std::tuple 튜플(std::tuple)은 C++11에서 도입된 컨테이너 유형으로, 서로 다른 타입의 여러 원소를 하나의 단위로 묶을 수 있습니다. 이는 함수에서 여러 값을 반환하거나, 여러 값을 단일 객체로 묶어 전달할 때 유용합니다. 주요 특징 다양한 타입의 값: 튜플은 서로 다른 타입의 여러 원소를 저장할 수 있습니다. 고정 크기: 튜플의 크기는 생성 시에 결정되며, 나중에 변경할 수 없습니다. 값 접근: std::get(tuple) 함수나 구조화된 바인딩을 사용하여 튜플의 원소에 접근할 수 있습니다. 사용 예제 튜플 생성 및 값 할당 #include int main() { std::tuple t1(1, 3.14, "Hello"); auto t2 = std::make_tuple(.. 2023. 10. 3.
C++11 주요 업데이트 : Deleted Functions, User-defined Literals, constexpr 🔖 INDEX Deleted Functions C++11에서는 함수를 명시적으로 삭제할 수 있는 기능이 도입되었습니다. 함수를 삭제하는 것은 해당 함수가 사용되는 것을 방지하기 위한 것입니다. 함수를 삭제하면 해당 함수에 대한 모든 호출은 컴파일 시간에 오류로 간주됩니다. 이 기능은 클래스 설계에서 특히 유용하며, 개발자가 해당 함수가 사용되지 않도록 의도적으로 선택할 수 있습니다. 이전의 C++ 버전에서는 이를 달성하기 위해 함수를 private으로 만들거나 구현을 제공하지 않았지만, C++11에서는 delete 키워드를 사용하여 이를 명시적으로 표현할 수 있습니다. 사용 예제 복사 생성자 및 대입 연산자 삭제 클래스가 복사되는 것을 원하지 않는 경우, 복사 생성자와 대입 연산자를 삭제할 수 있습니다... 2023. 10. 3.
C++11 주요 업데이트 : std::regex, Type Traits, Uniform Initialization 🔖 INDEX 정규 표현식 라이브러리: std::regex C++11에서 도입된 std::regex 라이브러리는 정규 표현식의 파싱, 검색, 그리고 문자열 조작을 위한 강력한 도구들을 제공합니다. 아래에 이 라이브러리의 주요 내용을 요약하여 설명하겠습니다. 주요 컴포넌트 std::regex: 정규 표현식 객체입니다. 이 객체는 정규 표현식 패턴을 나타냅니다. std::smatch: 문자열 검색의 결과로 반환되는 match 객체입니다. std::regex_iterator: 주어진 문자열에서 정규 표현식과 일치하는 부분을 반복적으로 검색하는 반복자입니다. std::regex_token_iterator: 반복자와 유사하나, 정규 표현식의 서브매치나 토큰을 반복적으로 검색합니다. 주요 함수 std::regex_.. 2023. 10. 3.
C++11 주요 업데이트 : std::forward_list, std::unordered_map, std::unordered_set 🔖 INDEX std::forward_list C++11에서 도입된 std::forward_list는 STL(Standard Template Library)의 일부로 제공되는 단방향 연결 리스트 구현입니다. 이 컨테이너는 공간 효율성을 위해 이전 요소로의 역방향 반복자나 뒤로 이동하는 연산을 제공하지 않는 점이 특징입니다. 기본적인 특징 단방향 연결 리스트: 각 요소는 다음 요소를 가리키는 링크만 갖고 있습니다. 효율적인 메모리 사용: 이중 연결 리스트인 std::list와 달리, std::forward_list는 앞쪽 링크만을 유지하기 때문에 메모리 사용이 더 효율적입니다. 빠른 삽입 및 삭제: 연결 리스트 특성상, 알고 있는 위치에서의 삽입 및 삭제 연산이 상수 시간에 이루어집니다. 주요 멤버 함수 .. 2023. 10. 3.
C++11 주요 업데이트 : override, final, std::thread, std::array 🔖 INDEX override와 final C++11에서는 클래스 상속과 관련하여 두 가지 새로운 키워드, override와 final을 도입했습니다. 이 두 키워드는 코드의 명시성과 안정성을 높이기 위해 클래스 상속과 오버라이드 시 사용됩니다. 이러한 키워드를 통해 프로그래머의 의도를 더욱 명확하게 표현할 수 있게 되었습니다. override 개념: override 키워드는 파생 클래스에서 기본 클래스의 가상 함수를 오버라이드하고 있다는 것을 명시적으로 나타내기 위해 사용됩니다. 장점: 이 키워드를 사용하면, 실수로 함수를 오버라이드하지 않은 경우(예: 함수의 서명이 일치하지 않을 때) 컴파일러가 경고 혹은 오류를 발생시켜 줍니다. class Base { public: virtual void func(.. 2023. 9. 30.
반응형