Deepnote Synthesizer Voice Library v1.0.0
A C++14 header-only library implementing the THX Deep Note effect
Loading...
Searching...
No Matches
namedtype.hpp
Go to the documentation of this file.
1
34#pragma once
35
36#include <utility>
37
38namespace deepnote
39{
40//
41// Taken from: https://www.fluentcpp.com/2016/12/08/strong-types-for-strong-interfaces/
42//
43template <typename T, typename Parameter> struct NamedType
44{
45 public:
46 explicit NamedType(const T &value)
47 : value_(value)
48 {
49 }
50 explicit NamedType(T &&value)
51 : value_(std::move(value))
52 {
53 }
54 T &get() { return value_; }
55 const T &get() const { return value_; }
56
57 bool operator==(const NamedType<T, Parameter> &rhs) const { return value_ == rhs.value_; }
58
59 private:
60 T value_;
61};
62
63} // namespace deepnote