astrotypes
0.0
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
src
cpp
pss
astrotypes
multiarray
NumericalRepresentation.h
Go to the documentation of this file.
1
/*
2
* MIT License
3
*
4
* Copyright (c) 2018 PulsarSearchSoft
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to deal
8
* in the Software without restriction, including without limitation the rights
9
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
* copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in all
14
* copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
* SOFTWARE.
23
*/
24
#ifndef PSS_ASTROTYPES_MULTIARRAY_NUMERICALREPRESENTATION_H
25
#define PSS_ASTROTYPES_MULTIARRAY_NUMERICALREPRESENTATION_H
26
27
#include <type_traits>
28
#include <map>
29
#include <vector>
30
#include <list>
31
#include <array>
32
33
namespace
pss
{
34
namespace
astrotypes {
35
42
template
<
typename
Container>
43
struct
NumericalRepresentation
44
{
45
typedef
Container
type
;
46
};
47
48
template
<
typename
T>
49
struct
NumericalRepresentation
<T[]>
50
{
51
typedef
T
type
;
52
};
53
54
template
<
typename
T,
typename
Allocator>
55
struct
NumericalRepresentation
<
std
::vector<T, Allocator>>
56
{
57
typedef
T
type
;
58
};
59
60
template
<
typename
T,
typename
Allocator>
61
struct
NumericalRepresentation
<
std
::list<T, Allocator>>
62
{
63
typedef
T
type
;
64
};
65
66
template
<
typename
T,
int
S >
67
struct
NumericalRepresentation
<
std
::array<T, S>>
68
{
69
typedef
T
type
;
70
};
71
72
template
<
typename
... Ts>
73
struct
NumericalRepresentation
<
std
::map<Ts...>>
74
{
75
typedef
typename
std::map<Ts...>::value_type::second_type
type
;
76
};
77
78
}
// namespace astrotypes
79
}
// namespace pss
80
81
#endif // PSS_ASTROTYPES_MULTIARRAY_NUMERICALREPRESENTATION_H
pss
Definition:
DataBuffer.cpp:26
pss::astrotypes::NumericalRepresentation< std::list< T, Allocator > >::type
T type
Definition:
NumericalRepresentation.h:63
pss::astrotypes::NumericalRepresentation< std::map< Ts...> >::type
std::map< Ts...>::value_type::second_type type
Definition:
NumericalRepresentation.h:75
pss::astrotypes::NumericalRepresentation::type
Container type
Definition:
NumericalRepresentation.h:45
std
STL namespace.
pss::astrotypes::NumericalRepresentation< T[]>::type
T type
Definition:
NumericalRepresentation.h:51
pss::astrotypes::NumericalRepresentation< std::array< T, S > >::type
T type
Definition:
NumericalRepresentation.h:69
pss::astrotypes::NumericalRepresentation< std::vector< T, Allocator > >::type
T type
Definition:
NumericalRepresentation.h:57
pss::astrotypes::NumericalRepresentation
meta programming struct to determine the internal type of a container
Definition:
NumericalRepresentation.h:43
Generated on Fri Sep 13 2019 10:37:54 for astrotypes by
1.8.9.1