NCBI C++ ToolKit
Classes | Macros | Typedefs | Functions | Variables
NCBI Namespaces Etc
+ Collaboration diagram for NCBI Namespaces Etc:

Classes

struct  cxx_is_supported< TypeChecker, Type >
 Helper template to check that type Type have some method declared using TypeChecker<Type>. More...
 
struct  cxx_is_supported< TypeChecker, Type >::supported
 
struct  cxx_is_supported< TypeChecker, Type >::not_supported
 

Macros

#define BEGIN_SCOPE(ns)   namespace ns {
 Define a new scope. More...
 
#define END_SCOPE(ns)   }
 End the previously defined scope. More...
 
#define USING_SCOPE(ns)   using namespace ns
 Use the specified namespace. More...
 
#define NCBI_NS_STD   std
 Define the std namespace. More...
 
#define NCBI_USING_NAMESPACE_STD   using namespace NCBI_NS_STD
 Use the std namespace. More...
 
#define NCBI_NS_NCBI   ncbi
 Define the name for the NCBI namespace. More...
 
#define BEGIN_STD_SCOPE   BEGIN_SCOPE(NCBI_NS_STD)
 Place it for adding new funtionality to STD scope. More...
 
#define END_STD_SCOPE   END_SCOPE(NCBI_NS_STD)
 End previously defined STD scope. More...
 
#define BEGIN_NCBI_SCOPE   BEGIN_SCOPE(NCBI_NS_NCBI)
 Define ncbi namespace. More...
 
#define END_NCBI_SCOPE   END_SCOPE(NCBI_NS_NCBI)
 End previously defined NCBI scope. More...
 
#define USING_NCBI_SCOPE   USING_SCOPE(NCBI_NS_NCBI)
 For using NCBI namespace code. More...
 
#define NCBI_NAME2(Name1, Name2)   Name1##Name2
 Name concatenation macro with two names. More...
 
#define NCBI_NAME3(Name1, Name2, Name3)   Name1##Name2##Name3
 Name concatenation macro with three names. More...
 
#define NCBI_EAT_SEMICOLON(UniqueName)    using ::DummyNS::CDummyClassToEatSemicolon
 
#define BEGIN_NAMESPACE(ns)   namespace ns { NCBI_EAT_SEMICOLON(ns)
 
#define END_NAMESPACE(ns)   } NCBI_EAT_SEMICOLON(ns)
 
#define BEGIN_NCBI_NAMESPACE   BEGIN_NAMESPACE(NCBI_NS_NCBI)
 
#define END_NCBI_NAMESPACE   END_NAMESPACE(NCBI_NS_NCBI)
 
#define BEGIN_STD_NAMESPACE   BEGIN_NAMESPACE(NCBI_NS_STD)
 
#define END_STD_NAMESPACE   END_NAMESPACE(NCBI_NS_STD)
 
#define BEGIN_LOCAL_NAMESPACE   namespace { NCBI_EAT_SEMICOLON(ns)
 
#define END_LOCAL_NAMESPACE   } NCBI_EAT_SEMICOLON(ns)
 
#define NCBI_AS_STRING(value)   NCBI_AS_STRING2(value)
 Convert some value to string even if this value is macro itself. More...
 
#define NCBI_AS_STRING2(value)   #value
 
#define EMPTY_TEMPLATE   template<>
 
#define BREAK(it)   break
 

Typedefs

typedef std::string CStringUTF8
 

Functions

template<typename Iter >
void iter_swap (Iter it1, Iter it2)
 
template<typename Type_ >
static supported cxx_is_supported< TypeChecker, Type >::chk (typename std::decay< TypeChecker< Type_ >>::type *)
 
template<typename Type_ >
static not_supported cxx_is_supported< TypeChecker, Type >::chk (...)
 

Variables

static constexpr bool cxx_is_supported< TypeChecker, Type >::value = std::is_same<decltype(chk<Type>(nullptr)), supported>::value
 

Detailed Description

Macro Definition Documentation

◆ BEGIN_LOCAL_NAMESPACE

#define BEGIN_LOCAL_NAMESPACE   namespace { NCBI_EAT_SEMICOLON(ns)

Definition at line 142 of file ncbistl.hpp.

◆ BEGIN_NAMESPACE

#define BEGIN_NAMESPACE (   ns)    namespace ns { NCBI_EAT_SEMICOLON(ns)

Definition at line 136 of file ncbistl.hpp.

◆ BEGIN_NCBI_NAMESPACE

#define BEGIN_NCBI_NAMESPACE   BEGIN_NAMESPACE(NCBI_NS_NCBI)

◆ BEGIN_NCBI_SCOPE

#define BEGIN_NCBI_SCOPE   BEGIN_SCOPE(NCBI_NS_NCBI)

◆ BEGIN_SCOPE

#define BEGIN_SCOPE (   ns)    namespace ns {

