SiddiqSoft.RunOnEnd 1.2.1

Install-Package SiddiqSoft.RunOnEnd -Version 1.2.1
dotnet add package SiddiqSoft.RunOnEnd --version 1.2.1
<PackageReference Include="SiddiqSoft.RunOnEnd" Version="1.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SiddiqSoft.RunOnEnd --version 1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SiddiqSoft.RunOnEnd, 1.2.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install SiddiqSoft.RunOnEnd as a Cake Addin
#addin nuget:?package=SiddiqSoft.RunOnEnd&version=1.2.1

// Install SiddiqSoft.RunOnEnd as a Cake Tool
#tool nuget:?package=SiddiqSoft.RunOnEnd&version=1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

RunOnEnd : Run a lambda in destructor

CodeQL Build Status


  • A simpler "run on end" vs. the custom deletor available via std::unique_ptr<>. It is important to note that we do not provide an "owning" helper as this is better accomplished via the destructor code for std::unique_ptr<>.
  • Use the nuget SiddiqSoft.RunOnEnd
  • Copy paste..whatever works.


The utility can be used to ensure you cleanup within a scope, update some global variable or use the definition to build your own auto-cleanup.

Consider the following example where the utility UseWinsock builds on RunOnEnd for its functionality.

struct UseWinsock : private siddiqsoft::RunOnEnd
    UseWinsock() noexcept
        : m_rc(E_FAIL)
        , siddiqsoft::RunOnEnd([&]() {
            if (m_rc == S_OK) WSACleanup();
        ZeroMemory(&m_wsaData, sizeof(m_wsaData));
        m_rc = WSAStartup(MAKEWORD(2, 2), &m_wsaData);
        m_rc = (m_rc == 0) ? S_OK : WSAGetLastError();

    operator bool() { return (m_rc == S_OK); }

    int     m_rc;
    WSADATA m_wsaData;

<small align="right">

© 2021 Siddiq Software LLC. All rights reserved.


This package has no dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on SiddiqSoft.RunOnEnd:

Package Downloads

Azure REST API Helpers for Modern C++. Featuring helper functions for date-time, encryption tokens for Azure REST API as a single header-only package and native Win32 libraries.


Azure Cosmos REST-API Client for Modern C++

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.1 368 11/20/2021
1.2.0 1,884 8/18/2021
1.1.1 97 7/30/2021
1.1.0 303 7/28/2021
1.0.3 104 7/28/2021
1.0.2 83 7/27/2021
1.0.1 163 7/27/2021
1.0.0 140 7/26/2021