cereal::detail::StaticObject< T > Class Template Reference

A static, pre-execution object. More...

`#include </home/shane/workspace/cereal/include/cereal/details/static_object.hpp>`

## Classes

class | LockGuard
| A class that acts like std::lock_guard. More...

## Static Public Member Functions

static T & | getInstance ()
static LockGuard | lock ()
| Attempts to lock this static object for the current scope. More...

## Detailed Description

### template<class T>
class cereal::detail::StaticObject< T >

A static, pre-execution object.

This class will create a single copy (singleton) of some type and ensures that merely referencing this type will cause it to be instantiated and initialized pre-execution. For example, this is used heavily in the polymorphic pointer serialization mechanisms to bind various archive types with different polymorphic classes

## Member Function Documentation

## lock()

template<class T >

static LockGuard cereal::detail::StaticObject< T >::lock | ( |  | ) |

inlinestatic

Attempts to lock this static object for the current scope.

Note
  This function is a no-op if cereal is not compiled with thread safety enabled (CEREAL_THREAD_SAFE = 1).

This function returns an object that holds a lock for this StaticObject that will release its lock upon destruction. This call will block until the lock is available.

The documentation for this class was generated from the following file:

- /home/shane/workspace/cereal/include/cereal/details/static_object.hpp