blob: f41344877abad38d135a898ce09397fce74c6294 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <algorithm>
#include <functional>
#include <span>
extern "C"
{
using global_initializer = auto (*)() -> void;
extern global_initializer __init_array_start;
extern global_initializer __init_array_end;
auto invoke_global_constructors() -> void
{
auto initializers = std::span{&__init_array_start, &__init_array_end};
std::ranges::for_each(initializers, [](auto invokable) { std::invoke(invokable); });
}
}
|