source: rrlib_rtti_conversion/tStaticCastOperation.hpp @ 0:d316daefc472

Last change on this file since 0:d316daefc472 was 0:d316daefc472, checked in by Max Reichardt <mreichardt@…>, 3 years ago

Initial commit

File size: 3.8 KB
Line 
1//
2// You received this file as part of RRLib
3// Robotics Research Library
4//
5// Copyright (C) Finroc GbR (finroc.org)
6//
7// This program is free software; you can redistribute it and/or modify
8// it under the terms of the GNU General Public License as published by
9// the Free Software Foundation; either version 2 of the License, or
10// (at your option) any later version.
11//
12// This program is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16//
17// You should have received a copy of the GNU General Public License along
18// with this program; if not, write to the Free Software Foundation, Inc.,
19// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20//
21//----------------------------------------------------------------------
22/*!\file    rrlib/rtti_conversion/tStaticCastOperation.hpp
23 *
24 * \author  Max Reichardt
25 *
26 * \date    2016-08-12
27 *
28 */
29//----------------------------------------------------------------------
30
31//----------------------------------------------------------------------
32// External includes (system with <>, local with "")
33//----------------------------------------------------------------------
34
35//----------------------------------------------------------------------
36// Internal includes with ""
37//----------------------------------------------------------------------
38
39//----------------------------------------------------------------------
40// Debugging
41//----------------------------------------------------------------------
42#include <cassert>
43
44//----------------------------------------------------------------------
45// Namespace declaration
46//----------------------------------------------------------------------
47namespace rrlib
48{
49namespace rtti
50{
51namespace conversion
52{
53
54//----------------------------------------------------------------------
55// Forward declarations / typedefs / enums
56//----------------------------------------------------------------------
57
58//----------------------------------------------------------------------
59// Const values
60//----------------------------------------------------------------------
61
62//----------------------------------------------------------------------
63// Implementation
64//----------------------------------------------------------------------
65
66template <typename TSource, typename TDestination>
67constexpr tStaticCastOperation::tStaticCast tStaticCastOperation::tInstanceStandard<TSource, TDestination>::value;
68
69template <typename TSource, typename TDestination>
70constexpr tStaticCastOperation::tStaticCast tStaticCastOperation::tInstanceDeepCopy<TSource, TDestination>::value;
71
72template <typename TSource, typename TDestination>
73const tStaticCastOperation::tStaticCast tStaticCastOperation::tInstanceReferenceStaticOffset<TSource, TDestination>::value({ tConversionOption(tDataType<TSource>(), tDataType<TDestination>(), StaticCastReferencesSourceWithVariableOffset<TSource, TDestination>::value, ComputePointerSourceOffset()) }, IsImplicitlyConvertible<TDestination, TSource>::value);
74
75template <typename TSource, typename TDestination>
76constexpr tStaticCastOperation::tStaticCast tStaticCastOperation::tInstanceReferenceVariableOffset<TSource, TDestination>::value;
77
78template <typename TSource, typename TDestination>
79constexpr tStaticCastOperation::tStaticCast tStaticCastOperation::tInstanceVectorStandard<TSource, TDestination>::value;
80
81template <typename TSource, typename TDestination>
82constexpr tStaticCastOperation::tStaticCast tStaticCastOperation::tInstanceVectorDeepCopy<TSource, TDestination>::value;
83
84//----------------------------------------------------------------------
85// End of namespace declaration
86//----------------------------------------------------------------------
87}
88}
89}
Note: See TracBrowser for help on using the repository browser.