Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
pre_main_call.hpp
Go to the documentation of this file.
1// -------------------------------------------------------//
2//
3// SHAMROCK code for hydrodynamics
4// Copyright (c) 2021-2026 Timothée David--Cléris <tim.shamrock@proton.me>
5// SPDX-License-Identifier: CeCILL Free Software License Agreement v2.1
6// Shamrock is licensed under the CeCILL 2.1 License, see LICENSE for more information
7//
8// -------------------------------------------------------//
9
10#pragma once
11
20
22#define PRE_MAIN_FUNCTION_CALL_NAMED(class_name, instance_name, lambda) \
23 namespace { \
24 struct class_name { \
25 class_name() { lambda(); } \
26 }; \
27 static const class_name instance_name{}; \
28 }
29
45#define PRE_MAIN_FUNCTION_CALL(lambda) \
46 PRE_MAIN_FUNCTION_CALL_NAMED( \
47 __shamrock_unique_name(_PRE_MAIN_FUNCTION_CALL), \
48 __shamrock_unique_name(_PRE_MAIN_FUNCTION_CALL_INSTANCE), \
49 lambda)
Provides macros for generating unique identifiers at compile time.