summaryrefslogtreecommitdiffhomepage
path: root/csv
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2018-02-15 09:06:13 +0100
committerStanislaw Halik <sthalik@misaki.pl>2018-02-15 10:23:11 +0100
commit0a92bc147f91f3ecacdf66d995f01f9577107a86 (patch)
treed748f1b081cd37eb2b4a6cd6b5254433ba8b8dab /csv
parentd8327db8025e56500ebb0bef2ab45aa8963a36ca (diff)
clean up "static" and "constexpr" types
- use `static constexpr inline' to avoid requiring explicit declarations in object code - use `const Foo* const' to maybe put into readonly binary segment (at least for ELF DSOs) - `constexpr' in function scope has storage, avoid `static' - don't use `constexpr' where there's no advantage, like arrays We'd like to avoid overhead of atomic initialization for each function call. No idea how `static constexpr' requiring storage in the standard plays with atomic initialization requirement. Hearsay points that `constexpr' without `static' in block scope behaves more to our liking. It's all hazy though. I'm not 100% sure if `static inline constexpr' has any storage. Hopefully none, like a #define, and stuff bigger than registers gets coalesced within the same module, with small stuff being immediates.
Diffstat (limited to 'csv')
-rw-r--r--csv/csv.cpp4
-rw-r--r--csv/csv.h5
2 files changed, 4 insertions, 5 deletions
diff --git a/csv/csv.cpp b/csv/csv.cpp
index 189d05d9..8a5f5784 100644
--- a/csv/csv.cpp
+++ b/csv/csv.cpp
@@ -19,7 +19,7 @@
#include <utility>
#include <algorithm>
-const QTextCodec* CSV::m_codec = QTextCodec::codecForName("System");
+const QTextCodec* const CSV::m_codec = QTextCodec::codecForName("System");
const QRegExp CSV::m_rx = QRegExp(QString("((?:(?:[^;\\n]*;?)|(?:\"[^\"]*\";?))*)?\\n?"));
const QRegExp CSV::m_rx2 = QRegExp(QString("(?:\"([^\"]*)\";?)|(?:([^;]*);?)?"));
@@ -45,7 +45,7 @@ QString CSV::readLine()
}
else
{
- static const QChar lf(QChar::LineFeed);
+ const QChar lf(QChar::LineFeed);
while (m_pos < m_string.length())
if (m_string[m_pos++] == lf)
diff --git a/csv/csv.h b/csv/csv.h
index 34fa75d8..9e72b2bb 100644
--- a/csv/csv.h
+++ b/csv/csv.h
@@ -21,7 +21,6 @@ private:
QString m_string;
int m_pos;
- static const QTextCodec* m_codec;
- static const QRegExp m_rx;
- static const QRegExp m_rx2; // Silly M$ compiler! It will generate an error if both of these variables are declared on the same line! (M$ Visual Studio Community 2015, Update 3)
+ static QTextCodec const* const m_codec;
+ static const QRegExp m_rx, m_rx2;
};