일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 인공지능
- Python
- programmers
- tensorflow
- 기능개발
- Linear_regression
- pwnable.kr
- logistic regression
- 텐서플로
- AI
- Algorithm
- leg
- Softmax classification
- Today
- Total
목록C++/Modern Effective C++ (3)
나혼자 공부장
Item 7: Distinguish between () and {} when creating objects. 객체 생성시 괄호와 중괄호를 구분하라 중괄호 초기화는 축소 변환, C++의 가장 성가신 구문 해석 등에서 자유롭다. int x(0); // 소괄호로 초기화 int y = 0; // 등호로 초기화 int z{0}; // 중괄호로 초기화 int z = {0}; // 기본적인 중괄호 초기화와 같음 우리는 객체 생성, 함수 정의 등등 여러 용도로 괄호를 쓴다. 그러나, C++은 함수의 정의로 해석이 가능한 것은 모두 함수의 정의로 해석한다. -> 괄호를 쓸 때 우리의 의도대로 동작하지 않을 수 있다. uniform initialization (균일한 초기화) 쉽게 말해 문제가 되는 상황에서 괄호를 중괄호..
Item 5: Prefer auto to explicit type declarations. 명시적 타입 선언보다는 auto를 선호하라 1. 왜 auto인가? 1) 이식성 또는 효율성 문제를 유발할 수 있는 타입 불일치가 발생하는 경우가 거의 없다. 2) 대체로 변수의 타입을 명시적으로 지정할 때보다 타자량이 적다. 단, 반드시 초기화해야함 template // b에서 e까지의 구간에 있는 모든 void dwim(It b, It e) // 요소에 대해 dwim("do what I mean") { // 알고리즘을 수행한다. for (; b != e; ++b) { typename std::iterator_traits::value_type currValue = *b; ... } } // auto를 사용하면 훨씬..
Item 1. Understand template type deduction. (템플릿 타입 추론 규칙을 숙지하라) 템플릿 타입 추론 도중에 참조 타입의 인수들은 단 하나의 경우를 제외하고 참조성이 무시된다. 그 예외는 밑에서 차차 설명하도록 하겠다. template void f(ParamType param);// ParamType : const T& f(expr); 위와 같이 선언되어 있다면, expr에 int 형의 변수를 넣었을 때 최종 ParamType은 const int&가 된다. 즉 템플릿이 추론한 타입은 expr 뿐만이 아닌, ParamType의 형태에도 의존하게 된다. 그 경우는 총 세 가지로 나뉜다. Case 1. ParamType이 포인터 혹은 참조타입이긴 하나, universal ref..