Completion: add `noexcept`
authorMax Kellermann <max@musicpd.org>
Tue, 10 Sep 2019 07:54:05 +0000 (09:54 +0200)
committerMax Kellermann <max@musicpd.org>
Tue, 10 Sep 2019 07:54:05 +0000 (09:54 +0200)
src/Completion.cxx
src/Completion.hxx
src/QueuePage.cxx
src/save_playlist.cxx

index c36aa37..360933f 100644 (file)
 #include <assert.h>
 
 static bool
-StartsWith(const std::string &haystack, const std::string &needle)
+StartsWith(const std::string &haystack, const std::string &needle) noexcept
 {
        return haystack.length() >= needle.length() &&
                std::equal(needle.begin(), needle.end(), haystack.begin());
 }
 
 Completion::Result
-Completion::Complete(const std::string &prefix) const
+Completion::Complete(const std::string &prefix) const noexcept
 {
        auto lower = list.lower_bound(prefix);
        if (lower == list.end() || !StartsWith(*lower, prefix))
index 7e66e7e..4677666 100644 (file)
@@ -34,21 +34,21 @@ public:
        Completion(const Completion &) = delete;
        Completion &operator=(const Completion &) = delete;
 
-       bool empty() const {
+       bool empty() const noexcept {
                return list.empty();
        }
 
-       void clear() {
+       void clear() noexcept {
                list.clear();
        }
 
        template<typename T>
-       void emplace(T &&value) {
+       void emplace(T &&value) noexcept {
                list.emplace(std::forward<T>(value));
        }
 
        template<typename T>
-       void remove(T &&value) {
+       void remove(T &&value) noexcept {
                auto i = list.find(std::forward<T>(value));
                if (i != list.end())
                        list.erase(i);
@@ -58,19 +58,19 @@ public:
                using const_iterator = List::const_iterator;
                const_iterator _begin, _end;
 
-               bool operator==(const Range other) const {
+               bool operator==(const Range other) const noexcept {
                        return _begin == other._begin && _end == other._end;
                }
 
-               bool operator!=(const Range other) const {
+               bool operator!=(const Range other) const noexcept {
                        return !(*this == other);
                }
 
-               const_iterator begin() const {
+               const_iterator begin() const noexcept {
                        return _begin;
                }
 
-               const_iterator end() const {
+               const_iterator end() const noexcept {
                        return _end;
                }
        };
@@ -81,10 +81,10 @@ public:
                Range range;
        };
 
-       Result Complete(const std::string &prefix) const;
+       Result Complete(const std::string &prefix) const noexcept;
 
-       virtual void Pre(const char *value) = 0;
-       virtual void Post(const char *value, Range range) = 0;
+       virtual void Pre(const char *value) noexcept = 0;
+       virtual void Post(const char *value, Range range) noexcept = 0;
 };
 
 #endif
index c2de5a7..98a6376 100644 (file)
@@ -259,17 +259,17 @@ class DatabaseCompletion final : public Completion {
        std::set<std::string> dir_list;
 
 public:
-       explicit DatabaseCompletion(struct mpdclient &_c)
+       explicit DatabaseCompletion(struct mpdclient &_c) noexcept
                :c(_c) {}
 
 protected:
        /* virtual methods from class Completion */
-       void Pre(const char *value) override;
-       void Post(const char *value, Range range) override;
+       void Pre(const char *value) noexcept override;
+       void Post(const char *value, Range range) noexcept override;
 };
 
 void
-DatabaseCompletion::Pre(const char *line)
+DatabaseCompletion::Pre(const char *line) noexcept
 {
        if (empty()) {
                /* create initial list */
@@ -283,7 +283,7 @@ DatabaseCompletion::Pre(const char *line)
 }
 
 void
-DatabaseCompletion::Post(const char *line, Range range)
+DatabaseCompletion::Post(const char *line, Range range) noexcept
 {
        if (range.begin() != range.end() &&
            std::next(range.begin()) != range.end())
index 113f0df..2eccd03 100644 (file)
@@ -38,17 +38,17 @@ class PlaylistNameCompletion final : public Completion {
        struct mpdclient &c;
 
 public:
-       explicit PlaylistNameCompletion(struct mpdclient &_c)
+       explicit PlaylistNameCompletion(struct mpdclient &_c) noexcept
                :c(_c) {}
 
 protected:
        /* virtual methods from class Completion */
-       void Pre(const char *value) override;
-       void Post(const char *value, Range range) override;
+       void Pre(const char *value) noexcept override;
+       void Post(const char *value, Range range) noexcept override;
 };
 
 void
-PlaylistNameCompletion::Pre(gcc_unused const char *value)
+PlaylistNameCompletion::Pre(gcc_unused const char *value) noexcept
 {
        if (empty()) {
                /* create completion list */
@@ -57,7 +57,8 @@ PlaylistNameCompletion::Pre(gcc_unused const char *value)
 }
 
 void
-PlaylistNameCompletion::Post(gcc_unused const char *value, Range range)
+PlaylistNameCompletion::Post(gcc_unused const char *value,
+                            Range range) noexcept
 {
        if (range.begin() != range.end() &&
            std::next(range.begin()) != range.end())