FBB::TypeTrait(3bobcat) Type traits FBB::TypeTrait(3bobcat) NAME FBB::TypeTrait - Type trait class SYNOPSIS #include DESCRIPTION FBB::TypeTrait is a traits class. It does not define any member functions or data members, but merely types. It can be used to determine the basic type and other characteristics of (const) plain, (const) pointer or (const) reference types. It was designed after Alexandrescu's (2001) TypeTraits template class. The FBB::LpromotesR class template is used to determine, compile-time, whether its second (right-hand side) template type can be promoted to its first (left-hand side) template type. The FBB::Use class template expects two typenames LHS and RHS and defines typename Use::type as LHS if RHS can be promoted to LHS or it defines typename Use::type as RHS. NAMESPACE FBB All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB. INHERITS FROM - TypeTrait TYPE is the template type parameter whose characteristics must be determined. TypeTrait defines the type Plain: the plain type (the type without const, pointer, reference type indication) of any const or non-const plain, pointer, lvalue- or rvalue-reference type. TypeTrait defines the following bool values: o isClass: true if the template type argument represents a class (struct) type, false otherwise. o isConst: true if the template type argument represents a const type, false otherwise. o isPointer: true if the template type argument represents a pointer type, false otherwise. o isR_Ref: true if the template type argument represents a rvalue reference type, false otherwise. o isRef: true if the template type argument represents an lvalue reference type, false otherwise. LpromotesR LpromotesR defines the enum constant yes as 1 if an RightType argument can be promoted to LeftType value or object. The enum value yes is defined as 0 if no such constructor is available or if such a constructor is defined using the explicit keyword. EXAMPLES Here is an example using LpromotesR: int main() { cout << "string promotes char const *: " << LpromotesR::yes << '\n'; // 1 cout << "string promotes string " << LpromotesR::yes << '\n'; // 1 cout << "char const * promotes string " << LpromotesR::yes << '\n'; // 0 } FILES bobcat/typetrait - defines the class interface SEE ALSO bobcat(7) Alexandrescu A. (2001) Modern C++ Design, Addison-Wesley, Boston. BUGS None Reported. BOBCAT PROJECT FILES o https://fbb-git.gitlab.io/bobcat/: gitlab project page; o bobcat_6.02.02-x.dsc: detached signature; o bobcat_6.02.02-x.tar.gz: source archive; o bobcat_6.02.02-x_i386.changes: change log; o libbobcat1_6.02.02-x_*.deb: debian package containing the libraries; o libbobcat1-dev_6.02.02-x_*.deb: debian package containing the libraries, headers and manual pages; BOBCAT Bobcat is an acronym of `Brokken's Own Base Classes And Templates'. COPYRIGHT This is free software, distributed under the terms of the GNU General Public License (GPL). AUTHOR Frank B. Brokken (f.b.brokken@rug.nl). libbobcat-dev_6.02.02 2005-2022 FBB::TypeTrait(3bobcat)