C++ std::function 구현에 대해

오래전부터 std::function에 대해 꽤 궁금해왔다. 그 이유는 std::function<int(void)> 이런 형태이기 때문이다. 이를 어떻게 만들려면 어떻게 해야하나 맨첨에 생각할때는 다음과 같이 생각하였지만. 이는 내가 원하는 방식이 아니므로 넘어갔다. 1 2 3 4 5 6 template <typename T, typename… Args> class function{ } Colored by Color Scripter cs 비주얼 스튜디오에는 std::function코드는 다음과 같다. 1 2 3 4 더보기…

글쓴이 kudwafter,

리눅스에서 Redis 서버 설치하기

현재 개발하고 있는 게임 프레임워크에 NoSQL 라이브러리를 넣어보고 싶어 여러 NoSQL중 Redis를 선택했다.  설치할 서버는 현재 워드프레스 설치된 이 서버이다. 해당 서버는 아래에 보다싶이 In-memory-Database를 돌리기에는 매우 사양이 나쁘지만 장난감용으로 설치 하는데는 아무런 문제가 없다.   설치하는 방법에는 공식홈페이지에 나와있듯이 make하는 방식도 있는데 이 방법은 추후 관리가 힘들어 패키지 매니저로 설치한다.   더보기…

32비트와 64비트를 따로 제공하는 라이브러리를 통합시키기

제가 자주 쓰는 기법이긴한데 큰 도움이 될지 모르겠지만 한번 올려본다. 이 기법을 자주 쓰는 큰예로 mysql있는데 mysql Connector라이브러리을 보자면 32비트와 64비트가 따로 있다. 이 말은 프레임워크 제작시 32비트 64비트라이브러리를 지원하기위해 거의 99%동일한 소스파일을 프로젝트 풀더에 모든 버전의 라이브러리를 전부 넣어야 한다는 의미이다. 나는 아래와 같은 해결방법으로 이 문제를 해결한다.   더보기…

현재의 HTTPS의 차단과 앞으로의 차단방법으로?

현재 통신사가 일부분의 지역에 대해 불법 사이트를 차단하고 있다. 과거에는 HTTP 패킷의 일부 값만 보고 차단하는 방면에 HTTPS에는 기술적어려움때문에 차단을 안하고 있었다. 하지만 최근에 불법 웹툰으로 인해 한국 웹툰 시장이 위험하다보니 진짜 차단을 했다. HTTPS는 패킷의 내용이 암호화가 되어 있어 차단이 힘들다. 물론 SSL inspection 기술을 이용하면 패킷의 내용을 보면 더보기…

DirectXMath 라이브러리

다이렉트에서는 수학적 라이브러리를 따로 제공하고있다. 해당 라이브러리는 사용할려면 xnamath.h 추가했어야했지만 언제부터인지 현재 2017에서는 DirectXMath.h 로 바뀌었다. 이 라이브러리의 특징은 SSE2의 명령집합을 사용한다는 점이다. 이는 SIMD의 레지스터를 사용해서 여러개의 값을 한번에 처리 할수 있다는 의미이다. VS 2017에서는 따로 라이브러리 속성에 추가할 필요가 없이 바로 사용가능하다. 먼저 간단한 0행렬과 단위행렬을 출력하는 코드이다. 1 2 더보기…

글쓴이 kudwafter,

메타프로그래밍으로 소수구별과 응용

메타프로그래밍이란 흔히 컴파일타임에 프로그램이 돌았던거를 컴파일타임를 연산을 시켜 런타입 시간을 줄이는 기술이다. 이 기술은 템플릿이라는 거를 응용해서 만든 기술이다. 템플릿은 기본적으로 컴파일 타입때 타입체킹등 값을 미리 넣는 작업을 한다. 소수 구하는 함수는 다음과  같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 더보기…