본문 바로가기

전체 글465

[C++] Variadic Templates (가변 템플릿) References ch4, C++ Template The Complete Guide Contents Variadic Templates Fold Expressions Application of Variadic Templates Variadic Class Templates and Variadic Expressions C++11부터 템플릿에서도 가변 템플릿 인자를 받을 수 있는 파라미터를 사용할 수 있습니다. 임의의 타입을 갖는 임의의 수의 인자를 전달할 때 사용할 수 있습니다. Variadic Templates 정해지지 않은 수의 템플릿 인자를 템플릿 파라미터로 정의할 수 있는데, 이와 같은 기능의 템플릿을 가변 템플릿(variadic templates)라고 부릅니다. Example 예를 들어, 서로 다른.. 2022. 12. 31.
[C++] Nontype Template Parameters References ch3, C++ Templates The Complete Guide Contents Nontype Class Template Parameters Nontype Function Template Parameters Restrictions for Nontype Template Parameters Template Parameter Type auto [C++] Function Templates [C++] Class Templates 함수와 클래스 템플릿에서 템플릿 파라미터가 반드시 타입일 필요는 없으며, 일반적인 값일 수도 있습니다. 타입 파라미터를 사용하는 템플릿을 사용한다면 코드가 실제로 사용되기 전까지 특정 세부 구현이 결정되지 않은 채로도 코드를 정의할 수 있습니다 (템플릿은 실제로 사.. 2022. 12. 30.
[C++] Class Templates References Ch2, C++ Templates The Complete Guide 2nd Contents Stack 클래스 템플릿 구현 및 사용, 부분 사용 Friends Specialization (특수화) Partial specialization Default class template arguments Type aliases Class template argument deduction Templatized aggregates [C++] Function Templates 지난 포스팅인 함수 템플릿에 이어서 이번 포스팅에서는 클래스 템플릿에 대해서 살펴보도록 하겠습니다. 클래스도 함수처럼 하나 이상의 타입으로 파라미터화될 수 있는데, 특정 타입의 요소를 관리하는 STL의 컨테이너 클래스가 이러한 .. 2022. 12. 29.
[C++] Function Templates References Ch 1, C++ Templates The Complete Guide 2nd Contents Basic of function templates Two-Phase Translation Template argument deduction Multiple template parameters Default template arguments Overloading function templates Function Templates 함수 템플릿은 다른 타입들에 대해 호출될 수 있는 기능적인 동작을 제공합니다. 즉, 함수 템플릿은 함수족(a family of functions)라고 표현할 수 있습니다. 아마 잘 아시다시피 템플릿 함수는 함수의 몇몇 요소의 타입이 결정되지 않았다는 것만을 제외하면 일반.. 2022. 12. 28.
[pytorch] 커스텀 연산 with autograd References Autograd mechanics (link) PyTorch API documentation (link) Extending PyTorch (link) 이번 포스팅에서는 파이토치의 autograd에 대해서 조금 더 세부적으로 살펴보고(주로 공식 홈페이지 내용을 참조하였습니다), 커스텀 확장하는 방법, 즉, 커스텀 op를 구현하는 방법에 알아보도록 하겠습니다. 다룰 내용은 사실 파이토치를 사용하기 위해서 꼭 알아야 하는 내용은 아닙니다만, 알아두면 파이토치의 동작에 대해 조금 더 깊게 이해할 수 있고 디버깅할 때도 유용할 수 있습니다. Autograd Mechanics How autograd encodes the history Developer Notes에서 autograd는 revers.. 2022. 12. 26.
[C++] 스트림 세부사항 (+ 스트림 버퍼, 스트림 성능 이슈) References C++ Standard Library 2nd Contents Input/Output Operators for User-Defined Types User-Defined Format Flags Connecting Input and Output Streams Stream Buffer Class Performance Issues [C++] 스트림(stream) 클래스 (1) [C++] 스트림(stream) 클래스 (2) [C++] 파일 & 문자열 스트림 위의 포스팅들을 통해 스트림 클래스에 대한 전반적인 내용에 대해서 살펴봤습니다. 이번 포스팅에서는 스트림에 대한 고급(?) 기법 및 세부사항에 대해서 살펴보도록 하겠습니다. Input/Output Operator for User-Defined.. 2022. 12. 19.
[C++] 파일 & 문자열 스트림 References C++ Standard Library 2nd Contents File Access (파일 스트림) Stream Classes for String (문자열 스트림) [C++] 스트림(stream) 클래스 (1) [C++] 스트림(stream) 클래스 (2) File Access 파일에 액세스할 때 스트림을 사용할 수 있습니다. 이번에는 파일 액세스에 대한 기능들에 대해서 살펴보도록 하겠습니다. File Stream Classes C++ 표준 라이브러리에서는 아래의 표준 특수화(standard specializations)가 정의되어 있습니다. ifstream과 wifstream 으로 특수화된 basic_ifstream 클래스 템플릿은 파일 읽기 액세스를 제공합니다 (input file .. 2022. 12. 16.
[C++] 스트림(stream) 클래스 (2) References C++ Standard Library 2nd Contents Standard Input/Output Functions, sentry 객체 Manipulators (조작자) Formatting (포맷) [C++] 스트림(stream) 클래스 (1) [C++] 스트림(stream) 클래스 (1) References C++ Standard Library 2nd Contents Background of I/O Streams Fundamental Stream Classes and Objects Standard Stream Operators > State of Streams I/O 형식을 위한 클래스는 C++ 표준 라이브러리에서 가장 중요한 부분이며, I/O junstar92.tistory.co.. 2022. 12. 15.
[C++] 스트림(stream) 클래스 (1) References C++ Standard Library 2nd Contents Background of I/O Streams Fundamental Stream Classes and Objects Standard Stream Operators > State of Streams I/O 형식을 위한 클래스는 C++ 표준 라이브러리에서 가장 중요한 부분이며, I/O가 없는 프로그램은 쓸모가 거의 없다고 봐도 됩니다. C++ 표준 라이브러리에서 제공하는 I/O 클래스는 파일이나 스크린, 키보드에 제한되지 않으며 임의의 데이터를 받고 임의의 '외부 표현장치(external representations)'에 액세스할 수 있도록 해주는 확장 가능한 프레임워크입니다. 이번 포스팅에서는 IOStream 라이브러리에서 중.. 2022. 12. 13.
[C++] 함수 객체 활용 References C++ Standard Library 2nd Contents Function Objects Predicates vs. Function Objects Predefined Function Objects and Binders Lambda [C++] Function Object (함수 객체) [C++] Lambda Expression (람다 표현식) (기존에 함수 객체와 람다에 대해 작성했던 포스팅(c++17,c++20 기준) 이번 포스팅에서 함수 객체(function object; functor)에 대해서 조금 더 자세히 알아보고, remove_if()와 for_each()에서 함수 객체를 어떻게 활용할 수 있는지도 살펴보겠습니다. 또한, 함수 객체와 관련된 바인더와 람다도 추가로 살펴보겠.. 2022. 12. 12.