@@ -73,7 +73,7 @@ namespace s3d
73
73
}
74
74
75
75
template <class Iterator , class URBG >
76
- inline auto DiscreteSample (Iterator begin, [[maybe_unused]] Iterator end, DiscreteDistribution& weight, URBG&& urbg)
76
+ inline decltype ( auto ) DiscreteSample(Iterator begin, [[maybe_unused]] Iterator end, DiscreteDistribution& weight, URBG&& urbg)
77
77
{
78
78
assert (begin != end);
79
79
assert (std::distance (begin, end) == static_cast <int64>(weight.size ()));
@@ -83,13 +83,13 @@ namespace s3d
83
83
}
84
84
85
85
template <class Iterator >
86
- inline auto DiscreteSample (Iterator begin, Iterator end, DiscreteDistribution& weight)
86
+ inline decltype ( auto ) DiscreteSample(Iterator begin, Iterator end, DiscreteDistribution& weight)
87
87
{
88
88
return DiscreteSample (begin, end, weight, GetDefaultRNG ());
89
89
}
90
90
91
91
template <class Container , class URBG >
92
- inline auto DiscreteSample (const Container& c, DiscreteDistribution& weight, URBG&& urbg)
92
+ inline decltype ( auto ) DiscreteSample(const Container& c, DiscreteDistribution& weight, URBG&& urbg)
93
93
{
94
94
assert (std::size (c) != 0 );
95
95
assert (std::size (c) == weight.size ());
@@ -100,20 +100,20 @@ namespace s3d
100
100
}
101
101
102
102
template <class Container >
103
- inline auto DiscreteSample (const Container& c, DiscreteDistribution& weight)
103
+ inline decltype ( auto ) DiscreteSample(const Container& c, DiscreteDistribution& weight)
104
104
{
105
105
return DiscreteSample (c, weight, GetDefaultRNG ());
106
106
}
107
107
108
108
template <class Type , class URBG >
109
- inline auto DiscreteSample (std::initializer_list<Type> ilist, DiscreteDistribution& weight, URBG&& urbg)
109
+ inline decltype ( auto ) DiscreteSample(std::initializer_list<Type> ilist, DiscreteDistribution& weight, URBG&& urbg)
110
110
{
111
111
assert (ilist.size () != 0 );
112
112
return *(ilist.begin () + weight (std::forward<URBG>(urbg)));
113
113
}
114
114
115
115
template <class Type >
116
- inline auto DiscreteSample (std::initializer_list<Type> ilist, DiscreteDistribution& weight)
116
+ inline decltype ( auto ) DiscreteSample(std::initializer_list<Type> ilist, DiscreteDistribution& weight)
117
117
{
118
118
return DiscreteSample (ilist, weight, GetDefaultRNG ());
119
119
}
0 commit comments