Utility Library
[Libraries]


Detailed Description

Created: 12th December 2006 Updated: 13th March 2007.

This library defines classes and functions that are used by other libraries and/or have no other obvious grouping.

The utility components provided by the STLSoft libraries are subdivided into project/library-specific projects, which include:


Modules

 Constraints Utility Library
 This library defines classes, functions and macros that act as constraints.
 COM Utility Library
 This library defines classes and functions for COM that are used by other libraries and/or have no other obvious grouping.
 Windows Utility Library

Classes

class  module_scope
 Scopes the initialisation and uninitialisation of an ATL module. More...
struct  CMemoryException_throwing_policy
 Memory exception translation policy that ensures CMemoryException* is the thrown type in all cases. More...
struct  bad_alloc_throwing_policy
 Memory exception translation policy that ensures std::bad_alloc is the thrown type in all cases. More...
class  sinteger64
 Signed 64-bit integer class. More...
class  pointer_proxy
 Acts as a proxy for a pointer. More...
class  const_pointer_proxy
 Acts as a proxy for a pointer-to-const. More...
class  reference_proxy
 Acts as a proxy for a reference. More...
class  const_reference_proxy
 Acts as a proxy for a reference-to-const. More...
class  value_proxy
 Acts as a proxy for a value. More...
struct  compiler_optimisation_traits
 traits class for (current) compiler More...
class  inert
 This class is almost completely unusable, and is used as a placeholder or as a name remover. More...
struct  integral_printf_traits
 Traits for determining the size, in printf-ed form, of the minimum and maximum values of types. More...
struct  limit_traits
 Traits for determining the minimum and maximum values of types. More...
class  must_init
 Wraps a variable and forces its explicit initialisation by the user. More...
struct  NULL_v
 Represents a type that can be an active replacement for NULL. More...
struct  operator_bool_generator
 Template which provides the types and conversion operations for safe and highly-portable "<code>operator bool() const</code>". More...
class  operator_bool_adaptor
 This class is a reverse bolt-in, which provides the "safe" operator bool to its parameterising type, in terms of its is_open method. More...
class  option_verification_exception
 Exception thrown by the options_verifier class template. More...
struct  option_verification_policy
 Exception policy for options verification. More...
class  options_verifier
 Verifies that a given variable is equal to one of a set of options. More...
class  options_verifier_comparison_ref
 Acts as a temporary reference to the options_verifier. More...
struct  pair
 Represents a pair. More...
class  placement_aid
 Scopes the lifetime of an object created by placement new. More...
struct  printf_traits
 Traits for determining the size, in printf-ed form, of the minimum and maximum values of types. More...
struct  sign_traits
 Traits for determining the signed, unsigned and alternate-signed type. More...
struct  int_size_traits
 traits type for determining the signed and unsigned forms of a given integral type More...
class  static_initialiser
 static_initialiser More...
class  api_constructor
 Used to initialise APIs. More...
class  class_constructor
 Used to initialise classes. More...
struct  iterator_base
 Base type for iterator types. More...
struct  pointer_iterator
 Pointer iterator type. More...
class  true_typedef
 This class is used to create strong types from base types, to facilitate type disambiguation, overloading and mutual incompatibility. More...
class  unused_return_value_monitor
 Return value adaptor for monitoring whether return values are used. More...
struct  ZERO_v
 Represents a type that can be an active replacement for ZERO. More...
struct  get_undoc_clipboard_fmt__
 get_undoc_clipboard_fmt__ More...

Defines

#define STLSOFT_DEFINE_OPERATOR_BOOL_TYPES(U, G, B)
 Defines the types for a type-safe boolean operator.
#define stlsoft_iterator_query_category(I, i)   (*static_cast<ss_typename_type_k std::iterator_traits<I>::iterator_category*>(0))
 Iterator category obtainer.

Typedefs

typedef must_init< bool > bool_init_t
 Specialisation of must_init for bool.
typedef must_init< char > char_init_t
 Specialisation of must_init for char.
typedef must_init< wchar_t > wchar_t_init_t
 Specialisation of must_init for wchar_t.
typedef must_init< signed char > signed_char_init_t
 Specialisation of must_init for signed char.
typedef must_init< unsigned char > unsigned_char_init_t
 Specialisation of must_init for unsigned char.
typedef must_init< short > short_init_t
 Specialisation of must_init for short.
