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 | # 현재 구조 패킷 큐에는 패킷들이 들어감 struct Packet { int packetHeader; }; std:deque<Packet> packetQueue; 패킷은 성능/편의상, memcpy를 통해 초기화 됨. 따라서 가상 함수를 사용할 수 없음 char *buffer; memcpy(&packet, buffer, bufferLen); 실제 패킷 구현은 패킷 클래스를 상속 받아 확장 됨. struct LoginPacket : Packet { char name[10]; }; # 하고 싶은 것 가상함수는 사용하기 싫지만 다형성은 쓰고 싶음. 예를 들어 자기 구조체 크기를 편하게 알고 싶어. int getPacketSize() { return sizeof(T); } 어떤 해결 방법이 있을지 궁금하다. CRTP로 해결할 수 없겠지? 구체화되지 않은 템플릿을 큐의 타입으로 삼을 수도 없잖아... template<typename T> struct PacketCRTP {} struct LoginPacket : public PacketCRTP<PacketCRTP> {}; std::deque<PacketCRTP<?>>; // error | cs |
C++ 굇수님덜... 알려줏메 ㅜㅜ
익명(112.175)
2019-06-27 09:42
추천 0
댓글 4
다른 게시글
-
BOOST는 진짜 천재 집단인거같음 [2]익명(118.42) | 19.06.27추천 0
-
c++ 고수님을 찾읍니다... 굇수 없읍니까... [1]익명(112.175) | 19.06.27추천 0
-
아 안드 크롬 왤캐 좆병신됐냐 [6]익명(118.42) | 19.06.27추천 0
-
책 쓰고 싶으면 이거 추천 [1]휫자(218.234) | 19.06.27추천 0
-
코딩해서 철구보다 많이범?휫자(218.234) | 19.06.27추천 0
-
원형 큐 구현할때는 데이터 하나 비워두고 쓰는게 좋음? [4]익명(121.167) | 19.06.27추천 0
-
국비 땔깜 구종만 책 샀다 [7]익명(211.105) | 19.06.27추천 0
-
니넨 시급얼마냐 [5]소주(223.38) | 19.06.27추천 0
-
님들 c# dispose [2]Qera(songjoon000) | 19.06.27추천 0
-
코세가 내 신상 뿌리고다니는거 목격한놈 제보부탁한다 [1]철구(125.135) | 19.06.27추천 0
뭔 소릴하는지 모르겠네 union쓰고, replacement new 검색해보셈
그리고 1byte pack하고
replacement new랑 pack(1)은 아는데 Packet을 union으로 쓰란 말이야? 패킷 필요에 따라 딱 맞게만 쓰고 싶엉
tcp통신 하면서 구조체를 이용해 가변적인 패킷을 담고 싶은데 좋은 방법이 없을까 고민하는거임