Removes the element on top of the stack \p val takes a copy of top element */
| 198 | \p val takes a copy of top element |
| 199 | */ |
| 200 | bool pop( value_type& val ) |
| 201 | { |
| 202 | auto pRec = m_FlatCombining.acquire_record(); |
| 203 | pRec->pValPop = &val; |
| 204 | |
| 205 | constexpr_if ( c_bEliminationEnabled ) |
| 206 | m_FlatCombining.batch_combine( op_pop, pRec, *this ); |
| 207 | else |
| 208 | m_FlatCombining.combine( op_pop, pRec, *this ); |
| 209 | |
| 210 | assert( pRec->is_done()); |
| 211 | m_FlatCombining.release_record( pRec ); |
| 212 | |
| 213 | m_FlatCombining.internal_statistics().onPop( pRec->bEmpty ); |
| 214 | return !pRec->bEmpty; |
| 215 | } |
| 216 | |
| 217 | /// Clears the stack |
| 218 | void clear() |
nothing calls this directly
no test coverage detected