cereal::access(3) Library Functions Manual cereal::access(3)

# [NAME](#NAME)

cereal::access - A class that can be made a friend to give cereal access to non public functions.

# [SYNOPSIS](#SYNOPSIS)

#include &lt;/home/build/include/cereal/access.hpp&gt;

## [Static Public Member Functions](#Static_Public_Member_Functions)

template&lt;class Archive, class T&gt; static auto **member\_serialize** (Archive &ar, T &t) -&gt; decltype(t.CEREAL\_SERIALIZE\_FUNCTION\_NAME(ar))  
template&lt;class Archive, class T&gt; static auto **member\_save** (Archive &ar, T const &t) -&gt; decltype(t.CEREAL\_SAVE\_FUNCTION\_NAME(ar))  
template&lt;class Archive, class T&gt; static auto **member\_save\_non\_const** (Archive &ar, T &t) -&gt; decltype(t.CEREAL\_SAVE\_FUNCTION\_NAME(ar))  
template&lt;class Archive, class T&gt; static auto **member\_load** (Archive &ar, T &t) -&gt; decltype(t.CEREAL\_LOAD\_FUNCTION\_NAME(ar))  
template&lt;class Archive, class T&gt; static auto **member\_save\_minimal** (Archive const &ar, T const &t) -&gt; decltype(t.CEREAL\_SAVE\_MINIMAL\_FUNCTION\_NAME(ar))  
template&lt;class Archive, class T&gt; static auto **member\_save\_minimal\_non\_const** (Archive const &ar, T &t) -&gt; decltype(t.CEREAL\_SAVE\_MINIMAL\_FUNCTION\_NAME(ar))  
template&lt;class Archive, class T, class U&gt; static auto **member\_load\_minimal** (Archive const &ar, T &t, U &&u) -&gt; decltype(t.CEREAL\_LOAD\_MINIMAL\_FUNCTION\_NAME(ar, std::forward&lt; U &gt;(u)))  
template&lt;class Archive, class T&gt; static auto **member\_serialize** (Archive &ar, T &t, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_SERIALIZE\_FUNCTION\_NAME(ar, version))  
template&lt;class Archive, class T&gt; static auto **member\_save** (Archive &ar, T const &t, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_SAVE\_FUNCTION\_NAME(ar, version))  
template&lt;class Archive, class T&gt; static auto **member\_save\_non\_const** (Archive &ar, T &t, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_SAVE\_FUNCTION\_NAME(ar, version))  
template&lt;class Archive, class T&gt; static auto **member\_load** (Archive &ar, T &t, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_LOAD\_FUNCTION\_NAME(ar, version))  
template&lt;class Archive, class T&gt; static auto **member\_save\_minimal** (Archive const &ar, T const &t, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_SAVE\_MINIMAL\_FUNCTION\_NAME(ar, version))  
template&lt;class Archive, class T&gt; static auto **member\_save\_minimal\_non\_const** (Archive const &ar, T &t, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_SAVE\_MINIMAL\_FUNCTION\_NAME(ar, version))  
template&lt;class Archive, class T, class U&gt; static auto **member\_load\_minimal** (Archive const &ar, T &t, U &&u, const std::uint32\_t version) -&gt; decltype(t.CEREAL\_LOAD\_MINIMAL\_FUNCTION\_NAME(ar, std::forward&lt; U &gt;(u), version))  
template&lt;class T&gt; static auto **shared\_from\_this** (T &t) -&gt; decltype(t.shared\_from\_this())  
template&lt;class T, class ... Args&gt; static void **construct** (T \*&ptr, Args &&... args)  
template&lt;class T&gt; static T * **construct** ()  
template&lt;class T&gt; static std::false\_type **load\_and\_construct** (...)  
template&lt;class T, class Archive&gt; static auto **load\_and\_construct** (Archive &ar, **::cereal::construct**&lt; T &gt; &construct) -&gt; decltype(T::load\_and\_construct(ar, construct))  
template&lt;class T, class Archive&gt; static auto **load\_and\_construct** (Archive &ar, **::cereal::construct**&lt; T &gt; &construct, const std::uint32\_t version) -&gt; decltype(T::load\_and\_construct(ar, construct, version))

# [Detailed Description](#Detailed_Description)

A class that can be made a friend to give cereal access to non public functions.

If you desire non-public serialization functions within a class, cereal can only access these if you declare **cereal::access** a friend.

```
class MyClass
{


  private:


    friend class cereal::access; // gives access to the private serialize


    template <class Archive>


    void serialize( Archive & ar )


    {


      // some code


    }
};
```

# [Author](#Author)

Generated automatically by Doxygen for cereal from the source code.

Mon Oct 26 2026 20:39:03 cereal

---

Document: cereal_access(3) from cereal 1.3.2-r8 (Chainguard OS)
Source: https://github.com/USCiLab/cereal
