(C++) thread는 context가 필요하다.
전역 함수를 threadMain으로 지정해 실행하는건 그냥 다른 언어 처럼 하면 되는데, 객체의 메서드를 threadMain으로 지정하는건 몇 가지 신경써야 할 부분이 있다. 보통 다른 언어 같으면, Thread 클래스 상속받아서 t.run() 해주면 끝인데, C++은 그렇지 못하다. 구식 방법 원래 클래스 내부의 메서드를 threadMain으로 지...
전역 함수를 threadMain으로 지정해 실행하는건 그냥 다른 언어 처럼 하면 되는데, 객체의 메서드를 threadMain으로 지정하는건 몇 가지 신경써야 할 부분이 있다. 보통 다른 언어 같으면, Thread 클래스 상속받아서 t.run() 해주면 끝인데, C++은 그렇지 못하다. 구식 방법 원래 클래스 내부의 메서드를 threadMain으로 지...
lambda가 왜 필요하냐면, 함수 포인터는 함수이기 때문에 상태를 가질 수 없다. 반복문 같은데 인자로 함수를 넘겨야 하는 상황에서 그 함수가 상태를 가져야 하는 경우, 함수 포인터를 사용할 수 없다. 따라서 상태를 가지는 함수를 만들기 위해서 함수 객체라는 트릭을 사용해야 했다. 함수 객체는 객체인데, operator()를 오버로드해서 함수처럼 호...
vector<cls>가 있을 때, cls.value들만 뽑아내고 싶은 경우가 빈번하게 있다. 일반적인 경우 그냥 반복문 돌면서 처리해주면 되지만, 라이브러리 등을 사용할 때는 반드시 cls.value로 이루어진 iterator를 넘겨야만 하는 경우가 있다. 이런 경우 처음으로 드는 생각은 함수형의 filter()인데, 이는 copy가 발생...
int main() { int size = 4; char buf[size] = {'*', '*', '*', '*'}; strncpy(buf, "asd", size - 1); // buf[size - 1] = '\0'; printf("%s\n", buf); return 0; } asd\*�FUUUU 따라서 ...
#include <iostream> #include <sstream> using namespace std; int main() { string item = "abc\r\ndef\nghi"; // contain \r istringstream stream(item); while (getline(strea...
find와 count로 exist 체크 내부에 해당 key가 존재하는지는 count()/find()를 사용한다. 중복을 허용하지 않는 자료구조에서 둘은 내부적으로 거의 똑같기 때문에, 취향 대로 사용하면 된다. #include <iostream> #include <unordered_map> std::unordered_map&l...
iptables 체인은 3가지. INPUT OUTPUT FORWARD : 나를 지나가는 패킷. 라우터 등에서 사용. iptables는 ip 헤더부터 잡힌다. 그 아래는 안잡힘. sudo iptables -L // 밖으로 나가는 icmp 막기 iptables -A OUTPUT -p icmp -j DROP iptables -D OUT...
원래는 boost에 있는 API이고, C++ 17에서 표준으로 추가되었기 때문에, boost를 추가하거나 컴파일러를 C++17로 변경해야 한다. 후자가 더 편하기 때문에, 프로젝트 설정 - C/C++ - Language - C++ Language Standard를 /std:c++17로 변경해준다. #include <iostream> #in...
clock과 chrono의 초단위 정밀도 차이 [clock ] 0.001513 [chrono] 0.00151351 [C] clock #include <time.h> int main(int argc, char *argv[]) { clock_t begin, end; begin = clock(); // processing en...
프로퍼티 지정 protected로 만들거면 _, private으로 만들거면 __ 프로퍼티는 일반 변수와 같이 명명하는게 통일성 있다. 메서드지만 외부에서는 변수처럼 보여야 하니까. property() 사용하는 방법도 있으나 decorator 사용하는 방법이 나아보인다. lock 변수를 사용할 때 좋은 듯 @property def r...