/*
This file is part of Fennix Kernel.
Fennix Kernel is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
Fennix Kernel is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Fennix Kernel. If not, see .
*/
#pragma once
namespace std
{
template
OutputIt copy(InputIt first, InputIt last, OutputIt result)
{
while (first != last)
{
*result = *first;
++result;
++first;
}
return result;
}
template
void swap(T &a, T &b)
{
T temp = move(a);
a = move(b);
b = move(temp);
}
template
constexpr const T &min(const T &a, const T &b)
{
return (a < b) ? a : b;
}
template
constexpr const T &max(const T &a, const T &b)
{
return (a > b) ? a : b;
}
template
InputIt find(InputIt first, InputIt last, const T &value)
{
while (first != last)
{
if (*first == value)
return first;
++first;
}
return last;
}
}