void BSPLib::Classic::GetTag( size_t *status, void *tag )               // (1) Classic
void bsp_get_tag( size_t *status, void *tag )                           // (2) Legacy

template< typename tPrimitive >
void BSPLib::GetTag( size_t &statusRef, tPrimitive &tagRef )            // (3) Reference

void BSPLib::GetTag( size_t &statusRef, std::string &tagRef )           // (4) std::string

template< typename tPrimitive >
void BSPLib::GetTagPtr( size_t &statusRef, tPrimitive *tagPtr )              // (5) Pointer

template< typename tIterator >
void BSPLib::GetTagIterator( size_t &statusRef, tIterator tagBegin )         // (6) Iterator

template< typename tContainer >
void BSPLib::GetTagContainer( size_t &statusRef, tContainer &tagContainer )  // (7) Container

template< typename tPrimitive, size_t tSize >
void BSPLib::GetTagCArray( size_t &statusRef, tPrimitive( &tagCArray )[tSize] ) // (8) C-Array

Gets the tag for the next message in the send queue.

  1. Classic BSP function.
  2. Legacy BSP function
  3. Uses a reference for status, as it is not allowed to be nullptr. Uses a reference to store the tag.
  4. Specialisation of (3) for std::string.
  5. Uses a reference for status. More typesafe version for the tag pointer.
  6. Uses a reference for status. Uses an iterator to describe te beginning of the tag.
  7. Uses a reference for status. Uses a container to store the tag.
  8. Uses a reference for status. Uses a C-Array to store the tag.




The queue is in the same state as before.


(1) Classic

(2) Legacy

(3) Reference

(4) std::string

(5) Pointer

(6) Iterator

(7) Container

(8) C-Array