프로그래밍/c++
boost::lockfree::queue의 타입 제한(error C2338)
제페
2016. 1. 13. 02:57
반응형
boost lockfree queue는 trivial 타입만 사용할 수 있다.
1 2 3 | boost::lockfree::queue<int> int_queue; // ok boost::lockfree::queue<std::string> string_queue; // error! |
trivial 타입 조건?
- 0. 어떤 생성자도 없음
- 1. 가상 함수 없음
- 2. 소멸자 없음
memcpy로 인스턴스 복사를 해도 아무런 문제가 없을 그런 타입을 trivial이라 부른다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Trivial Type struct A { void* buf; size_t size; }; // Non Trivial Type struct B { B(): buf{nullptr}, size{0} { } void* buf; size_t size; }; | cs |
참고: http://faithandbrave.hateblo.jp/entry/20130213/1360737911
반응형