nanodbc
A small C++ wrapper for the native C ODBC API
Loading...
Searching...
No Matches
Utilities

Additional nanodbc utility classes and functions. More...

Collaboration diagram for Utilities:

Namespaces

namespace  nanodbc::detail
 Implementation details, not part of the interface.
 

Classes

struct  nanodbc::batch_ops
 A type capturing parameter array length as well as number of rows in a rowset of a result. More...
 
struct  nanodbc::date
 A type for representing date data. More...
 
struct  nanodbc::time
 A type for representing time data. More...
 
struct  nanodbc::timestamp
 A type for representing timestamp data. More...
 
struct  nanodbc::timestampoffset
 A type for representing timestamp+offset data. More...
 
class  nanodbc::attribute
 A class representing a connection or a statement attribute. More...
 

Typedefs

template<typename T >
using nanodbc::is_string = std::bool_constant< std::is_same_v< std::decay_t< T >, std::string >||std::is_same_v< std::decay_t< T >, wide_string >||std::is_same_v< std::decay_t< T >, std::string_view >||std::is_same_v< std::decay_t< T >, wide_string_view > >
 A type trait for testing if a type is a std::basic_string compatible with the current nanodbc configuration.
 
template<typename T >
using nanodbc::is_owning_string = std::bool_constant< std::is_same_v< std::decay_t< T >, std::string >||std::is_same_v< std::decay_t< T >, wide_string > >
 A type trait for testing if a type is a string owning the characters it holds.
 
template<typename T >
using nanodbc::is_character = std::bool_constant< std::is_same_v< std::decay_t< T >, std::string::value_type >||std::is_same_v< std::decay_t< T >, wide_char_t > >
 A type trait for testing if a type is a character compatible with the current nanodbc configuration.
 
template<typename T >
using nanodbc::enable_if_string = std::enable_if_t< is_string_v< T > >
 Enables an overload only for the string types nanodbc binds as strings.
 
template<typename T >
using nanodbc::enable_if_character = std::enable_if_t< is_character_v< T > >
 Enables an overload only for the character types nanodbc binds as strings.
 

Variables

template<typename T >
constexpr bool nanodbc::is_string_v = is_string<T>::value
 Whether a type is a string compatible with the current nanodbc configuration.
 
template<typename T >
constexpr bool nanodbc::is_owning_string_v = is_owning_string<T>::value
 Whether a type is a string owning the characters it holds.
 
template<typename T >
constexpr bool nanodbc::is_character_v = is_character<T>::value
 Whether a type is a character compatible with the current nanodbc configuration.
 

Detailed Description

Additional nanodbc utility classes and functions.

Typedef Documentation

◆ is_owning_string

template<typename T >
using nanodbc::is_owning_string = typedef std::bool_constant< std::is_same_v<std::decay_t<T>, std::string> || std::is_same_v<std::decay_t<T>, wide_string> >

A type trait for testing if a type is a string owning the characters it holds.

Unlike is_string, the view types are excluded: they neither own their characters nor promise a terminating NUL, which is what binding a single value hands to the driver.