summaryrefslogtreecommitdiff
path: root/src/meta.hh
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2017-10-20 19:00:06 +0800
committerMaxime Coste <mawww@kakoune.org>2017-11-01 14:05:15 +0800
commit7c3bc48627c0bbb97cf4d1ffb8a3ee30a6beec9b (patch)
treeea5705d0063b407502fe1859e9d3552223a2db87 /src/meta.hh
parent60e32d73ffb0d98febffec78d4ed38b748fab465 (diff)
Fix ConstexprVector::resize
Diffstat (limited to 'src/meta.hh')
-rw-r--r--src/meta.hh11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/meta.hh b/src/meta.hh
index 110ad3b3..ce29a758 100644
--- a/src/meta.hh
+++ b/src/meta.hh
@@ -57,17 +57,14 @@ struct ConstexprVector
constexpr bool empty() const { return m_size == 0; }
constexpr size_t size() const { return m_size; }
- constexpr void resize(size_t n, const T& val)
+ constexpr void resize(size_t n, const T& val = {})
{
if (n >= capacity)
throw "capacity exceeded";
- if (n > m_size)
- {
- for (int i = n; i < m_size; ++i)
- m_data[i] = val;
- }
+ for (int i = m_size; i < n; ++i)
+ m_data[i] = val;
m_size = n;
- kak_assert(this->size() == m_size);
+ kak_assert(this->size() == m_size); // check for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79520
}
constexpr T& operator[](size_t i) { return m_data[i]; }