mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-12 06:00:33 +05:00
copy-ctor for head-tail array with generic types
This commit is contained in:
parent
6a8050998b
commit
326e313d75
@ -1525,6 +1525,9 @@ namespace ngcore
|
|||||||
public:
|
public:
|
||||||
HTArray () = default;
|
HTArray () = default;
|
||||||
HTArray (const HTArray &) = default;
|
HTArray (const HTArray &) = default;
|
||||||
|
template <typename T2>
|
||||||
|
HTArray (const HTArray<S,T2> & a2) : tail(a2.Tail()), head(a2.Head()) { ; }
|
||||||
|
|
||||||
HTArray & operator= (const HTArray &) = default;
|
HTArray & operator= (const HTArray &) = default;
|
||||||
|
|
||||||
T * Ptr () { return tail.Ptr(); }
|
T * Ptr () { return tail.Ptr(); }
|
||||||
@ -1534,6 +1537,9 @@ namespace ngcore
|
|||||||
const T & operator[] (size_t i) const { return Ptr()[i]; }
|
const T & operator[] (size_t i) const { return Ptr()[i]; }
|
||||||
template <int NR>
|
template <int NR>
|
||||||
T & Elem() { return (NR==S-1) ? head : tail.template Elem<NR>(); }
|
T & Elem() { return (NR==S-1) ? head : tail.template Elem<NR>(); }
|
||||||
|
|
||||||
|
auto Tail() const { return tail; }
|
||||||
|
auto Head() const { return head; }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -1543,6 +1549,9 @@ namespace ngcore
|
|||||||
public:
|
public:
|
||||||
HTArray () = default;
|
HTArray () = default;
|
||||||
HTArray (const HTArray &) = default;
|
HTArray (const HTArray &) = default;
|
||||||
|
template <typename T2>
|
||||||
|
HTArray (const HTArray<1,T2> & a2) : head(a2.Head()) { ; }
|
||||||
|
|
||||||
HTArray & operator= (const HTArray &) = default;
|
HTArray & operator= (const HTArray &) = default;
|
||||||
|
|
||||||
T * Ptr () { return &head; }
|
T * Ptr () { return &head; }
|
||||||
@ -1556,6 +1565,8 @@ namespace ngcore
|
|||||||
// assert(NR==0, "HTArray index error");
|
// assert(NR==0, "HTArray index error");
|
||||||
return head;
|
return head;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto Head() const { return head; }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -1565,6 +1576,9 @@ namespace ngcore
|
|||||||
public:
|
public:
|
||||||
HTArray () = default;
|
HTArray () = default;
|
||||||
HTArray (const HTArray &) = default;
|
HTArray (const HTArray &) = default;
|
||||||
|
template <typename T2>
|
||||||
|
HTArray (const HTArray<0,T2> & a2) { ; }
|
||||||
|
|
||||||
HTArray & operator= (const HTArray &) = default;
|
HTArray & operator= (const HTArray &) = default;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user