Define a new scope.

Definition at line 72 of file ncbistl.hpp.

◆ BEGIN_STD_NAMESPACE

#define BEGIN_STD_NAMESPACE   BEGIN_NAMESPACE(NCBI_NS_STD)

◆ BEGIN_STD_SCOPE

#define BEGIN_STD_SCOPE   BEGIN_SCOPE(NCBI_NS_STD)

Place it for adding new funtionality to STD scope.

Definition at line 92 of file ncbistl.hpp.

◆ BREAK

#define BREAK (   it)    break

Definition at line 175 of file ncbistl.hpp.

◆ EMPTY_TEMPLATE

#define EMPTY_TEMPLATE   template<>

Definition at line 159 of file ncbistl.hpp.

◆ END_LOCAL_NAMESPACE

#define END_LOCAL_NAMESPACE   } NCBI_EAT_SEMICOLON(ns)

Definition at line 143 of file ncbistl.hpp.

◆ END_NAMESPACE

#define END_NAMESPACE (   ns)    } NCBI_EAT_SEMICOLON(ns)

Definition at line 137 of file ncbistl.hpp.

◆ END_NCBI_NAMESPACE

#define END_NCBI_NAMESPACE   END_NAMESPACE(NCBI_NS_NCBI)

◆ END_NCBI_SCOPE

#define END_NCBI_SCOPE   END_SCOPE(NCBI_NS_NCBI)

◆ END_SCOPE

#define END_SCOPE (   ns)    }

End the previously defined scope.

Definition at line 75 of file ncbistl.hpp.

◆ END_STD_NAMESPACE

#define END_STD_NAMESPACE   END_NAMESPACE(NCBI_NS_STD)

◆ END_STD_SCOPE

#define END_STD_SCOPE   END_SCOPE(NCBI_NS_STD)

End previously defined STD scope.

Definition at line 95 of file ncbistl.hpp.

◆ NCBI_AS_STRING

#define NCBI_AS_STRING (   value)    NCBI_AS_STRING2(value)

Convert some value to string even if this value is macro itself.

Definition at line 146 of file ncbistl.hpp.

◆ NCBI_AS_STRING2

#define NCBI_AS_STRING2 (   value)    #value

Definition at line 147 of file ncbistl.hpp.

◆ NCBI_EAT_SEMICOLON

#define NCBI_EAT_SEMICOLON (   UniqueName)     using ::DummyNS::CDummyClassToEatSemicolon

Definition at line 132 of file ncbistl.hpp.

◆ NCBI_NAME2

#define NCBI_NAME2 (   Name1,
  Name2 
)    Name1##Name2

Name concatenation macro with two names.

NB: If this names are macros themselves expanding will not take place.

Definition at line 122 of file ncbistl.hpp.

◆ NCBI_NAME3

#define NCBI_NAME3 (   Name1,
  Name2,
  Name3 
)    Name1##Name2##Name3

Name concatenation macro with three names.

NB: If this names are macros themselves expanding will not take place.

Definition at line 127 of file ncbistl.hpp.

◆ NCBI_NS_NCBI

#define NCBI_NS_NCBI   ncbi

Define the name for the NCBI namespace.

Definition at line 89 of file ncbistl.hpp.

◆ NCBI_NS_STD

#define NCBI_NS_STD   std

Define the std namespace.

Definition at line 83 of file ncbistl.hpp.

◆ NCBI_USING_NAMESPACE_STD

#define NCBI_USING_NAMESPACE_STD   using namespace NCBI_NS_STD

Use the std namespace.

Definition at line 86 of file ncbistl.hpp.

◆ USING_NCBI_SCOPE

◆ USING_SCOPE

#define USING_SCOPE (   ns)    using namespace ns

Use the specified namespace.

Definition at line 78 of file ncbistl.hpp.

Typedef Documentation

◆ CStringUTF8

Definition at line 254 of file ncbistl.hpp.

Function Documentation

◆ chk() [1/2]

template<template< typename > class TypeChecker, typename Type >
template<typename Type_ >
static not_supported cxx_is_supported< TypeChecker, Type >::chk (   ...)
static

◆ chk() [2/2]

template<template< typename > class TypeChecker, typename Type >
template<typename Type_ >
static supported cxx_is_supported< TypeChecker, Type >::chk ( typename std::decay< TypeChecker< Type_ >>::type )
static

◆ iter_swap()

template<typename Iter >
void iter_swap ( Iter  it1,
Iter  it2 
)
inline

Variable Documentation

◆ value

template<template< typename > class TypeChecker, typename Type >
constexpr bool cxx_is_supported< TypeChecker, Type >::value = std::is_same<decltype(chk<Type>(nullptr)), supported>::value
staticconstexpr

Definition at line 282 of file ncbistl.hpp.

Modified on Mon Jun 24 05:22:09 2024 by modify_doxy.py rev. 669887