Main Page
Class Categories
Classes
Namespaces
File List
File Members
exper-sw
cosmosw
AugerSW
Offline
source
main
Utilities
LinearAlgebra
ListAssignmentProxy.h
Go to the documentation of this file.
1
#ifndef _utl_ListAssignmentProxy_h_
2
#define _utl_ListAssignmentProxy_h_
3
4
5
namespace
utl {
6
7
8
template
<
class
T>
9
class
Identity
{
10
public
:
11
typedef
T
Type
;
12
};
13
14
28
template
<
class
Assignee,
unsigned
int
i = 1>
29
class
ListVectorAssignmentProxy
{
30
public
:
31
template
<
typename
Element>
32
ListVectorAssignmentProxy<Assignee, i+1>
33
operator,
(
const
Element& e)
34
{
35
fAssignee
[i] = e;
36
return
ListVectorAssignmentProxy<Assignee, i+1>
(
fAssignee
);
37
}
38
39
private
:
40
ListVectorAssignmentProxy
(Assignee& v) :
fAssignee
(v) { }
41
42
Assignee&
fAssignee
;
43
44
#if __cplusplus < 201103L && !defined(__clang__)
45
friend
class
Identity
<Assignee>::
Type
;
46
#else
47
friend typename
Identity
<Assignee>
::Type
;
48
#endif
49
50
friend class
ListVectorAssignmentProxy
<Assignee, i-1>;
51
};
52
53
54
template<class Assignee, unsigned int n, unsigned int i = 1>
55
class
ListMatrixAssignmentProxy
{
56
public
:
57
template
<
typename
Element>
58
ListMatrixAssignmentProxy<Assignee, n, i+1>
59
operator,
(
const
Element& e)
60
{
61
fAssignee
[i/n][i%n] = e;
62
return
ListMatrixAssignmentProxy<Assignee, n, i+1>
(
fAssignee
);
63
}
64
65
private
:
66
ListMatrixAssignmentProxy
(Assignee&
m
) :
fAssignee
(m) { }
67
68
Assignee&
fAssignee
;
69
70
#if __cplusplus < 201103L && !defined(__clang__)
71
friend
class
Identity
<Assignee>::
Type
;
72
#else
73
friend typename
Identity
<Assignee>
::Type
;
74
#endif
75
76
friend class
ListMatrixAssignmentProxy
<Assignee, n, i-1>;
77
};
78
79
80
}
81
82
83
#endif
utl::ListMatrixAssignmentProxy::fAssignee
Assignee & fAssignee
Definition:
ListAssignmentProxy.h:68
utl::Identity::Type
T Type
Definition:
ListAssignmentProxy.h:11
utl::ListMatrixAssignmentProxy::ListMatrixAssignmentProxy
ListMatrixAssignmentProxy(Assignee &m)
Definition:
ListAssignmentProxy.h:66
utl::ListVectorAssignmentProxy
Definition:
ListAssignmentProxy.h:29
utl::Identity
Definition:
ListAssignmentProxy.h:9
utl::ListVectorAssignmentProxy::ListVectorAssignmentProxy
ListVectorAssignmentProxy(Assignee &v)
Definition:
ListAssignmentProxy.h:40
utl::ListMatrixAssignmentProxy::operator,
ListMatrixAssignmentProxy< Assignee, n, i+1 > operator,(const Element &e)
Definition:
ListAssignmentProxy.h:59
utl::ListVectorAssignmentProxy::operator,
ListVectorAssignmentProxy< Assignee, i+1 > operator,(const Element &e)
Definition:
ListAssignmentProxy.h:33
io::Type
Type
The type of file that we are acutally opening.
Definition:
IoCodes.h:33
utl::m
constexpr double m
Definition:
AugerUnits.h:121
utl::ListMatrixAssignmentProxy
Definition:
ListAssignmentProxy.h:55
utl::ListVectorAssignmentProxy::fAssignee
Assignee & fAssignee
Definition:
ListAssignmentProxy.h:42
, generated on Tue Sep 26 2023.