mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
constexpr, constructor delegation, integer_sequence, oh my! (hopefully fix MSVC build) (nw)
This commit is contained in:
parent
eaf07fffa3
commit
24c928786e
@ -24,6 +24,7 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -433,14 +434,8 @@ class input_seq
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
constexpr input_seq() noexcept
|
||||
{
|
||||
reset();
|
||||
}
|
||||
template <typename... T> constexpr input_seq(input_code code_0, T... code_n) noexcept
|
||||
{
|
||||
set(code_0, code_n...);
|
||||
}
|
||||
constexpr input_seq() noexcept : input_seq(std::make_index_sequence<std::tuple_size<decltype(m_code)>::value>()) { }
|
||||
template <typename... T> constexpr input_seq(input_code code_0, T... code_n) noexcept : input_seq(std::make_index_sequence<std::tuple_size<decltype(m_code)>::value - sizeof...(T) - 1>(), code_0, code_n...) { }
|
||||
constexpr input_seq(const input_seq &rhs) noexcept = default;
|
||||
|
||||
// operators
|
||||
@ -478,6 +473,10 @@ public:
|
||||
static const input_seq empty_seq;
|
||||
|
||||
private:
|
||||
static constexpr input_code get_end_code(size_t) noexcept { return end_code; }
|
||||
|
||||
template <typename... T, size_t... N> constexpr input_seq(std::integer_sequence<size_t, N...>, T... code) noexcept : m_code({ code..., get_end_code(N)... }) { }
|
||||
|
||||
template <unsigned N> void set() noexcept
|
||||
{
|
||||
std::fill(std::next(m_code.begin(), N), m_code.end(), end_code);
|
||||
|
Loading…
Reference in New Issue
Block a user