[DEBUG] continue removing STL

This commit is contained in:
Edouard DUPIN 2017-09-17 15:23:44 +02:00
parent a9ca40d880
commit 027ebd8ae9
2 changed files with 36 additions and 3 deletions

View File

@ -6,6 +6,7 @@
#pragma once
#include <etk/types.hpp>
#include <etk/move.hpp>
namespace etk {
@ -20,11 +21,27 @@ namespace etk {
second() {
}
Pair(ETK_PAIR_TYPE_1&& _obj1, ETK_PAIR_TYPE_2&& _obj2):
first(),
second() {
etk::swap(first, _obj1);
etk::swap(second, _obj2);
}
Pair(const ETK_PAIR_TYPE_1& _obj1, const ETK_PAIR_TYPE_2& _obj2):
first(_obj1),
second(_obj2) {
}
Pair(const Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>& _obj):
first(_obj.first),
second(_obj.second) {
}
Pair(Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>&& _obj):
first(),
second() {
_obj.swap(*this);
}
template<class ETK_PAIR_UNDER_TYPE_1, class ETK_PAIR_UNDER_TYPE_2>
Pair(const Pair<ETK_PAIR_UNDER_TYPE_1, ETK_PAIR_UNDER_TYPE_2>& _pair):
first(_pair.first),
@ -39,10 +56,28 @@ namespace etk {
return first != _obj.first
|| second != _obj.second;
}
void swap(Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>& _obj) {
etk::swap(first, _obj.first);
etk::swap(second, _obj.second);
}
Pair& operator=(const Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>& _obj) {
Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>(_obj).swap(*this);
return *this;
}
Pair& operator=(Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>&& _obj) {
Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>(etk::move(_obj)).swap(*this);
return *this;
}/*
template<class ETK_PAIR_UNDER_TYPE_1, class ETK_PAIR_UNDER_TYPE_2>
Pair& operator=(Pair<ETK_PAIR_UNDER_TYPE_1, ETK_PAIR_UNDER_TYPE_2>&& _obj) {
Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>(etk::move(_obj)).swap(*this);
return *this;
}*/
};
template<class ETK_PAIR_TYPE_1, class ETK_PAIR_TYPE_2>
Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2> makePair(ETK_PAIR_TYPE_1 _obj1, ETK_PAIR_TYPE_2 _obj2) {
return etk::Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>(_obj1, _obj2);
return etk::move(etk::Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>(etk::forward<ETK_PAIR_TYPE_1>(_obj1), etk::forward<ETK_PAIR_TYPE_2>(_obj2)));
}
template<class ETK_PAIR_TYPE_1, class ETK_PAIR_TYPE_2>
etk::Stream& operator <<(etk::Stream& _os, const etk::Pair<ETK_PAIR_TYPE_1, ETK_PAIR_TYPE_2>& _obj) {

View File

@ -479,8 +479,6 @@ namespace etk {
template <class ETK_STRING_TYPE>
ETK_STRING_TYPE to() const;
};
char32_t toLower(char32_t _value);
char32_t toUpper(char32_t _value);
bool operator> (const UString& _left, const UString& _right);
bool operator>= (const UString& _left, const UString& _right);
bool operator< (const UString& _left, const UString& _right);