diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index e205fd0e8..039d07e29 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -322,8 +322,8 @@ ref openStore(bool reserveSpace) } return mode == mDaemon - ? make_ref() - : make_ref(reserveSpace); + ? (ref) make_ref() + : (ref) make_ref(reserveSpace); } diff --git a/src/libutil/types.hh b/src/libutil/types.hh index 23eb52512..0eae46c5f 100644 --- a/src/libutil/types.hh +++ b/src/libutil/types.hh @@ -134,16 +134,18 @@ public: return p; } + template + operator ref () + { + return ref((std::shared_ptr) p); + } + private: template friend ref make_ref(Args&&... args); - template - friend ref - make_ref(Args&&... args); - }; template @@ -154,13 +156,4 @@ make_ref(Args&&... args) return ref(p); } -template -inline ref -make_ref(Args&&... args) -{ - auto p = std::make_shared(std::forward(args)...); - return ref(p); -} - - }