rem: typedef file_set::nth_index<0>::type path_view; path_view& pt = m_files.get<0>(); file_key lower_key(info_hash, path()); file_key upper_key(info_hash, path()); upper_key.info_hash[19] += 1; std::pair<path_view::iterator, path_view::iterator> r = pt.range(!(_1 < lower_key), _1 < upper_key);
add: typedef file_set::nth_index<2>::type key_view; key_view& kt = m_files.get<2>();  key_view::iterator start, end; tie(start, end) = kt.equal_range(st);
context: 		void release(sha1_hash const& info_hash)		{			using namespace boost::lambda;			using boost::lambda::_1;			typedef file_set::nth_index<0>::type path_view;			path_view& pt = m_files.get<0>();			file_key lower_key(info_hash, path());			file_key upper_key(info_hash, path());			upper_key.info_hash[19] += 1;			std::pair<path_view::iterator, path_view::iterator> r				= pt.range(!(_1 < lower_key), _1 < upper_key);/*			std::cerr << "releasing files!\n";			for (path_view::iterator i = r.first; i != r.second; ++i)			{				std::cerr << i->key.file_path.native_file_string() << "\n";			}*/			pt.erase(r.first, r.second);/*			std::cerr << "files left: " << pt.size() << "\n";			for (path_view::iterator i = pt.begin(); i != pt.end(); ++i)			{				std::cerr << i->key.file_path.native_file_string() << "\n";			}*/		}