cereal
A C++11 library for serialization
Classes | Static Public Member Functions | List of all members
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: