A Tag type is typically used as a template parameter in (most) generic support layer templates to specify a particular dataflow framework. This allows different dataflow frameworks to be defined on the same types without clashing. If clashing is not a concern when developing a support layer for a framework, the Tag can be omitted in which case it defaults to default_tag.

Notation

T

A Tag type.

Requirements

Name

Expression

Result Type

Semantics

default_tag Inheritance

is_base<default_tag, T>::type

Boolean MPL Metafunction that evaulates to true

To allow concept checking on Tag types, all Tag types must be derived from default_tag.

Tag Concept Check

is_tag<T>::type

Boolean MPL Metafunction that evaulates to true

Concept check for the Tag concept.

Examples

The following code declares the VTK framework Tag - it is a part of the example showing how to provide a VTK support layer.

namespace boost { namespace dataflow { namespace vtk {

// The vtk framework tag
struct tag : public default_tag {};

} } } // namespace boost::dataflow::vtk