typedef must_init< unsigned short > unsigned_short_init_t
 Specialisation of must_init for unsigned short.
typedef must_init< int > int_init_t
 Specialisation of must_init for int.
typedef must_init< unsigned int > unsigned_int_init_t
 Specialisation of must_init for unsigned int.
typedef must_init< long > long_init_t
 Specialisation of must_init for long.
typedef must_init< unsigned long > unsigned_long_init_t
 Specialisation of must_init for unsigned long.
typedef must_init< float > float_init_t
 Specialisation of must_init for float.
typedef must_init< double > double_init_t
 Specialisation of must_init for double.
typedef must_init< long double > long_double_init_t
 Specialisation of must_init for long double.

Functions

template<typename T>
void dispose_set_null (T *&pt)
 Disposes the managed type, and resets the pointer.
template<typename C>
void dispose_contents (C *pc)
 Disposes all the items in a container.
template<typename S>
int system (S const &s)
 system()
template<typename S>
ss_typename_type_ret_k
string_traits< S >::char_type * 
strdup (S const &s)
 Duplicates the given string.
char * strdup (char const *s)
 Duplicates the multibyte C-string.
wchar_t * strdup (wchar_t const *s)
 Duplicates the wide C-string.
template<typename A>
pointer_proxy< A > ptr_proxy (A *a)
 Creator function for the pointer_proxy.
template<typename A>
const_pointer_proxy< A > const_ptr_proxy (A const *a)
 Creator function for the const_pointer_proxy.
template<typename A>
reference_proxy< A > ref_proxy (A &a)
 Creator function for the reference_proxy.
template<typename A>
const_reference_proxy< A > const_ref_proxy (A &a)
 Creator function for the const_reference_proxy.
template<typename A>
value_proxy< A > val_proxy (A a)
 Creator function for the value_proxy.
template<typename T>
T const & minimum (T const &lhs, T const &rhs)
 Determines the minimum of two values.
template<typename T>
T const & maximum (T const &lhs, T const &rhs)
 Determines the maximum of two values.
static NULL_v create ()
 Static creation.
static ZERO_v create ()
 Static creation.
bool operator== (ZERO_v const &, ss_sint8_t i)
 operator == for ZERO_v and integral types
bool operator== (ss_sint8_t i, ZERO_v const &)
 operator == for an integral type and ZERO_v
bool operator!= (ZERO_v const &, ss_sint8_t i)
 operator != for ZERO_v and an integral type
bool operator!= (ss_sint8_t i, ZERO_v const &)
 operator != for an integral type and ZERO_v
template<typename T>
void zero_struct (T &t)
 Initialises all elements of a structure to zero.
template<typename T>
void init_struct (T &t)
 Initialises all members of a structure to zero, and sets the size member to the size of the structure.


Define Documentation

#define STLSOFT_DEFINE_OPERATOR_BOOL_TYPES ( U,
G,
 ) 

Value:

\
    typedef stlsoft_ns_qual(operator_bool_generator)<U>::class_type   G;                            \
    typedef G::return_type                                            B
Defines the types for a type-safe boolean operator.

Defines the types for a type-safe boolean operator, for use in templates.

Parameters:
U The Unique type. This is usually the class_type member type of the class for which we are providing the boolean operator, but it could be any type.
G The Generator type. This is the type you use to qualify your call to translate() inside the boolean operator
B The Boolean type. This is the type of the boolean operator
U The Unique type. This is usually the class_type member type of the class for which we are providing the boolean operator, but it could be any type.
G The Generator type. This is the type you use to qualify your call to translate() inside the boolean operator
B The Boolean type. This is the type of the boolean operator
Note:
This is identical in form and purpose to STLSOFT_DEFINE_OPERATOR_BOOL_TYPES(), except that it must be used for implementing operator boolean for templates

#define stlsoft_iterator_query_category ( I,
 )     (*static_cast<ss_typename_type_k std::iterator_traits<I>::iterator_category*>(0))

Iterator category obtainer.

Parameters:
I The iterator type
i The iterator instance


Typedef Documentation

typedef must_init<bool> bool_init_t

Specialisation of must_init for bool.

typedef must_init<char> char_init_t

Specialisation of must_init for char.

typedef must_init<double> double_init_t

Specialisation of must_init for double.

typedef must_init<float> float_init_t

Specialisation of must_init for float.

