목록Study/C\C++ (14)
기록중
if (num > INT_MAX/10 || (num == INT_MAX / 10 && pop > 7)) return 0; if (num < INT_MIN/10 || (num == INT_MIN / 10 && pop < -8)) return 0;
CMAKE_MINIMUM_REQUIRED (VERSION 2.6) PROJECT(PROJECT_NAME) PKG_CHECK_MODULES()PKG_CHECK_MODULES(JSONCPP REQUIRED jsoncpp>=1.7.1)FIND_PACKAGE(Boost COMPONENTS system filesystem REQUIRED)FIND_PACKAGE(Boost COMPONENTS system filesystem serialization REQUIRED) //BASE_DIR을 이 곳으로 지정SET(BASE_DIR ${PROJECT_SOURCE_DIR}) INCLUDE_DIRECTORIES( ${JSONCPP_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) SET(LIBRARIES ${B..
Call - Async : http://www.cplusplus.com/reference/future/launch/ Callback - Async here:#include #include #include #include #include #include #include typedef std::function Listener; class Laf { public: Listener laf_listener_id1; Listener laf_listener_id2; void SetCallbackListener(Listener listener, int id) { if (id == 1) { laf_listener_id1 = listener; }else { laf_listener_id2 = listener; } } voi..
std::vector v = {std::make_tuple(0,1,2,3),std::make_tuple(1,2,3,4)}; auto it = std::find_if(v.begin(), v.end(), [](const std::tuple& e) {return std::get(e) == 1;}); if (it != v.end()) { std::cout
#include #include #include "json/json.h" Json::Value changePath(Json::Value oldObj){ Json::Value new_obj; if (oldObj.isString()) { std::string str = "changePath"; str += oldObj.asString(); std::cout
1. Install Franca(Eclipse IDE for Java and DSL Developers for Eclipse Luna)이클립스에서 install New S/W를 통해서 관련 모듈들을 설치한다!2. fidl 파일을 xml 로 변경한다.3. 모르겠다. 다 설치해봤다. qt5-qmake / qt5-default / qt5-qtconfigqdbusxml2cpp 명령어를 사용할 수 있게 되었다. xml파일을 cpp와 h을 만들어 준다.#> qdbusxml2cpp -a Interface basic.xml
gmock 관련 링크들: https://blog.jetbrains.com/rscpp/unit-testing-google-test/ https://github.com/google/googletest/blob/master/googlemock/docs/ForDummies.md ASSERT_XX ,EXPECT_XX 관련 링크들: http://www.cheezyworld.com/wp-content/uploads/2010/12/PlainGoogleQuickTestReferenceGuide1.pdf 1. Interface를 만들자. 2. 상속받아 MOCK_METHODn 구현한다. 3. Test()하는데, http://docs.biicode.com/c++/examples/gmock.html http://jakejang..
메모리 동적 할당시, 자동으로 메모리 해제 및 관리를 해주는 C++/11의 새로운 기능이다.명시적으로 delete를 해주지 않아도 된다. 메모리 관리 용이! https://msdn.microsoft.com/ko-kr/library/hh279669.aspx 인스턴스 생성 방법이 2가지가 존재한다. [1] shared_ptr sp2(new Song(L"Lady Gaga", L"Just Dance"));[2] shared_ptr sp5(nullptr); sp5 = make_shared(L"Elton John", L"I'm Still Standing"); make_shared를 사용하면, control_block을 함께 생성하기 떄문에 좀 더 효율적이라고 한다. 성능이 더 좋아진다는.실제로 new를 2번 호춣하..
class Person class Person { char* name; int age; public: Person() : name(0), age(0) {} Person(const char* n, int a) : age(a) { name = new char[strlen(n) + 1]; strcpy(name, n); } // 깊은 복사 정책의 복사 생성자 Person(const Person& o) : age(o.age) { name = new char[strlen(o.name) + 1]; strcpy(name, o.name); } ~Person() { delete[] name; } // 객체 내부에서 동적 할당된 자원이 있다면 복사 생성자와 대입 연산자 함수는 반드시 재정의 해야함. // 대입 연산자가 연속..
class Int32 { public: int val; // 변환 생성자: 어떠한 키워드를 사용해서 변환 생성자를 만드는 것이 아니라, 인자가 1개인 // 생성자는 모두 변환 생성자로 사용될 수 있다. --> 버그임. 이를 해결하기 위해 "explicit"가 나옴. explicit Int32(int v) : val(v) {} }; void print_int32(Int32 i32) //Int32 i32(n) { cout Int32 i32(Int32(1)); print_int32(i32); int n = 1; print_int32(n); // explicit 키워드 사용시 ERROR }