BloombergLP::bslmf::Tag

Map an unsigned integral constant to a distinct C++ type.

Synopsis

Declared in <bslmf_tag.h>

template<unsigned int t_N>
struct Tag;

Description

This template class is never intended to produce a run-time instance. The only useful attribute of a tag is its size (which is, of course, computable at compile time, even if an instance is never created). Note that in case of overflow on Linux 64-bit machines, we split the size into 2 data members.

Data Members

NameDescription
d_lowerSizeArray Lower 16 bits of the compile-time size encoded by this tag.
d_upperSizeArray Upper 16 bits of the compile-time size encoded by this tag.

Non-Member Functions

NameDescription
operator,Detect non-void expressions via an overloaded comma operator.

Derived Classes

NameDescription
InvokeResult_VoidChecker Empty type used to detect void expressions. The size of this type is the same as bslmf::Tag<1>.