|
|
@@ -9,8 +9,6 @@
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
-#include <type_traits>
|
|
|
-
|
|
|
#include "comparable.hpp"
|
|
|
|
|
|
namespace types {
|
|
|
@@ -36,11 +34,9 @@ namespace types {
|
|
|
explicit opaque_typedef(Base const & value) : value_(value) {};
|
|
|
explicit opaque_typedef(Base && value) : value_(std::forward<Base>(value)) {};
|
|
|
template <typename B, typename T, template <typename> class... S>
|
|
|
- opaque_typedef(opaque_typedef<B, T, S...> const & other)
|
|
|
- : opaque_typedef(other.template as<opaque_typedef>()) {}
|
|
|
+ opaque_typedef(opaque_typedef<B, T, S...> const & other);
|
|
|
|
|
|
Base const & get() const { return value_; }
|
|
|
explicit operator Base const &() const { return value_; }
|
|
|
- template <typename To> To as() const;
|
|
|
};
|
|
|
}
|