Skip to content

Commit bd7d562

Browse files
authored
Merge pull request #243 from bangerth/requires
Mark member function definitions with the necessary 'requires' clauses.
2 parents 7e3b5c6 + c3c49a2 commit bd7d562

File tree

8 files changed

+60
-1
lines changed

8 files changed

+60
-1
lines changed

include/sampleflow/consumers/auto_covariance_matrix.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ namespace SampleFlow
357357

358358

359359
template <typename InputType>
360+
requires (Concepts::is_vector_space_type<InputType>)
360361
AutoCovarianceMatrix<InputType>::
361362
AutoCovarianceMatrix (unsigned int lag_length)
362363
:
@@ -368,6 +369,7 @@ namespace SampleFlow
368369

369370

370371
template <typename InputType>
372+
requires (Concepts::is_vector_space_type<InputType>)
371373
AutoCovarianceMatrix<InputType>::
372374
~AutoCovarianceMatrix ()
373375
{
@@ -376,6 +378,7 @@ namespace SampleFlow
376378

377379

378380
template <typename InputType>
381+
requires (Concepts::is_vector_space_type<InputType>)
379382
void
380383
AutoCovarianceMatrix<InputType>::
381384
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -485,6 +488,7 @@ namespace SampleFlow
485488

486489

487490
template <typename InputType>
491+
requires (Concepts::is_vector_space_type<InputType>)
488492
typename AutoCovarianceMatrix<InputType>::value_type
489493
AutoCovarianceMatrix<InputType>::
490494
get () const

include/sampleflow/consumers/auto_covariance_trace.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,7 @@ namespace SampleFlow
397397

398398

399399
template <typename InputType>
400+
requires (Concepts::is_vector_space_type<InputType>)
400401
AutoCovarianceTrace<InputType>::
401402
AutoCovarianceTrace (unsigned int lag_length)
402403
:
@@ -408,14 +409,17 @@ namespace SampleFlow
408409

409410

410411
template <typename InputType>
412+
requires (Concepts::is_vector_space_type<InputType>)
411413
AutoCovarianceTrace<InputType>::
412414
~AutoCovarianceTrace ()
413415
{
414416
this->disconnect_and_flush();
415417
}
416418

417419

420+
418421
template <typename InputType>
422+
requires (Concepts::is_vector_space_type<InputType>)
419423
void
420424
AutoCovarianceTrace<InputType>::
421425
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -520,6 +524,7 @@ namespace SampleFlow
520524

521525

522526
template <typename InputType>
527+
requires (Concepts::is_vector_space_type<InputType>)
523528
typename AutoCovarianceTrace<InputType>::value_type
524529
AutoCovarianceTrace<InputType>::
525530
get () const

include/sampleflow/consumers/average_cosinus.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ namespace SampleFlow
129129
};
130130

131131
template <typename InputType>
132+
requires (Concepts::is_vector_space_type<InputType>)
132133
AverageCosineBetweenSuccessiveSamples<InputType>::
133134
AverageCosineBetweenSuccessiveSamples (const unsigned int length)
134135
:
@@ -141,6 +142,7 @@ namespace SampleFlow
141142

142143

143144
template <typename InputType>
145+
requires (Concepts::is_vector_space_type<InputType>)
144146
AverageCosineBetweenSuccessiveSamples<InputType>::
145147
~AverageCosineBetweenSuccessiveSamples ()
146148
{
@@ -150,6 +152,7 @@ namespace SampleFlow
150152

151153

152154
template <typename InputType>
155+
requires (Concepts::is_vector_space_type<InputType>)
153156
void
154157
AverageCosineBetweenSuccessiveSamples<InputType>::
155158
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -216,8 +219,10 @@ namespace SampleFlow
216219
}
217220
}
218221

219-
//return value
222+
223+
220224
template <typename InputType>
225+
requires (Concepts::is_vector_space_type<InputType>)
221226
std::vector<typename InputType::value_type>
222227
AverageCosineBetweenSuccessiveSamples<InputType>::
223228
get () const

include/sampleflow/consumers/covariance_matrix.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ namespace SampleFlow
140140

141141

