lsst.gauss2d
gbf99507273+d801c9999e
Toggle main menu visibility
Loading...
Searching...
No Matches
to_string.h
1
#ifndef LSST_GAUSS2D_TO_STRING_H
2
#define LSST_GAUSS2D_TO_STRING_H
3
4
#include <algorithm>
5
#include <memory>
6
#include <set>
7
#include <sstream>
8
#include <stdexcept>
9
#include <string>
10
#include <vector>
11
12
namespace
lsst::gauss2d {
13
14
template
<
typename
T>
15
std::string to_string_float(
const
T value,
const
int
precision = 6,
const
bool
scientific =
true
) {
16
std::ostringstream out;
17
out.precision(precision);
18
if
(scientific) {
19
out << std::scientific;
20
}
else
{
21
out << std::fixed;
22
}
23
out << value;
24
return
std::move(out).str();
25
}
26
27
template
<
template
<
typename
...>
class
Container,
class
Value>
28
std::string to_string_float_iter(
const
Container<Value>& container,
const
int
precision = 6,
29
const
bool
scientific =
true
) {
30
std::string str =
"["
;
31
for
(
const
auto
& value : container) {
32
str += to_string_float(value, precision, scientific) +
", "
;
33
}
34
return
str.substr(0, str.size() - 2 * (container.size() > 0)) +
"]"
;
35
}
36
37
template
<
template
<
typename
...>
class
Container,
class
Value>
38
std::string to_string_iter(
const
Container<Value>& container) {
39
std::string str =
"["
;
40
for
(
const
auto
& value : container) {
41
str += std::to_string(value) +
", "
;
42
}
43
return
str.substr(0, str.size() - 2 * (container.size() > 0)) +
"]"
;
44
}
45
46
}
// namespace lsst::gauss2d
47
48
#endif
include
lsst
gauss2d
to_string.h
Generated by
1.17.0