PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Core
STL
type_traits.h
Go to the documentation of this file.
1
#ifndef TYPE_TRAITS_H
2
#define TYPE_TRAITS_H
3
4
#include "Platform.h"
5
6
namespace
dyno
7
{
8
9
template
<
typename
T>
struct
remove_reference
{
typedef
T
type
; };
10
11
template
<
typename
T>
struct
remove_reference
<
T
&> {
typedef
T
type
; };
12
13
template
<
typename
T>
struct
remove_reference
<
T
&&> {
typedef
T
type
; };
14
15
16
template
<
typename
T>
17
DYN_FUNC
constexpr
T
&&
forward
(
typename
dyno::remove_reference<T>::type
& x)
noexcept
18
{
19
return
static_cast<
T
&&
>
(x);
20
}
21
22
23
template
<
typename
T>
24
DYN_FUNC
constexpr
T
&&
forward
(
typename
dyno::remove_reference<T>::type
&& x)
noexcept
25
{
26
// should promise T isn't lvalue reference
27
return
static_cast<
T
&&
>
(x);
28
}
29
30
template
<
typename
T>
31
struct
iterator_traits
{};
32
33
typedef
long
long
ptrDiff_t
;
34
35
template
<
typename
T>
36
struct
iterator_traits
<
T
*>
37
{
38
typedef
T
value_type
;
39
typedef
ptrDiff_t
difference_type
;
40
typedef
T
*
pointer
;
41
typedef
T
&
reference
;
42
};
43
44
template
<
typename
T>
45
struct
iterator_traits
<const
T
*>
46
{
47
typedef
T
value_type
;
48
typedef
ptrDiff_t
difference_type
;
49
typedef
const
T
*
pointer
;
50
typedef
const
T
&
reference
;
51
};
52
}
53
54
55
#endif
// TYPE_TRAITS_H
T
#define T(t)
dyno
This is an implementation of AdditiveCCD based on peridyno.
Definition
Array.h:25
dyno::forward
DYN_FUNC constexpr T && forward(typename dyno::remove_reference< T >::type &x) noexcept
Definition
type_traits.h:17
dyno::ptrDiff_t
long long ptrDiff_t
Definition
type_traits.h:33
dyno::iterator_traits< T * >::pointer
T * pointer
Definition
type_traits.h:40
dyno::iterator_traits< T * >::reference
T & reference
Definition
type_traits.h:41
dyno::iterator_traits< T * >::difference_type
ptrDiff_t difference_type
Definition
type_traits.h:39
dyno::iterator_traits< T * >::value_type
T value_type
Definition
type_traits.h:38
dyno::iterator_traits< const T * >::reference
const T & reference
Definition
type_traits.h:50
dyno::iterator_traits< const T * >::pointer
const T * pointer
Definition
type_traits.h:49
dyno::iterator_traits< const T * >::value_type
T value_type
Definition
type_traits.h:47
dyno::iterator_traits< const T * >::difference_type
ptrDiff_t difference_type
Definition
type_traits.h:48
dyno::iterator_traits
Definition
type_traits.h:31
dyno::remove_reference< T & >::type
T type
Definition
type_traits.h:11
dyno::remove_reference< T && >::type
T type
Definition
type_traits.h:13
dyno::remove_reference
Definition
type_traits.h:9
dyno::remove_reference::type
T type
Definition
type_traits.h:9
Generated by
1.13.2