Skip to content
Snippets Groups Projects
Commit fc11aff9 authored by Yuri Kunde Schlesner's avatar Yuri Kunde Schlesner
Browse files

Common: Fix SCOPE_EXIT to actually create unique identifiers.

parent afc416c6
No related branches found
No related tags found
Loading
......@@ -31,6 +31,10 @@ template<> struct CompileTimeAssert<true> {};
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
/// Textually concatenates two tokens. The double-expansion is required by the C preprocessor.
#define CONCAT2(x, y) DO_CONCAT2(x, y)
#define DO_CONCAT2(x, y) x ## y
#ifndef _MSC_VER
#include <errno.h>
......
......@@ -4,6 +4,8 @@
#pragma once
#include "common/common_funcs.h"
namespace detail {
template <typename Func>
struct ScopeExitHelper {
......@@ -34,4 +36,4 @@ namespace detail {
* }
* \endcode
*/
#define SCOPE_EXIT(body) auto scope_exit_helper_##__LINE__ = detail::ScopeExit([&]() body)
#define SCOPE_EXIT(body) auto CONCAT2(scope_exit_helper_, __LINE__) = detail::ScopeExit([&]() body)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment