[모던C++입문] 3.7 템플릿이 아닌 템플릿 매개변수
- 📕 Book/모던C++입문
- 2021. 7. 13.
3.7 타입이 아닌 템플릿 매개변수
- 값도 템플릿 인자가 될 수 있다.
- 정수, bool, 토인터 타입만 가능
template <typename T, int Size>
class fsize_vector
{
using self = fsize_vector;
public:
using value_type= T;
const static int my_size = Size;
fsize_vector(int s= Size) { assert(s == Size); }
self& operator=(const self& that)
{
std::copy(that.data, that.data + Size, data);
return *this;
}
self operator+(const self& that) const
{
self sum;
for (int i= 0; i < my_size; ++i)
sum[i]= data[i] + that[i];
return sum;
}
private:
T data[my_size];
};
fsize_vector<float, 3> v;
fsize_vector<float, 4> w;
v = w; //오류 : 동일한 사이즈의 벡터끼리만 가능하다
반응형