neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
utility.hpp
Go to the documentation of this file.
1
// utility.hpp
2
/*
3
* Copyright (c) 2007 Leigh Johnston.
4
*
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are
9
* met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
*
14
* * Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
*
18
* * Neither the name of Leigh Johnston nor the names of any
19
* other contributors to this software may be used to endorse or
20
* promote products derived from this software without specific prior
21
* written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
24
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
27
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
*/
35
36
/* WARNING: The classes present here are not a substitute for any equivalent std::
37
* classes available on your platform which you should be using instead. They exist here
38
* either for technical reasons or for when there is no standard library available.
39
*/
40
41
#pragma once
42
43
#include <
neolib/neolib.hpp
>
44
#include <array>
45
#include <
neolib/core/pair.hpp
>
46
47
namespace
neolib
48
{
49
template
<
typename
T1,
typename
T2>
50
struct
minmax
:
pair
<T1, T2>
51
{
52
typedef
pair<T1, T2>
base_type
;
53
minmax
() {}
54
minmax
(
const
T1& x,
const
T2& y) :
pair
<T1, T2>(x, y) {}
55
template
<
typename
U,
typename
V>
minmax
(
const
minmax<U, V>
& m) :
pair
<T1, T2>(m.
first
(), m.
second
()) {}
56
template
<
typename
U,
typename
V>
minmax<T1, T2>
&
operator=
(
const
minmax<U, V>
& m) { base_type::first() = m.
first
(); base_type::second() = m.
second
();
return
*
this
; }
57
minmax
operator-
()
const
{
minmax
ret(-base_type::second(), -base_type::first());
return
ret; }
58
};
59
}
neolib::pair
Definition
pair.hpp:46
neolib::pair::second
const second_type & second() const final
Definition
pair.hpp:69
neolib::pair::first
const first_type & first() const final
Definition
pair.hpp:67
neolib
Definition
application.hpp:46
neolib.hpp
pair.hpp
neolib::minmax
Definition
utility.hpp:51
neolib::minmax::minmax
minmax(const minmax< U, V > &m)
Definition
utility.hpp:55
neolib::minmax::minmax
minmax()
Definition
utility.hpp:53
neolib::minmax::operator=
minmax< T1, T2 > & operator=(const minmax< U, V > &m)
Definition
utility.hpp:56
neolib::minmax::base_type
pair< T1, T2 > base_type
Definition
utility.hpp:52
neolib::minmax::minmax
minmax(const T1 &x, const T2 &y)
Definition
utility.hpp:54
neolib::minmax::operator-
minmax operator-() const
Definition
utility.hpp:57
neolib
include
neolib
core
utility.hpp
Generated by
1.9.8