plucky (3) typetrait.3bobcat.gz

Provided by: libbobcat-dev_6.06.02-1_amd64 bug

NAME

       FBB::TypeTrait - Type trait class

SYNOPSIS

       #include <bobcat/typetrait>

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<LHS, RHS>::type as
       LHS if RHS can be promoted to LHS or it defines typename Use<LHS, RHS>::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>

       TYPE is the template type parameter whose characteristics must be determined.

       TypeTrait<TYPE>  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<TYPE> 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<LeftType, RightType>

       LpromotesR<LeftType, RightType> 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<string, char const *>::yes << ’\n’;  // 1
               cout << "string promotes string " <<
                       LpromotesR<string, string>::yes << ’\n’;        // 1
               cout << "char const * promotes string " <<
                       LpromotesR<char const *, string>::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.06.02-x.dsc: detached signature;

       o      bobcat_6.06.02-x.tar.gz: source archive;

       o      bobcat_6.06.02-x_i386.changes: change log;

       o      libbobcat1_6.06.02-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.06.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’.

       This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).