y3c-stl 0.3.3
Friendly C++ STL wrapper with automatic stacktrace
Loading...
Searching...
No Matches
wrap.h File Reference
#include "y3c/terminate.h"
#include "y3c/life.h"
#include "y3c/typename.h"
#include <memory>
Include dependency graph for wrap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  wrap< base_type >
 値型wrap: base_type型のデータと、このデータの生存状態を管理するクラス More...
 
class  wrap< element_type & >
 参照型wrap: element_type型のデータへの参照を持つクラス More...
 
class  wrap< element_type * >
 ポインタ型wrap: element_type型のデータへのポインタと、 このポインタ自体の生存状態を管理するクラス More...
 

Namespaces

namespace  y3c
 

Typedefs

template<typename element_type >
using wrap_ref = wrap< element_type & >
 
template<typename element_type >
using const_wrap_ref = wrap< const element_type & >
 
template<typename element_type >
using ptr = wrap< element_type * >
 
template<typename element_type >
using const_ptr = wrap< const element_type * >
 
template<typename element_type >
using ptr_const = const wrap< element_type * >
 
template<typename element_type >
using const_ptr_const = const wrap< const element_type * >
 

Functions

template<typename element_type >
element_type & unwrap (const wrap< element_type & > &wrapper, internal::skip_trace_tag={})
 
template<typename base_type , typename std::enable_if<!std::is_pointer< base_type >::value &&!std::is_reference< base_type >::value, std::nullptr_t >::type = nullptr>
base_type & unwrap (wrap< base_type > &wrapper) noexcept
 
template<typename base_type , typename std::enable_if<!std::is_pointer< base_type >::value &&!std::is_reference< base_type >::value, std::nullptr_t >::type = nullptr>
const base_type & unwrap (const wrap< base_type > &wrapper) noexcept
 
template<typename element_type >
element_type * unwrap (const wrap< element_type * > &wrapper) noexcept