From db318046c4ed54fa7822b6aec55bec6d427e1e95 Mon Sep 17 00:00:00 2001 From: couriersud Date: Thu, 17 Oct 2019 10:21:00 +0200 Subject: Netlist: code maintenance and bug fixes. (nw) - solver now uses dynamic allocation on systems larger than 512x512 - fixed osx build - moved nl_lists.h classes to plists.h - fixed netlist makefile clint section - readability and typos --- src/lib/netlist/plib/parray.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/lib/netlist/plib/parray.h') diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 65251a02002..d8f7a441f6f 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -32,6 +32,7 @@ namespace plib { struct sizeabs { static constexpr std::size_t ABS() { return 0; } + //using container = typename std::vector>; using container = typename std::vector>; }; @@ -75,6 +76,15 @@ namespace plib { { } + // osx clang doesn't like COPYASSIGNMOVE(parray, default) + // it will generate some weird error messages about move assignment + // constructor having a different noexcept status. + + parray(const parray &rhs) : m_a(rhs.m_a), m_size(rhs.m_size) {} + parray(parray &&rhs) noexcept : m_a(std::move(rhs.m_a)), m_size(std::move(rhs.m_size)) {} + parray &operator=(const parray &rhs) { m_a = rhs.m_a; m_size = rhs.m_size; return *this; } + parray &operator=(parray &&rhs) noexcept { std::swap(m_a,rhs.m_a); std::swap(m_size, rhs.m_size); return *this; } + template parray(size_type size, typename std::enable_if<(X != 0), int>::type = 0) : m_size(size) @@ -125,6 +135,8 @@ namespace plib { (*this)[i] = parray(size2); } } + + COPYASSIGNMOVE(parray2D, default) }; } // namespace plib -- cgit v1.2.3-70-g09d2