아래 클래스 qux
의 경우 인스턴스 중 하나의 멤버 변수 에 대한 포인터를 어떻게 표현 Bar
합니까?
struct Foo {
struct Bar {
int qux;
} bar1, bar2;
};
boost::multi_index
컨테이너를 사용할 qux
때 필요하고 키 추출기에서 필요한 키로 사용해야 할 때 필요합니다.
template<class Class,typename Type,Type Class::*PtrToMember>
struct boost::multi_index::member
의도가 Foo
s의 boost multi_index 컨테이너를 만들고 키로 사용하는 것이라고 가정 하고 있습니다 qux
. 비록 qux
의 구성원이 아닌 Foo
당신이 회원에 인덱싱하여이 작업을 수행 할 수 있습니다, Foo::bar1
그리고 순서화 된 인덱스에 대한 사용자 정의 비교 조건을 제공한다. 예를 들어, ordered_unique
키 를 생성하려는 경우 다음 과 같이 작성합니다.
ordered_unique<member<Foo, Foo::Bar, &Foo::bar1>, compare_foo_bar>
compare_foo_bar
친구는 어디에 Foo::Bar
있고 필요로 정의됩니다.
struct compare_foo_bar
{
bool operator()(const Foo::Bar& lhs, const Foo::Bar& rhs)
{
return lhs.qux < rhs.qux;
}
};
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다