반응형 프로그래밍/C & C++13 c++로 작성한 간단한 multi level queue 표준 lib을 써서.. #include #include #include #include #include using namespace std; template class MultiLevelQueue { public: MultiLevelQueue(void) { } virtual ~MultiLevelQueue(void) { } void Push(PriorityEnum p, shared_ptr entry) { queue_[p].push(entry); } shared_ptr Pop(void) { for (auto& q : queue_) { if (q.second.size()) { auto item = q.second.front(); q.second.pop(); return item; } } return share.. 2022. 1. 8. c++로 작성한 간단한 pool 내가 만든 module에 쓸 생각으로 간단한 pool을 만들었다. 일부러 library를 사용하려고 하였다. #include #include #include #include #include #include #include using namespace std; static const int MAX = 32 * 1024; template using CallbackToRelease = std::function; class Item : public std::enable_shared_from_this { public: Item(void) = delete; Item(CallbackToRelease funcPtr) : releaseFuncPtr_(funcPtr) { } virtual ~Item(void) { } vo.. 2022. 1. 8. [Effective C++] class를 사용할 때 초기화와 대입은 다르다 class를 초기화 할 때 멤버 변수를 초기화 하는 형태를 보면 아래의 셋 중 하나를 선택하여 사용할 것이다. 1. 생성자에서 초기화 한다. class TestClass { public: TestClass() : value(), str() // 여기서 초기화 { // 여기를 초기화에 사용하지 않음 } TestEnum GetValue() { return value; } string str; private: TestEnum value; }; 2. 생성자 내부에서 초기화 한다. class TestClass2 { public: TestClass2() { value = TestEnum::TYPE0;// 이렇게 초기화 str = "";// 이렇게 초기화 } TestEnum GetValue() { return val.. 2021. 12. 19. [C/VC] 간단한 Critical Section 테스트 테스트용 비록 올바른 사용 예는 아닐 수 있지만 사용법 숙달을 위해.. #include #include #include // 쓰레드 함수 void threadTest1(void* param); void threadTest2(void* param); // 계산 함수 void cal(int num); // 테스트 숫자 static int maxCnt = 20; // 계산 결과를 저장 static int result = 0; // Critical section Variable CRITICAL_SECTION cs; // 메인 함수 int main(void) { // 초기화 InitializeCriticalSection(&cs); int i; for(i = 0; i < 5; i++) { // 변수 초기화 resu.. 2011. 3. 6. 이전 1 2 3 4 다음 반응형