C++相談室 part45
■ このスレッドは過去ログ倉庫に格納されています
0892デフォルトの名無しさん
2006/01/03(火) 22:48:18メンバへのポインタを使ってみた。
typedef std::list<Hoge> HogeList;
template<typename T>
void func(const HogeList& list_hoge, T* Hoge::*member) {
for (HogeList::const_iterator it = list_hoge.begin(); it != list_hoge.end(); ++it) {
const T& foo = *(*it.*member);
std::cout << foo.a << foo.b << foo.c << std::endl;
}
}
int main(){
const std::size_t N = 3;
B a[N] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
};
Hoge hoge[N];
for (int i = 0; i < N; ++i)
hoge[i].pb = &a[i];
HogeList ls(hoge, hoge + N);
func(ls, &Hoge::pb);
}
■ このスレッドは過去ログ倉庫に格納されています