boost::interprocess::operator<
template<typename T1, typename T2> bool operator<(const offset_ptr< T1 > & pt1, const offset_ptr< T2 > & pt2);
offset_ptr<T1> < offset_ptr<T2>. Never throws.