C++ 검색 결과, 6
std::tuple을 알아보자.
1. std::tuple 1.1. tuple이란 tuple은 pair를 확장한 C++ 라이브러리 클래스다. (이걸 뭐라고 부르지..?) pair는 두 개의 값을 저장할 수 있지만, tuple은 제한이 없다. 그리고 멤버에 접근할 수 있는 멤버함수가 없다. 접근할려면 std::get이라는 함수를 사용해야한다....음, 사실 몇일전에 tuple같은 것을 만들려고 애를 쓴 적이 있었다. 그떈, tuple이 있는지도 몰랐기 떄문에 직접 만들었었다. 어떻게 템플릿 떡칠을 해서 만들긴 했는데...가독성도 좋지않고, 단순히 같은 코드를 많이 늘어놓았을 뿐인 좋지않은 코드가 되어버렸다. 1.2. 예시 int main() { std::tuple tu = std::make_tupe(10, 10.2f); std::coutLambda (람다)
1. Lambda 한달간 서버 제작을 하면서 참 많이 사용한 것중에 하나가 이 Lambda다. 이거에 한 번 맛을 들이니 빠져나올 수가 없다...; 1.1. 함수 객체 람다를 만들기 이전에 함수 객체라는 것이 있다. 람다는 함수 객체의 확장판이라고 보면 될 것같다.그럼 이 함수 객체란 무엇이냐? 함수 객체는 객체를 마치 함수처럼 사용하기에 붙여진 이름이고 함수가 되기위한 조건중 하나는 괄호인데, (함수 호출 연산자 Function call operator)를 사용해 파라미터 목록을 받는 것이다. 어떤 객체를 함수처럼 사용한다는 것은 객체에 괄호를 붙여서 마치 겉보기엔 함수를 호출하는 것처럼 사용한다는 의미이다. 출처: http://vallista.tistory.com/entry/C-11-Lambda-Ex..함수 포인터로 함수명 변경하기 (완결)
1. 함수 포인터로 함수명 변경하기 (완성) 지난 번에 함수 포인터로 함수명을 변경하지 못했다. 그 원인은 클래스 내부 함수의 주소는 클래스 주소 + 클래스 내부 함수 주소 로 되어있기 때문이다.이후에 간간히 내 작업을 하면서 방법을 고민했다. 그러던중에 stl에서 지원하는 함수 포인터가 있다는 말을 들었다. 1.1. std::function C++11에서부터 지원하는 이것은 함수 포인터의 반환값이 명시적으로 같은 타입이 아니면 컴파일 에러 발생 (오히려 그게 더 안전할 수도 있긴하다.) 오로지 함수만 호환이 가능하다. (람다, 멤버함수 포인터, 람다함수등 호환불가능) 의 단점을 보완하고 반환값의 암시적 형변환이 가능하다. 멤버함수, 람다, 람다함수등 호환가능 의 장점을 지닌다. 1.2. std::bin..함수포인터로 함수명 변경하기
1. 함수포인터로 함수명 변경하기 1. 함수포인터로 함수명 변경하기 1.1. 동기 1.2. 계획 1.3. 문제점 2. 클래스 멤버 함수 포인터 2.1. (c.*funcArray[0])() 2.2. static_cast 1.1. 동기 클래스 A를 상속받은 B. A의 함수명을 바꾸고 싶다. 1.2. 계획 내가 원하는 함수의 이름으로 된 함수포인터로 함수명을 바꾼 것처럼 할 수 있지 않을까? 1.3. 문제점 그냥 함수포인터로 쓰면 되겠지하고... template class Container { public: virtual T* Push() { //... } protected: //.... }; class Object { public: //... }; class ObjectContainer :public Con..declspec에 대해
declspec에 대해 declspec에 대해 동기 계획 declspce란? 형식 정의 property 원형 C#의 Getter/Setter 프로퍼티 흉내내기 단점 참조한 포스트 dll의 Export와 Import dllimport의 작동원리 참조한 포스트 동기 C#의 Getter/Setter 프로퍼티를 C++에서 쓰고 싶어짐 define을 응용을 어떻게 해야될지를 고민 계획 1. 일단 내 머리로는 안되겠다. 도움이 될만한 사이트를 찾아서 검색! 2. 찾아보니 declspec와 property를 사용하면 손쉽게 만들 수 있다고 한다. 3. declspec와 property를 알아보자. declspce란? 형식 _declspec (extened -attrubute) declarator 정의 함수에 대한 정..VS Code로 C++ 디버깅
VS Code로 C++ 디버깅 동기 서버 만드는 도중에 테스트할 때마다 테스트 프로젝트를 키는게 귀찮다. gcc로 하는 것도 나쁘지는 않지만, 가벼운 IDE같은게 있으면 좋겠다. 그리고보니 VS Code로도 가능하겠다. 이용해보자. 계획 VS Code로 디버깅을 해보자. 난관 컴파일은 쉬운데, 디버깅에서 시간을 많이 잡아먹었다. json으로 gcc 쉘을 참조해서 하는 것같은데, 이 설정과 단계가 이해가 안갔다. 과정 컴파일 당연하지만, 우선 gcc를 설치해야한다. 우리는 자주 사용하는 Mingw를 이용할 것이다. Mingw로 gcc를 설치후 환경변수에 gcc를 입력한다. 정상적으로 gcc를 설치했다면, 우리는 vs code에 c++를 이용하기 위한 확장을 설치해야한다. 설치할 확장은 C/C++ 혹은 Co..Lowpoly
게임 서버 프로그래머 지망생