From bcac93f5938ca95d08cac77ebb971e1b60eeff81 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sun, 13 Jul 2014 20:27:05 +0100 Subject: [PATCH] CSequence: frontOrDefault and backOrDefault taking the default value as an argument --- src/blackmisc/sequence.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 2d012aaac..2f5e976e2 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -153,6 +153,11 @@ namespace BlackMisc */ const_reference frontOrDefault() const { static const value_type def; return empty() ? def : front(); } + /*! + * \brief Access the first element, or a default-initialized value if the sequence is empty. + */ + value_type frontOrDefault(value_type def) const { return empty() ? def : front(); } + /*! * \brief Access the last element. * \pre The sequence must not be empty. @@ -166,10 +171,15 @@ namespace BlackMisc const_reference back() const { Q_ASSERT(!empty()); return pimpl()->back(); } /*! - * \brief Access the last element, or a default-initialized value if the sequence is empty. - */ + * \brief Access the last element, or a default value if the sequence is empty. + */ const_reference backOrDefault() const { static const value_type def; return empty() ? def : back(); } + /*! + * \brief Access the last element, or a default value if the sequence is empty. + */ + value_type backOrDefault(value_type def) const { return empty() ? def : back(); } + /*! * \brief Returns number of elements in the sequence. */