@@ -49,25 +49,16 @@ namespace edm {
4949 constexpr ESGetToken<ESProduct, ESRecord>& operator =(ESGetToken<ESProduct, ESRecord> const &) noexcept = default ;
5050
5151 template <typename ADAPTER>
52+ requires requires (ADAPTER&& a) { a.template consumes <ESProduct, ESRecord>(); }
5253 constexpr explicit ESGetToken (ADAPTER&& iAdapter) : ESGetToken(iAdapter.template consumes<ESProduct, ESRecord>()) {}
5354
5455 template <typename ADAPTER>
56+ requires requires (ADAPTER&& a) { a.template consumes <ESProduct, ESRecord>(); }
5557 constexpr ESGetToken<ESProduct, ESRecord>& operator =(ADAPTER&& iAdapter) {
5658 ESGetToken<ESProduct, ESRecord> temp (std::forward<ADAPTER>(iAdapter));
5759 return (*this = std::move (temp));
5860 }
5961
60- // protect against templated version being a better match
61- constexpr ESGetToken (ESGetToken<ESProduct, ESRecord>& iOther)
62- : ESGetToken(const_cast <const ESGetToken<ESProduct, ESRecord>&>(iOther)) {}
63- constexpr ESGetToken<ESProduct, ESRecord>& operator =(ESGetToken<ESProduct, ESRecord>& iOther) noexcept {
64- return (*this = const_cast <ESGetToken<ESProduct, ESRecord> const &>(iOther));
65- }
66- constexpr ESGetToken (ESGetToken<ESProduct, ESRecord> const && iOther) : ESGetToken(iOther) {}
67- constexpr ESGetToken<ESProduct, ESRecord>& operator =(ESGetToken<ESProduct, ESRecord> const && iOther) noexcept {
68- return (*this = iOther);
69- }
70-
7162 constexpr unsigned int transitionID () const noexcept { return m_transitionID; }
7263 constexpr bool isInitialized () const noexcept { return transitionID () != std::numeric_limits<unsigned int >::max (); }
7364 constexpr ESTokenIndex index () const noexcept { return m_index; }
0 commit comments