type traits로 is_class 구현하기

C++에는 type traits라는게 있다. 이는 컴파일 타입에 타입의 traits을 알기위해 사용한다. 간단한 예로 같은 타입인지 구하기 위해서는 이렇게 작성했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 struct true_type { enum {value  = true}; }; struct false_type { enum { value = false }; }; template<typename T, typename U> 더보기…

Nginx 웹서버 http을 https redirect 하기

유저가 Http로 접근시 301에러로 https로 바꾸어줄수 있다. 1 2 3 4 5 6 server {         listen 80 default_server;         listen [::]:80 default_server;         server_name kudwafter.moe;         return 301 https://$server_name$request_uri; } Colored by Color Scripter cs nginx 설정은 위와같이 만들어주고 웹서버를 재시작해준다. 위에 설정파일은 kudwafter.moe로 들어오는 80번 폰트는 301에러를 주어 https로바꾸어주는 작업을 하는것이다. 301에러는 해당 URL은 이미 없어졌고 다른 URL(https)이 생겼다는 거를 더보기…

글쓴이 kudwafter,

스택을 이용한 미로찾기

  스택을 이용한 미로찾기입니다. 원리는 매우 간단합니다. 일단 가본 길을 전부 스택에 쌓고 갈수 있는 공간이 없으면 스택의 데이터를 POP하고 위에 작업을 계속 진행합니다. 길이냐 벽이냐는 원핫코딩으로 코딩하였습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 더보기…

글쓴이 kudwafter,

C++ Template Template parameters

제목을 보면 알다시피 C++에서의 template 이 아닌 template 이란 단어가 하나 더 붙었다. 이 template template 이란 말그대로 template 안에 또 template 이 있다는 의미이다. 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 더보기…

글쓴이 kudwafter,

[밸런싱 트리] AVL Tree

밸런싱 트리에서 가장 간단한 AVL트리이다. 이 트리는 밸런싱은 회전으로 구한다. 적당한 그림이 없어 위키피디아에서 가져왔다. 위의 그림에서 보듯이 오른쪽으로 편향되어있어서 RR트리라고 한다. 반대로 왼쪽이면 LL이라고 한다. 이런 경우 밸런싱하기 위해서는 RR트리인경우 오른쪽으로 편향되어있으니 왼쪽으로 회전시켜 밸런싱을 구한다. LL경우인경우는 RR트리를 반대로 회전 하면된다. 위의 그림은 오른쪽하고 왼쪽으로 편향되어 있는걸 볼수 있다. 더보기…

Nginx에 Letsencrypt SSL 인증서 적용하기

Letsencrypt는 무료로 인증가능한 SSL인증서입니다. 무료라는 점 때문에 3개월정도만 SSL을 지원해 줍니다. 그치만 따로 설정을 해주면 3개월마다 자동인증을 되어 매번 귀잖게 3개월마다 재인증을 할 필요가 없습니다. https://certbot.eff.org/ Letsencrypt 인증서 설명은 위에 링크를 참조 했습니다. 터미널로 들어가신후에 아래와 같이 터미널에 입력해주시기바랍니다. 1 2 wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto cs 이는 터미널에서 설치파일을 다운받고 권한 설정하는 더보기…

글쓴이 kudwafter,

C++ 복사 연산자에 template 사용하기

퍼펙트 포워딩을 하기위해 복사연산자에 template을 사용할려고 아래와 같은 코드가 나옵니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class C { public:     C() {} template <typename T>     C(T const&)     { std::cout << “tmpl copy constructor\n”;     } }; int main() {     C a;     C b{ a }; } Colored by Color Scripter 더보기…

글쓴이 kudwafter,