OmniSciDB  1dac507f6e
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ExperimentalTypeUtilities.h File Reference
#include <boost/optional.hpp>
#include <iostream>
#include <tuple>
#include <utility>
#include "ConstExprLib.h"
#include "sqltypes.h"
#include "SQLTypeUtilities.h"
+ Include dependency graph for ExperimentalTypeUtilities.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Experimental::UncapturedMetaType
 
struct  Experimental::UncapturedMetaTypeClass
 
struct  Experimental::MetaSwitchTraits< T >
 
struct  Experimental::MetaTypeClassDeterminant< T >
 
struct  Experimental::MetaTypeClassDeterminant< Geometry >
 
struct  Experimental::MetaTypeClassDeterminant< String >
 
struct  Experimental::MetaTypeClassDeterminant< Array >
 
struct  Experimental::MetaTypeClassDeterminant< Bucketizable >
 
struct  Experimental::MetaSwitchTraits< SQLTypeInfo >
 
struct  Experimental::MetaType< T, VALUE >
 
struct  Experimental::MetaTypeClass< T >
 
class  Experimental::MetaTypeAny< T, VALUES_PACK >
 
class  Experimental::MetaTypeClassAny< CLASSIFICATIONS_PACK >
 
class  Experimental::MetaTypeFactory< T, VALUES_PACK >
 
class  Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >
 
struct  Experimental::Cpp14::Applicator
 
class  Experimental::Cpp14::MetaTypeHandler< SPECIALIZED_HANDLER, T, HANDLED_VALUES_PACK >
 
class  Experimental::Cpp14::MetaTypeClassHandler< SPECIALIZED_HANDLER, HANDLED_TYPE_CLASSES_PACK >
 

Namespaces

 Experimental
 
 Experimental::Cpp14
 

Typedefs

template<typename T >
using Experimental::MetaTypeOptional = boost::optional< T >
 
using Experimental::UncapturedMetaTypeOptional = MetaTypeOptional< UncapturedMetaType >
 
using Experimental::UncapturedMetaTypeClassOptional = MetaTypeOptional< UncapturedMetaTypeClass >
 
template<typename T , T VALUE>
using Experimental::CapturedMetaTypeOptional = MetaTypeOptional< MetaType< T, VALUE >>
 
template<MetaTypeClassifications T>
using Experimental::CapturedMetaTypeClassOptional = MetaTypeOptional< MetaTypeClass< T >>
 
using Experimental::GeoMetaTypeFactory = MetaTypeFactory< SQLTypes, kPOINT, kLINESTRING, kPOLYGON, kMULTIPOLYGON >
 
using Experimental::FullMetaTypeFactory = MetaTypeFactory< SQLTypes, kNULLT, kBOOLEAN, kCHAR, kVARCHAR, kNUMERIC, kDECIMAL, kINT, kSMALLINT, kFLOAT, kDOUBLE, kTIME, kTIMESTAMP, kBIGINT, kTEXT, kDATE, kARRAY, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kPOINT, kLINESTRING, kPOLYGON, kMULTIPOLYGON, kTINYINT, kGEOMETRY, kGEOGRAPHY, kEVAL_CONTEXT_TYPE >
 
using Experimental::GeoMetaTypeClassFactory = MetaTypeClassFactory< Geometry >
 
using Experimental::StringMetaTypeClassFactory = MetaTypeClassFactory< String >
 
using Experimental::FullMetaTypeClassFactory = MetaTypeClassFactory< Geometry, Array, String, Bucketizable >
 
template<template< class > class SPECIALIZED_HANDLER>
using Experimental::GeoMetaTypeHandler = MetaTypeHandler< SPECIALIZED_HANDLER, SQLTypes, kPOINT, kLINESTRING, kPOLYGON, kMULTIPOLYGON >
 
template<template< class > class SPECIALIZED_HANDLER>
using Experimental::FullMetaTypeHandler = MetaTypeHandler< SPECIALIZED_HANDLER, SQLTypes, kNULLT, kBOOLEAN, kCHAR, kVARCHAR, kNUMERIC, kDECIMAL, kINT, kSMALLINT, kFLOAT, kDOUBLE, kTIME, kTIMESTAMP, kBIGINT, kTEXT, kDATE, kARRAY, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kPOINT, kLINESTRING, kPOLYGON, kMULTIPOLYGON, kTINYINT, kGEOMETRY, kGEOGRAPHY, kEVAL_CONTEXT_TYPE >
 
template<template< class > class SPECIALIZED_HANDLER>
using Experimental::GeoVsNonGeoClassHandler = MetaTypeClassHandler< SPECIALIZED_HANDLER, Geometry >
 
template<template< class > class SPECIALIZED_HANDLER>
using Experimental::FullMetaTypeClassHandler = MetaTypeClassHandler< SPECIALIZED_HANDLER, Geometry, Array, String, Bucketizable >
 

Enumerations

enum  Experimental::MetaTypeClassifications { Experimental::Geometry, Experimental::Array, Experimental::String, Experimental::Bucketizable }
 

Functions

template<template< class > class SPECIALIZED_HANDLER, typename SQL_TYPE_INFO , typename... HANDLER_ARGS>
decltype(auto) Experimental::FullMetaTypeSwitch (SQL_TYPE_INFO const &ti, HANDLER_ARGS &&...handler_args)
 
template<template< class > class SPECIALIZED_HANDLER, typename SQL_TYPE_INFO , typename... HANDLER_ARGS>
decltype(auto) Experimental::FullMetaTypeClassSwitch (SQL_TYPE_INFO const &ti, HANDLER_ARGS &&...handler_args)