It is constant time, as specified in the documentation, and, indeed, as fast as it gets:
template<int N,typename IteratorType>
typename nth_index_iterator<N>::type project(IteratorType it)
{
typedef typename nth_index<N>::type index_type;
...
return index_type::make_iterator(static_cast<node_type*>(it.get_node()));
}
This is merely a rewrapping of the internal node pointer held by any index iterator.