0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-01 09:38:58 +02:00

ircd::mods: Minor move import member defs outside of class def.

This commit is contained in:
Jason Volk 2018-09-13 15:56:11 -07:00
parent 03f9cea427
commit 75a05d864c

View file

@ -22,25 +22,77 @@ template<class T>
struct ircd::mods::import
:sym_ptr
{
template<class... args>
auto operator()(args&&... a) const
{
return sym_ptr::operator()<T>(std::forward<args>(a)...);
}
template<class... args> auto operator()(args&&... a) const;
template<class... args> auto operator()(args&&... a);
template<class... args>
auto operator()(args&&... a)
{
return sym_ptr::operator()<T>(std::forward<args>(a)...);
}
const T *operator->() const;
const T &operator*() const;
operator const T &() const;
const T *operator->() const { return sym_ptr::operator-><T>(); }
const T &operator*() const { return sym_ptr::operator*<T>(); }
operator const T &() const { return sym_ptr::operator*<T>(); }
T *operator->() { return sym_ptr::operator-><T>(); }
T &operator*() { return sym_ptr::operator*<T>(); }
operator T &() { return sym_ptr::operator*<T>(); }
T *operator->();
T &operator*();
operator T &();
using sym_ptr::sym_ptr;
};
template<class T>
ircd::mods::import<T>::operator T &()
{
return sym_ptr::operator*<T>();
}
template<class T>
T &
ircd::mods::import<T>::operator*()
{
return sym_ptr::operator*<T>();
}
template<class T>
T *
ircd::mods::import<T>::operator->()
{
return sym_ptr::operator-><T>();
}
template<class T>
ircd::mods::import<T>::operator
const T &()
const
{
return sym_ptr::operator*<T>();
}
template<class T>
const T &
ircd::mods::import<T>::operator*()
const
{
return sym_ptr::operator*<T>();
}
template<class T>
const T *
ircd::mods::import<T>::operator->()
const
{
return sym_ptr::operator-><T>();
}
template<class T>
template<class... args>
auto
ircd::mods::import<T>::operator()(args&&... a)
{
return sym_ptr::operator()<T>(std::forward<args>(a)...);
}
template<class T>
template<class... args>
auto
ircd::mods::import<T>::operator()(args&&... a)
const
{
return sym_ptr::operator()<T>(std::forward<args>(a)...);
}