FWIW, the scope_guard/unique_resource paper came with an implementation available on my github account (for C++17)

https://github.com/PeterSommerlad/scope17

regards
Peter

sent from a mobile device so please excuse strange words due to autocorrection. 
Peter Sommerlad
peter.cpp@sommerlad.ch
+41-79-432 23 32

On 4 Aug 2021, at 16:48, Jens Maurer via Std-Proposals <std-proposals@lists.isocpp.org> wrote:

On 04/08/2021 15.48, Arthur O'Dwyer wrote:
On Wed, Aug 4, 2021, 9:31 AM Jens Maurer via Std-Proposals <std-proposals@lists.isocpp.org <mailto:std-proposals@lists.isocpp.org>> wrote:


   In the interest of clarity, the shortest generic scope guard using
   std::unique_ptr that I've come up with so far is:


   template<class X>
   using scope_guard = std::unique_ptr<void, X>;

   void f()
   {
     scope_guard guard(0, [](void*) { std::cout << "hi"; });
   }


This is pretty neat, actually! But are you sure that unique_ptr calls its deleter when it holds nullptr? I think you need to replace `0` with `&guard`,

Yes, I guess that's correct.

You could save one more character by changing `void*` to `auto`.

Yes.

Jens


--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals