提交 03a68165 编写于 作者: B Behdad Esfahbod

[meta] Add hb_reference_wrapper<>

Functionality kinda superset of std:: counterpart.
上级 0bf86d9c
......@@ -138,6 +138,27 @@ struct
} HB_FUNCOBJ (hb_ref);
template <typename T>
struct hb_reference_wrapper
{
hb_reference_wrapper (T v) : v (v) {}
hb_reference_wrapper (const hb_reference_wrapper& o) : v (o.v) {}
bool operator == (const hb_reference_wrapper& o) const { return v == o.v; }
bool operator != (const hb_reference_wrapper& o) const { return v != o.v; }
T get () const { return v; }
T v;
};
template <typename T>
struct hb_reference_wrapper<T&>
{
hb_reference_wrapper (T& v) : v (&v) {}
hb_reference_wrapper (const hb_reference_wrapper& o) : v (o.v) {}
bool operator == (const hb_reference_wrapper& o) const { return v == o.v; }
bool operator != (const hb_reference_wrapper& o) const { return v != o.v; }
T* get () const { return v; }
T* v;
};
template <bool B, typename T = void> struct hb_enable_if {};
template <typename T> struct hb_enable_if<true, T> { typedef T type; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册