• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Session의 RegisterSend 의 wsaBufs 관련해서 질문드립니다

23.01.02 17:23 작성 조회수 186

0

Vector<WSABUF> wsaBufs;
wsaBufs.reserve(_sendEvent.sendBuffers.size());
for (SendBufferRef sendBuffer : _sendEvent.sendBuffers)
{
	WSABUF wsaBuf;
	wsaBuf.buf = reinterpret_cast<char*>(sendBuffer->Buffer());
	wsaBuf.len = static_cast<LONG>(sendBuffer->WriteSize());
	wsaBufs.push_back(wsaBuf);
}

강의의 코드는 위와 같이 작성되어 있습니다.

이렇게 할 경우 wsaBufs.push_back(wsaBuf) 가 복사 연산으로 수행되는 건가요?

만약 그렇다면 복사 연산을 거치지 않고 바로 객체를 벡터에 넣을 수 있는 방법은 없을까요?

답변 1

답변을 작성해보세요.

0

포인터 하나와 정수 하나라서 복사해도 전혀 상관 없습니다.
하지만 vector에 복사를 거치지 않고 넣고 싶다면
이동 연산을 지원하는 emplace_back을 사용하시면 됩니다.