SiddiqSoft.RunOnEnd
1.2.1
dotnet add package SiddiqSoft.RunOnEnd --version 1.2.1
NuGet\Install-Package SiddiqSoft.RunOnEnd -Version 1.2.1
<PackageReference Include="SiddiqSoft.RunOnEnd" Version="1.2.1" />
paket add SiddiqSoft.RunOnEnd --version 1.2.1
#r "nuget: SiddiqSoft.RunOnEnd, 1.2.1"
// 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
RunOnEnd : Run a lambda in destructor
Objective
- 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 forstd::unique_ptr<>
. - Use the nuget SiddiqSoft.RunOnEnd
- Copy paste..whatever works.
Usage
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); }
private:
int m_rc;
WSADATA m_wsaData;
};
<small align="right">
© 2021 Siddiq Software LLC. All rights reserved.
</small>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
native | native is compatible. |
This package has no dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on SiddiqSoft.RunOnEnd:
Package | Downloads |
---|---|
SiddiqSoft.AzureCppUtils
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. |
|
SiddiqSoft.CosmosClient
Azure Cosmos REST-API Client for Modern C++ |
GitHub repositories
This package is not used by any popular GitHub repositories.