-- 알게 된 내용 2020.02.28 생성자에서 shared_from_this() 함수를 호출하면 아직 만들어지지 않은 객체에 대해 포인팅 할 수 없어서 에러가 발생하는 것으로 보인다 // works ClientSession::ClientSession(tcp::socket socket) : socket_(std::move(socket)), read_msg_(0) { } void ClientSession::start() { Login::get_instance().join(shared_from_this()); do_read(); } // error ClientSession::ClientSession(tcp::socket socket) : socket_(std::move(socket)), read_msg_(..
boost thread에서 호출하는 함수에 인자가 없는데 this 를 사용하는 것을 보고 의문이 들어서 사용방법을 찾아보았다. object에 속해있지 않은 함수 혹은 static한 함수를 부를때는 boost::thread(function address, argument)를 사용하고 ㄴ do_something, do_static_something object 바깥에서 object를 bind 할때는 boost::thread(function address, object address, argument) object 스스로 bind 할때는 boost::thread(function address, this, argument) 로 사용한다. ㄴ Test::do_something #include #include vo..
c++ class 에서 생성자를 만들어 두면, 필요할 때 자동으로 형 변환을 시키는데, 이를 막는것이 explicit 키워드이다 아래 예시를 보자 - Event 클래스 대신 string을 넣었지만 자동으로 형변환이 되서 잘 실행된다 #include #include class Event { public: Event(std::string name) : name_(name) {}; std::string getName() { return name_; }; private: std::string name_; }; std::string getEventName(Event e) { return e.getName(); } int main() { std::string str = "print my name\n"; std::c..
백준 문제를 풀면서 알게된 Trie 자료구조에 대한 정리 많은 문자열중에서 같은 문자열을 찾을 때 최대길이가 m이라면 n번 시행할때 O(mn)으로 찾을 수 있고, 트라이를 만들 때도 O(mn)으로 만들 수 있게 한다. #include #include #include #include using namespace std; struct Trie { char c; bool end; Trie* next[10]; Trie() { end = false; memset(next, 0, sizeof(next)); } ~Trie() { for (int i = 0; i < 10; i++) { if (next[i]) delete next[i]; } } void insert(string s) { if (s.size() == 0)..
서버 공부를 하면서 클래스에 boost::noncopyable 을 상속받은 이유가 궁금해서 찾아보고 정리하게 되었습니다. https://stackoverflow.com/questions/3518853/what-are-use-cases-for-boosternoncopyable https://www.boost.org/doc/libs/1_44_0/libs/utility/utility.htm#Class_noncopyable Boost 공식 문서에서 나온 설명은 Some objects, particularly those which hold complex resources like files or network connections, have no sensible copy semantics. Sometimes th..
외판원 길찾기 문제에서 비트마스크 개념이 나오는데 그 개념을 몰라서 차라리 비트마스크를 공부해보자 싶었다. 왜 길을 찾는데 비트마스크란 개념을 쓰냐면, 어떤 곳에 방문했는지 탐색할때마다 배열을 만드는건 비효율적이니까 int값만 넘기는데 자릿수마다 어떤 마을에 방문했는지 쓸 수 있는것 이다. (1번째 bit가 1이라면 1번 마을을 방문) 대신 넘기는 자료형의 자릿수보다 크게는 안된다. (32bit int 에서는 32까지 표현 가능) - n번째 비트를 1로 만들기 arr |= (1
일상 개발 등등 포스팅!!
- Total
- Today
- Yesterday
- cockroach db
- SuffixArray
- Obstacle Avoidance
- 영상 픽셀화 하기
- vrpit
- C++
- 봄날에 스케치
- 잘못된 빨간줄
- set value
- 면접
- RVO
- Reciprocal n-body Collision Avoidance
- 클래스 맴버 변수 출력하기
- Golang
- mysql
- 우리는 vr핏이라고 부릅니다
- 카카오
- hole-punching
- Visual Studio
- ad skip
- it's called a vrpit
- Quest2
- shared_from_this
- print shared_ptr class member variable
- boost
- red underline
- 코어 남기기
- vr핏
- 에러 위치 찾기
- chrome-extension
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
26 | 27 | 28 | 29 | 30 | 31 |