[#BloombergLP-bsls-ProtocolTest_IsAbstract] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsls.adoc[bsls]::ProtocolTest_IsAbstract :relfileprefix: ../../ :mrdocs: This class template is a compile‐time meta‐function, parameterized with type `T`, the output of which is `value`, which will be `true` if `T` is abstract and `false` otherwise. On some platforms, the `IsAbstract` test makes use of the fact that a type 'an array of objects of an abstract type' (e.g., `T[1]`) cannot exist. Note that it is only an approximation, because this is also true for an incomplete type. But, this approximation is good enough for the purpose of testing protocol classes. On certain other platforms, the `IsAbstract` test will make use of the fact that abstract types cannot be returned. This approximation also has issues, noted below, but is also good enough for the purpose of testing protocol classes. == Synopsis Declared in `<bsls_protocoltest.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct ProtocolTest_IsAbstract; ---- == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsls/ProtocolTest_IsAbstract/_04enum.adoc[`Unnamed enum`] | Compile‐time abstractness result for `T`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#