From ef70f913bfb97458761941c46265f715322b9c17 Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Mon, 22 Jan 2018 15:06:02 +0100 Subject: [PATCH] Solve warnings with a magic range class. --- src/ActivityAnimation.cpp | 7 ++++--- src/FlatLayerVisualisation.cpp | 2 +- src/LayerInfo.cpp | 2 +- src/Range.hpp | 37 ++++++++++++++++++++++++++++++++++ src/Simulator.cpp | 1 - 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 src/Range.hpp diff --git a/src/ActivityAnimation.cpp b/src/ActivityAnimation.cpp index c286aaf..10ed5b8 100644 --- a/src/ActivityAnimation.cpp +++ b/src/ActivityAnimation.cpp @@ -2,6 +2,7 @@ #include #include #include +#include "Range.hpp" #include "ActivityAnimation.hpp" #include "utils.hpp" @@ -20,13 +21,13 @@ ActivityAnimation::ActivityAnimation(std::size_t count, const float *aPos, const offset(new float[count]) { memcpy(startingPos.get(), aPos, sizeof(aPos[0]) * bufferLength); - for (int i = 0; i < bufferLength; ++i) { + for (auto i : Range(bufferLength)) { delta[i] = bPos[i] - aPos[i]; } auto& random = rng(); std::uniform_real_distribution rd; - for (int i = 0; i < count; ++i) { + for (auto i : Range(count)) { offset[i] = rd(random); delta[3 * i] += xDist; } @@ -36,7 +37,7 @@ void ActivityAnimation::draw(float timeScale) const { std::unique_ptr vertexBuffer(new float[bufferLength]); - for (auto i = 0; i < bufferLength; ++i) { + for (auto i : Range(bufferLength)) { vertexBuffer[i] = startingPos[i] + correct_timescale(offset[i/3] + timeScale) * delta[i]; } diff --git a/src/FlatLayerVisualisation.cpp b/src/FlatLayerVisualisation.cpp index 7152504..42febb2 100644 --- a/src/FlatLayerVisualisation.cpp +++ b/src/FlatLayerVisualisation.cpp @@ -63,7 +63,7 @@ FlatLayerVisualisation::FlatLayerVisualisation(const LayerData &layer, Ordering indexBuffer[v++] = vertexBase + 2; indexBuffer[v++] = vertexBase + 3; } - assert(v == faceCount * 3); + assert(v == (int) faceCount * 3); } void FlatLayerVisualisation::render() diff --git a/src/LayerInfo.cpp b/src/LayerInfo.cpp index 53ad8f4..411e3a4 100644 --- a/src/LayerInfo.cpp +++ b/src/LayerInfo.cpp @@ -22,7 +22,7 @@ LayerInfo::Type LayerInfo::typeByName(string_view name) LayerInfo::LayerInfo(string_view name, string_view type, const vector>> ¶meters) -: parameters_(parameters), name_(name), type_(typeByName(type)) +: parameters_(parameters), type_(typeByName(type)), name_(name) { } diff --git a/src/Range.hpp b/src/Range.hpp new file mode 100644 index 0000000..ffbd0ea --- /dev/null +++ b/src/Range.hpp @@ -0,0 +1,37 @@ +#pragma once + +namespace fmri +{ + template + class Range + { + private: + T start_; + T end_; + + public: + explicit Range(const T &num) : start_(0), end_(num) {}; + + Range(const T &start, const T &end) : start_(start), end_(end) {}; + + class Iter + { + private: + T cur_; + + public: + explicit Iter(const T &cur) : cur_(cur) + {}; + + bool operator!=(const Iter& o) { return o.cur_ != cur_; } + Iter&operator++() { ++cur_; return *this; } + + T &operator*() { return cur_; } + }; + + typedef Iter const_iterator; + + const_iterator begin() const { return Iter(start_); } + const_iterator end() const { return Iter(end_); } + }; +} \ No newline at end of file diff --git a/src/Simulator.cpp b/src/Simulator.cpp index 568096f..f917398 100644 --- a/src/Simulator.cpp +++ b/src/Simulator.cpp @@ -106,7 +106,6 @@ vector Simulator::Impl::simulate(const string& image_file) const auto& names = net.layer_names(); const auto& results = net.top_vecs(); - const auto& layers = net.layers(); for (unsigned int i = 0; i < names.size(); ++i) { CHECK_EQ(results[i].size(), 1) << "Multiple outputs per layer are not supported!" << endl;