summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt
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 /tracker-pt
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 'tracker-pt')
-rw-r--r--tracker-pt/ftnoir_tracker_pt.h2
-rw-r--r--tracker-pt/ftnoir_tracker_pt_dialog.cpp2
-rw-r--r--tracker-pt/point_tracker.cpp2
-rw-r--r--tracker-pt/point_tracker.h2
4 files changed, 3 insertions, 5 deletions
diff --git a/tracker-pt/ftnoir_tracker_pt.h b/tracker-pt/ftnoir_tracker_pt.h
index d1f7e1d7..3cb5f67b 100644
--- a/tracker-pt/ftnoir_tracker_pt.h
+++ b/tracker-pt/ftnoir_tracker_pt.h
@@ -81,7 +81,7 @@ private:
std::atomic<unsigned> point_count = 0;
std::atomic<bool> ever_success = false;
- static constexpr f rad2deg = f(180/M_PI);
+ static constexpr inline f rad2deg = f(180/M_PI);
//static constexpr float deg2rad = float(M_PI/180);
};
diff --git a/tracker-pt/ftnoir_tracker_pt_dialog.cpp b/tracker-pt/ftnoir_tracker_pt_dialog.cpp
index 10a2c6cb..5bd1a4c8 100644
--- a/tracker-pt/ftnoir_tracker_pt_dialog.cpp
+++ b/tracker-pt/ftnoir_tracker_pt_dialog.cpp
@@ -90,7 +90,7 @@ TrackerDialog_PT::TrackerDialog_PT(const QString& module_name) :
connect(this, &TrackerDialog_PT::poll_tracker_info, this, &TrackerDialog_PT::poll_tracker_info_impl, Qt::DirectConnection);
- static constexpr pt_color_type color_types[] = {
+ constexpr pt_color_type color_types[] = {
pt_color_average,
pt_color_natural,
pt_color_red_only,
diff --git a/tracker-pt/point_tracker.cpp b/tracker-pt/point_tracker.cpp
index 5efbbfe8..6116bec5 100644
--- a/tracker-pt/point_tracker.cpp
+++ b/tracker-pt/point_tracker.cpp
@@ -16,8 +16,6 @@ using namespace types;
#include <QDebug>
-constexpr unsigned PointModel::N_POINTS;
-
static void get_row(const mat33& m, int i, vec3& v)
{
v[0] = m(i,0);
diff --git a/tracker-pt/point_tracker.h b/tracker-pt/point_tracker.h
index 6abe5df9..5e741c75 100644
--- a/tracker-pt/point_tracker.h
+++ b/tracker-pt/point_tracker.h
@@ -32,7 +32,7 @@ using namespace types;
struct PointModel final
{
- static constexpr unsigned N_POINTS = 3;
+ static constexpr inline unsigned N_POINTS = 3;
vec3 M01; // M01 in model frame
vec3 M02; // M02 in model frame