template<typename T>
func(const boost::ptr_list<T>& lis){...
}

constつけるといろいろおかしくなる。
std::listではconst_iteratorをiteratorに勝手に変換してくれるのに