부스트 순환 버퍼를 사용하여 하드웨어 API에서 생성 된 배열을 저장하고 싶습니다. API는 메모리 위치의 주소를 가져 와서 그에 따라 배열을 푸시합니다.부스트 순환 버퍼 포인터 액세스 (C++)
typedef unsigned char API_data [10];
boost::circular_buffer<API_data> data(10);
boost::circular_buffer<API_data>::iterator it = data.begin();
을하지만 때문에 나는 API 포인터 it
을 전달할 수 없습니다 : 그래서 다음이 LPVOID
에 "boost::cb_details::iterator<boost::circular_buffer<API_data, std::allocator<API_data>>, boost::cb_details::nonconst_traits<boost::container::allocator_traits<std::allocator<API_data>>>>
"에서
더 적합한 변환 기능이 존재한다.
이 API 유형 LPVOID
하지만 it
포인터의 포인터를 기대하고는 다른 유형이다.
'it' 포인터의 어떤 종류가 아닙니다. –
아마도'& * it'를 사용하여 버퍼의 시작을 얻을 수 있습니다. 그러나 순환 버퍼가 버퍼 일뿐만 아니라 시작 및 끝 인덱스가 있기 때문에 컴파일 할 가능성이 가장 높습니다. 그리고 부스트를 유지하는 이러한 인덱스는 하드웨어가 올바르게 업데이트하여 원하는 것을 얻을 수 있어야합니다. – Eelke
의견을 보내 주셔서 감사합니다. 부스트 순환 버퍼 문서의 예제는 그 위치에 저장된 값을 얻기 위해'it'를 역 참조하기 때문에'it'가 포인터라고 가정했습니다. 난 부스트 순환 버퍼 문서 아무것도 혼란 이외의 찾을 수있는 충분한 경험이 아니에요. – HypeInst