Commit 8f29397d40c0b98663bdc9fceb99cf807a097d90
Committed by
GitHub
Merge pull request #1601 from m-holger/error
Refactor `util::assertion` etc to accept forwarding references for im…
Showing
1 changed file
with
12 additions
and
7 deletions
libqpdf/qpdf/Util.hh
| @@ -18,28 +18,33 @@ namespace qpdf::util | @@ -18,28 +18,33 @@ namespace qpdf::util | ||
| 18 | // Throw a logic_error if 'cond' does not hold. | 18 | // Throw a logic_error if 'cond' does not hold. |
| 19 | // | 19 | // |
| 20 | // DO NOT USE unless it is impractical or unnecessary to cover violations during CI Testing. | 20 | // DO NOT USE unless it is impractical or unnecessary to cover violations during CI Testing. |
| 21 | + template <typename T> | ||
| 21 | inline void | 22 | inline void |
| 22 | - assertion(bool cond, std::string const& msg) | 23 | + assertion(bool cond, T&& msg) |
| 23 | { | 24 | { |
| 24 | if (!cond) { | 25 | if (!cond) { |
| 25 | - throw std::logic_error(msg); | 26 | + throw std::logic_error(std::forward<T>(msg)); |
| 26 | } | 27 | } |
| 27 | } | 28 | } |
| 28 | 29 | ||
| 30 | + template <typename T> | ||
| 29 | inline void | 31 | inline void |
| 30 | - internal_error_if(bool cond, std::string const& msg) | 32 | + internal_error_if(bool cond, T&& msg) |
| 31 | { | 33 | { |
| 32 | if (cond) { | 34 | if (cond) { |
| 33 | - throw std::logic_error("INTERNAL ERROR: "s.append(msg).append( | ||
| 34 | - "\nThis is a qpdf bug. Please report at https://github.com/qpdf/qpdf/issues")); | 35 | + throw std::logic_error("INTERNAL ERROR: "s.append(std::forward<T>(msg)) |
| 36 | + .append( | ||
| 37 | + "\nThis is a qpdf bug. Please report at " | ||
| 38 | + "https://github.com/qpdf/qpdf/issues")); | ||
| 35 | } | 39 | } |
| 36 | } | 40 | } |
| 37 | 41 | ||
| 42 | + template <typename T> | ||
| 38 | inline void | 43 | inline void |
| 39 | - no_ci_rt_error_if(bool cond, std::string const& msg) | 44 | + no_ci_rt_error_if(bool cond, T&& msg) |
| 40 | { | 45 | { |
| 41 | if (cond) { | 46 | if (cond) { |
| 42 | - throw std::runtime_error(msg); | 47 | + throw std::runtime_error(std::forward<T>(msg)); |
| 43 | } | 48 | } |
| 44 | } | 49 | } |
| 45 | 50 |