mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
Core: Tuples now Moveable if all elements moveable (thanks a lot kohait00!)
git-svn-id: svn://ultimatepp.org/upp/trunk@2795 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
3ed7692559
commit
10e9ae82aa
1 changed files with 24 additions and 0 deletions
|
|
@ -17,6 +17,13 @@ struct Tuple2 {
|
|||
String ToString() const { return String().Cat() << '(' << a << ", " << b << ')'; }
|
||||
};
|
||||
|
||||
template<typename A, typename B>
|
||||
inline void AssertMoveable0(Tuple2<A, B> *)
|
||||
{
|
||||
AssertMoveable<A>();
|
||||
AssertMoveable<B>();
|
||||
}
|
||||
|
||||
template <typename A, typename B>
|
||||
inline Tuple2<A, B> MakeTuple(const A& a, const B& b)
|
||||
{
|
||||
|
|
@ -46,6 +53,14 @@ struct Tuple3 {
|
|||
String ToString() const { return String().Cat() << '(' << a << ", " << b << ", " << c << ')'; }
|
||||
};
|
||||
|
||||
template<typename A, typename B, typename C>
|
||||
inline void AssertMoveable0(Tuple3<A, B, C> *)
|
||||
{
|
||||
AssertMoveable<A>();
|
||||
AssertMoveable<B>();
|
||||
AssertMoveable<C>();
|
||||
}
|
||||
|
||||
template <typename A, typename B, typename C>
|
||||
inline Tuple3<A, B, C> MakeTuple(const A& a, const B& b, const C& c)
|
||||
{
|
||||
|
|
@ -77,6 +92,15 @@ struct Tuple4 {
|
|||
String ToString() const { return String().Cat() << '(' << a << ", " << b << ", " << c << ", " << d << ')'; }
|
||||
};
|
||||
|
||||
template<typename A, typename B, typename C, typename D>
|
||||
inline void AssertMoveable0(Tuple4<A, B, C, D> *)
|
||||
{
|
||||
AssertMoveable<A>();
|
||||
AssertMoveable<B>();
|
||||
AssertMoveable<C>();
|
||||
AssertMoveable<D>();
|
||||
}
|
||||
|
||||
template <typename A, typename B, typename C, typename D>
|
||||
inline Tuple4<A, B, C, D> MakeTuple(const A& a, const B& b, const C& c, const D& d)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue