Allow NumericId to be copyable
This commit is contained in:
parent
8b9affad0d
commit
ce43bb39ff
2 changed files with 20 additions and 9 deletions
|
|
@ -18,24 +18,35 @@ struct NumericId {
|
|||
constexpr NumericId() = default;
|
||||
|
||||
explicit constexpr NumericId(int number)
|
||||
: number(number)
|
||||
: number_(number)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr bool valid() const noexcept
|
||||
{
|
||||
return number != -1;
|
||||
return number_ != -1;
|
||||
}
|
||||
|
||||
constexpr int number() const noexcept
|
||||
{
|
||||
return number_;
|
||||
}
|
||||
|
||||
explicit operator bool() const noexcept
|
||||
{
|
||||
return valid();
|
||||
}
|
||||
|
||||
constexpr bool operator==(NumericId other) const noexcept
|
||||
{
|
||||
return number == other.number;
|
||||
return number_ == other.number_;
|
||||
}
|
||||
|
||||
constexpr bool operator!=(NumericId other) const noexcept
|
||||
{
|
||||
return number != other.number;
|
||||
return number_ != other.number_;
|
||||
}
|
||||
|
||||
const int number = -1;
|
||||
private:
|
||||
int number_ = -1;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1188,10 +1188,10 @@ const sfz::Region* sfz::Synth::getRegionById(NumericId<Region> id) const noexcep
|
|||
return nullptr;
|
||||
|
||||
// search a sequence of ordered identifiers with potential gaps
|
||||
size_t index = static_cast<size_t>(id.number);
|
||||
size_t index = static_cast<size_t>(id.number());
|
||||
index = std::min(index, size - 1);
|
||||
|
||||
while (index > 0 && regions[index]->getId().number > id.number)
|
||||
while (index > 0 && regions[index]->getId().number() > id.number())
|
||||
--index;
|
||||
|
||||
return (regions[index]->getId() == id) ? regions[index].get() : nullptr;
|
||||
|
|
@ -1205,10 +1205,10 @@ const sfz::Voice* sfz::Synth::getVoiceById(NumericId<Voice> id) const noexcept
|
|||
return nullptr;
|
||||
|
||||
// search a sequence of ordered identifiers with potential gaps
|
||||
size_t index = static_cast<size_t>(id.number);
|
||||
size_t index = static_cast<size_t>(id.number());
|
||||
index = std::min(index, size - 1);
|
||||
|
||||
while (index > 0 && voices[index]->getId().number > id.number)
|
||||
while (index > 0 && voices[index]->getId().number() > id.number())
|
||||
--index;
|
||||
|
||||
return (voices[index]->getId() == id) ? voices[index].get() : nullptr;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue