24 Some(
const Some<T>& other);
25 explicit Some(T* other);
26 Some& operator=(T* other);
29 static Some<T> from_raw(T* raw);
57 Some<T>::Some(
const Some<T>& other)
63 Some<T>::Some(T* other)
69 Some<T>& Some<T>::operator=(T* other)
84 Some<T>::operator T*()
89 T* Some<T>::operator->()
103 template <
typename T>
104 Some<T> Some<T>::from_raw(T* raw)
120 template <
typename T,
class... Args>
121 Some<T> some(Args&&... args)
123 T* ptr =
new T(args...);
124 return Some<T>::from_raw(ptr);
128 inline T wrap(
const T& value)
134 inline Some<T> wrap(T* ptr)
136 return Some<T>::from_raw(ptr);
140 inline Some<T> wrap(
const Some<T>& other)
all of classes and functions are contained in the shogun namespace