반응형 프로그래밍/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_tup.. 2023. 10. 3. C++11 주요 업데이트 : Deleted Functions, User-defined Literals, constexpr 🔖 INDEX Deleted FunctionsC++11에서는 함수를 명시적으로 삭제할 수 있는 기능이 도입되었습니다. 함수를 삭제하는 것은 해당 함수가 사용되는 것을 방지하기 위한 것입니다. 함수를 삭제하면 해당 함수에 대한 모든 호출은 컴파일 시간에 오류로 간주됩니다.이 기능은 클래스 설계에서 특히 유용하며, 개발자가 해당 함수가 사용되지 않도록 의도적으로 선택할 수 있습니다. 이전의 C++ 버전에서는 이를 달성하기 위해 함수를 private으로 만들거나 구현을 제공하지 않았지만, C++11에서는 delete 키워드를 사용하여 이를 명시적으로 표현할 수 있습니다. 사용 예제복사 생성자 및 대입 연산자 삭제클래스가 복사되는 것을 원하지 않는 경우, 복사 생성자와 대입 연산자를 삭제할 수 있습니다.c.. 2023. 10. 3. C++11 주요 업데이트 : std::regex, Type Traits, Uniform Initialization 🔖 INDEX 정규 표현식 라이브러리: std::regexC++11에서 도입된 std::regex 라이브러리는 정규 표현식의 파싱, 검색, 그리고 문자열 조작을 위한 강력한 도구들을 제공합니다. 아래에 이 라이브러리의 주요 내용을 요약하여 설명하겠습니다. 주요 컴포넌트std::regex: 정규 표현식 객체입니다. 이 객체는 정규 표현식 패턴을 나타냅니다.std::smatch: 문자열 검색의 결과로 반환되는 match 객체입니다.std::regex_iterator: 주어진 문자열에서 정규 표현식과 일치하는 부분을 반복적으로 검색하는 반복자입니다.std::regex_token_iterator: 반복자와 유사하나, 정규 표현식의 서브매치나 토큰을 반복적으로 검색합니다. 주요 함수std::regex_mat.. 2023. 10. 3. C++11 주요 업데이트 : std::forward_list, std::unordered_map, std::unordered_set 🔖 INDEX std::forward_listC++11에서 도입된 std::forward_list는 STL(Standard Template Library)의 일부로 제공되는 단방향 연결 리스트 구현입니다. 이 컨테이너는 공간 효율성을 위해 이전 요소로의 역방향 반복자나 뒤로 이동하는 연산을 제공하지 않는 점이 특징입니다. 기본적인 특징단방향 연결 리스트: 각 요소는 다음 요소를 가리키는 링크만 갖고 있습니다.효율적인 메모리 사용: 이중 연결 리스트인 std::list와 달리, std::forward_list는 앞쪽 링크만을 유지하기 때문에 메모리 사용이 더 효율적입니다.빠른 삽입 및 삭제: 연결 리스트 특성상, 알고 있는 위치에서의 삽입 및 삭제 연산이 상수 시간에 이루어집니다. 주요 멤버 함수em.. 2023. 10. 3. C++11 주요 업데이트 : override, final, std::thread, std::array 🔖 INDEX override와 finalC++11에서는 클래스 상속과 관련하여 두 가지 새로운 키워드, override와 final을 도입했습니다. 이 두 키워드는 코드의 명시성과 안정성을 높이기 위해 클래스 상속과 오버라이드 시 사용됩니다. 이러한 키워드를 통해 프로그래머의 의도를 더욱 명확하게 표현할 수 있게 되었습니다. override개념: override 키워드는 파생 클래스에서 기본 클래스의 가상 함수를 오버라이드하고 있다는 것을 명시적으로 나타내기 위해 사용됩니다.장점: 이 키워드를 사용하면, 실수로 함수를 오버라이드하지 않은 경우(예: 함수의 서명이 일치하지 않을 때) 컴파일러가 경고 혹은 오류를 발생시켜 줍니다.class Base {public: virtual void func.. 2023. 9. 30. 이전 1 2 3 다음 반응형