From 53c701eba398d092be417bc46314be0752636402 Mon Sep 17 00:00:00 2001 From: Hannah Bast Date: Tue, 17 Dec 2024 23:39:52 +0100 Subject: [PATCH] Improve comments --- src/backports/concepts.h | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/backports/concepts.h b/src/backports/concepts.h index 07f26b7a4..3049c55c5 100644 --- a/src/backports/concepts.h +++ b/src/backports/concepts.h @@ -1,6 +1,6 @@ -// Copyright 2024, University of Freiburg, -// Chair of Algorithms and Data Structures. -// Author: Johannes Kalmbach +// Copyright 2024, University of Freiburg +// Chair of Algorithms and Data Structures +// Author: Johannes Kalmbach #pragma once @@ -10,23 +10,28 @@ #endif // Define the following macros: -// `QL_CONCEPT_OR_NOTHING(arg)` which expands to `arg` in C++20 mode, and to +// +// `QL_CONCEPT_OR_NOTHING(arg)`: expands to `arg` in C++20 mode, and to // nothing in C++17 mode. It can be used to easily opt out of concepts that are // only used for documentation and increased safety and not for overload // resolution. // +// `QL_CONCEPT_OR_TYPENAME(arg)`: expands to `arg` in C++20 mode, and to +// `typename` in C++17 mode. Example usage: +// // Example usages: +// // `QL_CONCEPT_OR_NOTHING(std::view) auto x = someFunction();` -// `void f(QL_CONCEPT_OR_NOTHING(std::view) auto x) {...}` // -// `QL_CONCEPT_OR_TYPENAME(arg)` which expands to `arg` in C++20 mode, and to -// `typename` in C++17 mode. +// `QL_CONCEPT_OR_NOTHING(SameAsAny)` +// +// `void f(QL_CONCEPT_OR_NOTHING(std::view) auto x) {...}` // -// Example usage: // `template ) T> void f(){...}` // -// Note: The macros are variadic to allow for commas in the argument (e.g. -// `QL_CONCEPT_OR_NOTHING(SameAsAny)`. +// NOTE: The macros are variadic to allow for commas in the argument, like in +// the second example above. + #ifdef QLEVER_CPP_17 #define QL_CONCEPT_OR_NOTHING(...) #define QL_CONCEPT_OR_TYPENAME(...) typename @@ -39,10 +44,12 @@ // C++20 standard as well as in `range-v3`. namespace ql { namespace concepts { + #ifdef QLEVER_CPP_17 using namespace ::concepts; #else using namespace std; #endif + } // namespace concepts } // namespace ql