typedef must_init<int> int_init_t

Specialisation of must_init for int.

typedef must_init<long double> long_double_init_t

Specialisation of must_init for long double.

typedef must_init<long> long_init_t

Specialisation of must_init for long.

typedef must_init<short> short_init_t

Specialisation of must_init for short.

typedef must_init<signed char> signed_char_init_t

Specialisation of must_init for signed char.

typedef must_init<unsigned char> unsigned_char_init_t

Specialisation of must_init for unsigned char.

typedef must_init<unsigned int> unsigned_int_init_t

Specialisation of must_init for unsigned int.

typedef must_init<unsigned long> unsigned_long_init_t

Specialisation of must_init for unsigned long.

typedef must_init<unsigned short> unsigned_short_init_t

Specialisation of must_init for unsigned short.

typedef must_init<wchar_t> wchar_t_init_t

Specialisation of must_init for wchar_t.


Function Documentation

const_pointer_proxy<A> stlsoft::const_ptr_proxy ( A const *  a  )  [inline]

Creator function for the const_pointer_proxy.

const_reference_proxy<A> stlsoft::const_ref_proxy ( A &  a  )  [inline]

Creator function for the const_reference_proxy.

static ZERO_v create (  )  [inline, static, inherited]

Static creation.

References ZERO_v::ZERO_v().

static NULL_v create (  )  [inline, static, inherited]

Static creation.

References NULL_v::NULL_v().

void stlsoft::dotnetstl_project::dispose_contents ( C *  pc  )  [inline]

Disposes all the items in a container.

Parameters:
pc The container on whose items to call Dispose().

References stlsoft::dotnetstl_project::dispose_set_null().

void stlsoft::dotnetstl_project::dispose_set_null ( T *&  pt  )  [inline]

Disposes the managed type, and resets the pointer.

Parameters:
pt The pointer on which to call Dispose(). Can be null, but otherwise must be convertible to IDispose

Referenced by stlsoft::dotnetstl_project::dispose_contents().

void winstl::init_struct ( T &  t  )  [inline]

Initialises all members of a structure to zero, and sets the size member to the size of the structure.

References ss_typename_type_k.

T const& stlsoft::maximum ( T const &  lhs,
T const &  rhs 
) [inline]

Determines the maximum of two values.

Note:
This is supplied to avoid problems with libraries that #define min

T const& stlsoft::minimum ( T const &  lhs,
T const &  rhs 
) [inline]

Determines the minimum of two values.

Note:
This is supplied to avoid problems with libraries that #define min

bool stlsoft::operator!= ( ss_sint8_t  i,
ZERO_v const &   
) [inline]

operator != for an integral type and ZERO_v

bool stlsoft::operator!= ( ZERO_v const &  ,
ss_sint8_t  i 
) [inline]

operator != for ZERO_v and an integral type

bool stlsoft::operator== ( ss_sint8_t  i,
ZERO_v const &   
) [inline]

operator == for an integral type and ZERO_v

bool stlsoft::operator== ( ZERO_v const &  ,
ss_sint8_t  i 
) [inline]

operator == for ZERO_v and integral types

pointer_proxy<A> stlsoft::ptr_proxy ( A *  a  )  [inline]

Creator function for the pointer_proxy.

reference_proxy<A> stlsoft::ref_proxy ( A &  a  )  [inline]

Creator function for the reference_proxy.

wchar_t* stlsoft::strdup ( wchar_t const *  s  )  [inline]

Duplicates the wide C-string.

char* stlsoft::strdup ( char const *  s  )  [inline]

Duplicates the multibyte C-string.

ss_typename_type_ret_k string_traits<S>::char_type* stlsoft::strdup ( S const &  s  )  [inline]

Duplicates the given string.

Note:
The returned string is allocated by the standard strdup() function, which uses malloc() to allocate the memory, and so must be freed using free()

References stlsoft::c_str_ptr(), and stlsoft_ns_qual.

int stlsoft::system ( S const &  s  )  [inline]

value_proxy<A> stlsoft::val_proxy ( a  )  [inline]

Creator function for the value_proxy.

void winstl::zero_struct ( T &  t  )  [inline]

Initialises all elements of a structure to zero.

Referenced by winstl::to_FILETIME(), and winstl::to_SYSTEMTIME().


Generated on Thu Jun 10 08:58:19 2010 for STLSoft by  doxygen 1.5.6