142142
template <typename InputType>
143+
requires (Concepts::is_vector_space_type<InputType>)
143144
CovarianceMatrix<InputType>::
144145
CovarianceMatrix ()
145146
:
@@ -152,6 +153,7 @@ namespace SampleFlow
152153

153154

154155
template <typename InputType>
156+
requires (Concepts::is_vector_space_type<InputType>)
155157
CovarianceMatrix<InputType>::
156158
~CovarianceMatrix ()
157159
{
@@ -161,6 +163,7 @@ namespace SampleFlow
161163

162164

163165
template <typename InputType>
166+
requires (Concepts::is_vector_space_type<InputType>)
164167
void
165168
CovarianceMatrix<InputType>::
166169
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -206,6 +209,7 @@ namespace SampleFlow
206209

207210

208211
template <typename InputType>
212+
requires (Concepts::is_vector_space_type<InputType>)
209213
typename CovarianceMatrix<InputType>::value_type
210214
CovarianceMatrix<InputType>::
211215
get () const

include/sampleflow/consumers/histogram.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ namespace SampleFlow
254254

255255

256256
template <typename InputType>
257+
requires (std::is_arithmetic_v<InputType>)
257258
Histogram<InputType>::
258259
Histogram (const double min_value,
259260
const double max_value,
@@ -278,6 +279,7 @@ namespace SampleFlow
278279

279280

280281
template <typename InputType>
282+
requires (std::is_arithmetic_v<InputType>)
281283
Histogram<InputType>::
282284
Histogram (const double min_pre_value,
283285
const double max_pre_value,
@@ -312,6 +314,7 @@ namespace SampleFlow
312314

313315

314316
template <typename InputType>
317+
requires (std::is_arithmetic_v<InputType>)
315318
Histogram<InputType>::
316319
Histogram (const Histogram<InputType> &o)
317320
:
@@ -325,6 +328,7 @@ namespace SampleFlow
325328

326329

327330
template <typename InputType>
331+
requires (std::is_arithmetic_v<InputType>)
328332
Histogram<InputType>::
329333
~Histogram ()
330334
{
@@ -334,6 +338,7 @@ namespace SampleFlow
334338

335339

336340
template <typename InputType>
341+
requires (std::is_arithmetic_v<InputType>)
337342
void
338343
Histogram<InputType>::
339344
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -355,6 +360,7 @@ namespace SampleFlow
355360

356361

357362
template <typename InputType>
363+
requires (std::is_arithmetic_v<InputType>)
358364
typename Histogram<InputType>::value_type
359365
Histogram<InputType>::
360366
get () const
@@ -384,6 +390,7 @@ namespace SampleFlow
384390

385391

386392
template <typename InputType>
393+
requires (std::is_arithmetic_v<InputType>)
387394
void
388395
Histogram<InputType>::
389396
write_gnuplot(std::ostream &&output_stream) const
@@ -406,6 +413,7 @@ namespace SampleFlow
406413

407414

408415
template <typename InputType>
416+
requires (std::is_arithmetic_v<InputType>)
409417
unsigned int
410418
Histogram<InputType>::
411419
bin_number (const double value) const

include/sampleflow/consumers/mean_value.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ namespace SampleFlow
156156

157157

158158
template <typename InputType>
159+
requires (Concepts::is_vector_space_type<InputType>)
159160
MeanValue<InputType>::
160161
MeanValue ()
161162
:
@@ -168,6 +169,7 @@ namespace SampleFlow
168169

169170

170171
template <typename InputType>
172+
requires (Concepts::is_vector_space_type<InputType>)
171173
MeanValue<InputType>::
172174
~MeanValue ()
173175
{
@@ -177,6 +179,7 @@ namespace SampleFlow
177179

178180

179181
template <typename InputType>
182+
requires (Concepts::is_vector_space_type<InputType>)
180183
void
181184
MeanValue<InputType>::
182185
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -207,6 +210,7 @@ namespace SampleFlow
207210

208211

209212
template <typename InputType>
213+
requires (Concepts::is_vector_space_type<InputType>)
210214
typename MeanValue<InputType>::value_type
211215
MeanValue<InputType>::
212216
get () const

include/sampleflow/consumers/pair_histogram.h

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,9 @@ namespace SampleFlow
279279

280280

281281
template <typename InputType>
282+
requires (Concepts::has_subscript_operator<InputType> &&
283+
Concepts::has_size_function<InputType> &&
284+
std::is_arithmetic_v<types::ScalarType<InputType>>)
282285
PairHistogram<InputType>::
283286
PairHistogram (const double min_x_value,
284287
const double max_x_value,
@@ -322,6 +325,9 @@ namespace SampleFlow
322325

323326

324327
template <typename InputType>
328+
requires (Concepts::has_subscript_operator<InputType> &&
329+
Concepts::has_size_function<InputType> &&
330+
std::is_arithmetic_v<types::ScalarType<InputType>>)
325331
PairHistogram<InputType>::
326332
PairHistogram (const double min_x_pre_value,
327333
const double max_x_pre_value,
@@ -381,6 +387,9 @@ namespace SampleFlow
381387

382388

383389
template <typename InputType>
390+
requires (Concepts::has_subscript_operator<InputType> &&
391+
Concepts::has_size_function<InputType> &&
392+
std::is_arithmetic_v<types::ScalarType<InputType>>)
384393
PairHistogram<InputType>::
385394
PairHistogram (const PairHistogram<InputType> &o)
386395
:
@@ -395,6 +404,9 @@ namespace SampleFlow
395404

396405

397406
template <typename InputType>
407+
requires (Concepts::has_subscript_operator<InputType> &&
408+
Concepts::has_size_function<InputType> &&
409+
std::is_arithmetic_v<types::ScalarType<InputType>>)
398410
PairHistogram<InputType>::
399411
~PairHistogram ()
400412
{
@@ -404,6 +416,9 @@ namespace SampleFlow
404416

405417

406418
template <typename InputType>
419+
requires (Concepts::has_subscript_operator<InputType> &&
420+
Concepts::has_size_function<InputType> &&
421+
std::is_arithmetic_v<types::ScalarType<InputType>>)
407422
void
408423
PairHistogram<InputType>::
409424
consume (InputType sample, AuxiliaryData /*aux_data*/)
@@ -433,6 +448,9 @@ namespace SampleFlow
433448

434449

435450
template <typename InputType>
451+
requires (Concepts::has_subscript_operator<InputType> &&
452+
Concepts::has_size_function<InputType> &&
453+
std::is_arithmetic_v<types::ScalarType<InputType>>)
436454
typename PairHistogram<InputType>::value_type
437455
PairHistogram<InputType>::
438456
get () const
@@ -467,6 +485,9 @@ namespace SampleFlow
467485

468486

469487
template <typename InputType>
488+
requires (Concepts::has_subscript_operator<InputType> &&
489+
Concepts::has_size_function<InputType> &&
490+
std::is_arithmetic_v<types::ScalarType<InputType>>)
470491
void
471492
PairHistogram<InputType>::
472493
write_gnuplot(std::ostream &&output_stream) const
@@ -549,6 +570,9 @@ namespace SampleFlow
549570

550571

551572
template <typename InputType>
573+
requires (Concepts::has_subscript_operator<InputType> &&
574+
Concepts::has_size_function<InputType> &&
575+
std::is_arithmetic_v<types::ScalarType<InputType>>)
552576
unsigned int
553577
PairHistogram<InputType>::
554578
x_bin_number (const double value) const
@@ -572,6 +596,9 @@ namespace SampleFlow
572596

573597

574598
template <typename InputType>
599+
requires (Concepts::has_subscript_operator<InputType> &&
600+
Concepts::has_size_function<InputType> &&
601+
std::is_arithmetic_v<types::ScalarType<InputType>>)
575602
unsigned int
576603
PairHistogram<InputType>::
577604
y_bin_number (const double value) const

include/sampleflow/producer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ namespace SampleFlow
201201

202202

203203
template <typename OutputType>
204+
requires (Concepts::is_valid_sampletype<OutputType>)
204205
Producer<OutputType>::Producer (Producer &&producer)
205206
:
206207
// Conceptually, it would be nice to move the rhs signals
@@ -219,6 +220,7 @@ namespace SampleFlow
219220

220221

221222
template <typename OutputType>
223+
requires (Concepts::is_valid_sampletype<OutputType>)
222224
Producer<OutputType>::~Producer ()
223225
{
224226
disconnect_consumers(*this);

0 commit comments

Comments
 (0)