Skip to content

Instantly share code, notes, and snippets.

@picanumber
Created March 20, 2016 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save picanumber/c73b14dcd644c185b938 to your computer and use it in GitHub Desktop.
Save picanumber/c73b14dcd644c185b938 to your computer and use it in GitHub Desktop.
template <class F, class T>
struct O_x
{
T& mem;
constexpr O_x(T& data) : mem(data) {}
constexpr decltype(auto) give()
{
return mem;
}
constexpr decltype(auto) clone()
{
return mem;
}
};
template <class F, class T>
struct O_x<F, T&&>
{
T mem;
constexpr O_x(T&& data) : mem(std::move(data)) {}
constexpr decltype(auto) give()
{
return (mem);
}
constexpr decltype(auto) clone()
{
return mem;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment