::public/C++63 (c++17) 가변 길이 템플릿(variadic template)... 함수나 클래스 템플릿이 n 개수의 템플릿 파라미터를 받을 수 있도록 해주는 기능C++11에서 추가된 기능으로, “...”(ellipsis) 문법을 사용"templete" 이 부분이 가변 길이 템플릿"Args... args" 이 부분이 파라미터 팩 Fold 형식 (Fold expression)C++17에서 추가된 기능으로, 파라미터 팩에 대해 산술, 논리 연산 등을 순차적으로 적용할 때 간결하게 표현하는 방법.“인자들을 하나씩 꺼내서, 어떤 연산을 적용해 전부 하나의 결과로 합치는” 식"(args + ...)" 이 부분이 Fold 형식 내부적으로 ((1 + 2) + 3) + 4와 같이 전개됨. 초기값이 있는 Fold내부적으로 (initial + ... + args)는 ((10 + 1) + 2) + 3.. 2025. 1. 24. explicit 자신이 원하지 않은 형변환이 일어나지 않도록 제한하는 키워드 class A { public: int num = 1; public: // 1. non explicit A(int n) : num(n) {}; // 2. explicit explicit A(int n) : num(n) {}; void printA(A a) { cout 2023. 7. 6. const 위치에 따른 의미 메서드 뒤에 const 위치 ; 해당 메서드가 속해있는 클래스의 멤버 변수를 바꾸지 않겠다는 의미 class A { public: int num = 1; public: int getNum() const { int a = 1; a++;// 지역 변수의 변경은 가능 num++;// 클래스의 멤버 변수의 변경은 불가능 return num; } }; 함수의 매개 변수에 const 위치 ; 해당 매개 변수를 함수 내에서 바꾸지 않겠다는 의미 int add(const int a, const int b) { return a + b;// 단순 a와 b를 합한 결과를 반환하기 때문에 굳이 const 의미 없음 } int a = 1; void increase(int b) { b++; cout 2023. 7. 5. *개념을 항상 생각하고 정리하자! 보호되어 있는 글 입니다. 2023. 6. 22. (c++11) lambda lambda, 람다 표현식 / 람다 함수. *이름이 없어서 익명 함수라고도 불린다. 코드를 깔끔하게 만들 수 있다. [캡처 블록] (매개변수) -> 리턴 타입 { 본문 } 캡처 블록(생략 가능) : 스코프에 있는 변수를 캡처하는 방식을 지정, 본문에서 그 변수에 접근할 수 있게 만든다. [&] _ 외부의 모든 변수들을 레퍼런스 형태로 캡처 [&var] _ 외부에 정의되어 있는 변수를 레퍼런스 형태로 캡처 [=] _ 외부의 모든 변수를 복사한 값으로 캡처 [=var] _ 외부의 정의되어 있는 변수를 복사한 값으로 캡처 [this] _ 현제 객체를 캡처 [*this] _ 현제 객체의 복사본을 캡처 매개변수(생략 가능) : 람다 표현식에 대한 매개변수 록록. 리턴 타입(생략 가능) : 람다 표현식의 리턴 타입.. 2023. 2. 8. (C++11) std::move 객체 a 를 b,c 로 복사할 때, a 가 필요없는 경우가 보장되면 복사과정에 대한 비용을 줄일 수 있다. string a = "std::move"; cout 2023. 1. 31. 이전 1 2 3 4 ··· 11 다음