Develop Biology
The language of life
Cast.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) 2022 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
namespace
bio
{
25
26
namespace
physical {
27
class
Wave;
28
}
29
30
template
<
typename
TO,
typename
FROM >
31
TO
ChemicalCast
(FROM toCast)
32
{
33
return
toCast->AsAtom()->template As< TO >();
34
}
35
41
template
<
typename
T >
42
T
CloneAndCast
(
const
T toClone)
43
{
44
//Dereference here might be dangerous & need sanitization.
45
return
ChemicalCast< T, ::bio::physical::Wave* >(toClone->Clone()->AsWave());
46
}
47
48
49
}
//bio namespace
bio
Definition:
Cell.h:31
bio::ChemicalCast
TO ChemicalCast(FROM toCast)
Definition:
Cast.h:31
bio::CloneAndCast
T CloneAndCast(const T toClone)
Definition:
Cast.h:42
inc
bio
chemical
common
Cast.h
Generated by
1.9.4