Provided by: libbobcat-dev_6.04.00-1ubuntu3_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.04.00-x.dsc: detached signature;

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

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

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

       o      libbobcat1-dev_6.04.00-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).