refs #260 added frontOrDefault and backOrDefault methods in CSequence

This commit is contained in:
Mathew Sutcliffe
2014-06-05 23:29:10 +01:00
parent cd7cc84fbc
commit 078ae6c498

View File

@@ -148,6 +148,11 @@ namespace BlackMisc
*/
const_reference front() const { Q_ASSERT(!empty()); return pimpl()->front(); }
/*!
* \brief Access the first element, or a default-initialized value if the sequence is empty.
*/
const_reference frontOrDefault() const { static const value_type def; return empty() ? def : front(); }
/*!
* \brief Access the last element.
* \pre The sequence must not be empty.
@@ -160,6 +165,11 @@ 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.
*/
const_reference backOrDefault() const { static const value_type def; return empty() ? def : back(); }
/*!
* \brief Returns number of elements in the sequence.
*/