inline void swap(ArrayBinaryTreeNode x, ExternalData& edata ) { value_type tmp = x.value(); /*swap external data*/ edata[ id[tmp] ] = i; edata[ id[value()] ] = x.i; x.value() = value(); value() = tmp; i = x.i; }
inline void swap(ArrayBinaryTreeNode x, ExternalData& edata ) { using ::boost::get; value_type tmp = x.value(); /*swap external data*/ edata[ get(id, tmp) ] = i; edata[ get(id, value()) ] = x.i; x.value() = value(); value() = tmp; i = x.i; }