OTB
9.0.0
Orfeo Toolbox
Modules
Core
Functor
include
otbVariadicAddFunctor.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3
*
4
* This file is part of Orfeo Toolbox
5
*
6
* https://www.orfeo-toolbox.org/
7
*
8
* Licensed under the Apache License, Version 2.0 (the "License");
9
* you may not use this file except in compliance with the License.
10
* You may obtain a copy of the License at
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
19
*/
20
21
#ifndef otb_VariadicAddFunctor_h
22
#define otb_VariadicAddFunctor_h
23
24
#include <numeric>
25
#include <array>
26
27
namespace
otb
28
{
29
30
namespace
Functor
31
{
37
template
<
typename
TOut,
typename
... TIns>
38
struct
VariadicAdd
39
{
40
auto
operator()
(TIns... ins)
const
41
{
42
std::array<TOut,
sizeof
...(TIns)> outArray = {{
static_cast<
TOut
>
(ins)...}};
43
44
return
std::accumulate(outArray.begin(), outArray.end(), TOut{});
45
}
46
};
47
48
}
// end namespace Functor
49
50
}
// end namespace otb
51
52
#endif
otb::Functor::VariadicAdd
This functor adds any number of compile time scalar inputs.
Definition:
otbVariadicAddFunctor.h:38
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition:
otbJoinContainer.h:32
otb::Functor::VariadicAdd::operator()
auto operator()(TIns... ins) const
Definition:
otbVariadicAddFunctor.h:40
Generated at Wed Feb 28 2024 15:24:23 for
OTB
with
1.8.17