dune-common
2.9.0
Loading...
Searching...
No Matches
dune
common
stdthread.hh
Go to the documentation of this file.
1
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2
// vi: set et ts=4 sw=2 sts=2:
3
// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
4
// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
5
6
#ifndef DUNE_COMMON_STDTHREAD_HH
7
#define DUNE_COMMON_STDTHREAD_HH
8
9
namespace
Dune
10
{
11
12
// used internally by assertCallOnce for the actual check
13
void
doAssertCallOnce
(
const
char
*file,
int
line,
const
char
*function);
14
17
35
inline
void
assertCallOnce
(
const
char
*file =
nullptr
,
int
line = -1,
36
const
char
*function =
nullptr
)
37
{
38
// make sure to call this only the first time this function is invoked
39
[[maybe_unused]]
static
const
bool
works
40
= (
doAssertCallOnce
(file, line, function),
true
);
41
}
42
45
49
#define DUNE_ASSERT_CALL_ONCE() \
50
::Dune::assertCallOnce(__FILE__, __LINE__, __func__)
51
52
}
// namespace Dune
53
54
#endif
// DUNE_COMMON_STDTHREAD_HH
Dune
Dune namespace.
Definition
alignedallocator.hh:13
Dune::assertCallOnce
void assertCallOnce(const char *file=nullptr, int line=-1, const char *function=nullptr)
Make sure call_once() works and provide a helpful error message otherwise.
Definition
stdthread.hh:35
Dune::doAssertCallOnce
void doAssertCallOnce(const char *file, int line, const char *function)
Definition
stdthread.cc:42
Generated by
1.9.8