libbio
Loading...
Searching...
No Matches
inc
bio
chemical
relativity
WaveTypeId.h
Go to the documentation of this file.
1
/*
2
* This file is a part of the Biology project by eons LLC.
3
* Biology (aka Develop Biology) is a framework for approaching software
4
* development from a natural sciences perspective.
5
*
6
* Copyright (C) 2026 Séon O'Shannon & eons LLC
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU Affero General Public License as
10
* published by the Free Software Foundation, either version 3 of the
11
* License, or (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU Affero General Public License for more details.
17
*
18
* You should have received a copy of the GNU Affero General Public License
19
* along with this program. If not, see <https://www.gnu.org/licenses/>.
20
*/
21
22
#pragma once
23
24
#include "
bio/common/macro/OptimizeMacros.h
"
25
#include "
bio/physical/wave/Wave.h
"
26
#include "
bio/chemical/relativity/PeriodicTable.h
"
27
#include "
bio/common/thread/SafelyAccess.h
"
28
29
namespace
bio
{
30
namespace
chemical {
31
63
template
<
typename
T >
64
inline
bool
WaveHasExactTypeId
(
Pointer< const ::bio::physical::Wave >
wave
)
65
{
66
if
(!
wave
)
67
{
68
return
false
;
69
}
70
71
//@formatter:off
72
#if BIO_MEMORY_OPTIMIZE_LEVEL == 0
73
//@formatter:on
74
75
// Per-T static-const: TypeId<T>() locks the PeriodicTable once per
76
// (T, process). Subsequent calls are a load.
77
static
const
AtomicNumber
kTargetId
=
TypeId< T >
();
78
79
return
kTargetId
!= 0 &&
wave
->GetTypeId() ==
kTargetId
;
80
81
//@formatter:off
82
#else
83
//@formatter:on
84
85
(
void
)
wave
;
86
return
false
;
87
88
//@formatter:off
89
#endif
// BIO_MEMORY_OPTIMIZE_LEVEL == 0
90
//@formatter:on
91
}
92
93
}
//chemical namespace
94
}
//bio namespace
OptimizeMacros.h
PeriodicTable.h
SafelyAccess.h
Wave.h
bio::Pointer
Definition
Pointer.h:115
bio::chemical::WaveHasExactTypeId
bool WaveHasExactTypeId(Pointer< const ::bio::physical::Wave > wave)
Definition
WaveTypeId.h:64
bio::chemical::AtomicNumber
uint16_t AtomicNumber
Definition
chemical/common/Types.h:85
bio
Definition
FinalCell.h:29
Generated by
1.9.8