Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
amdis
amdis-core
Commits
0d63a6a7
Commit
0d63a6a7
authored
May 08, 2019
by
Praetorius, Simon
Browse files
added tests for is_template
parent
4458a050
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/amdis/common/TypeTraits.hpp
View file @
0d63a6a7
...
...
@@ -103,13 +103,22 @@ namespace AMDiS
constexpr
bool
is_template
()
{
return
true
;
}
#if AMDIS_HAS_CXX_AUTO_TEMPLATE_PARAMETER
template
<
template
<
class
,
auto
...>
class
>
template
<
template
<
auto
...>
class
>
constexpr
bool
is_template
()
{
return
true
;
}
template
<
template
<
class
,
auto
,
auto
...>
class
>
constexpr
bool
is_template
()
{
return
true
;
}
#else
template
<
template
<
class
,
int
...>
class
>
template
<
template
<
int
...>
class
>
constexpr
bool
is_template
()
{
return
true
;
}
template
<
template
<
class
,
int
,
int
...>
class
>
constexpr
bool
is_template
()
{
return
true
;
}
template
<
template
<
std
::
size_t
...>
class
>
constexpr
bool
is_template
()
{
return
true
;
}
template
<
template
<
class
,
std
::
size_t
...>
class
>
template
<
template
<
class
,
std
::
size_t
,
std
::
size_t
...>
class
>
constexpr
bool
is_template
()
{
return
true
;
}
#endif
...
...
test/CMakeLists.txt
View file @
0d63a6a7
...
...
@@ -72,3 +72,6 @@ dune_add_test(SOURCES TreeDataTest.cpp
dune_add_test
(
SOURCES TreeContainerTest.cpp
LINK_LIBRARIES amdis
)
dune_add_test
(
SOURCES TypeTraitsTest.cpp
LINK_LIBRARIES amdis
)
test/TypeTraitsTest.cpp
0 → 100644
View file @
0d63a6a7
#include <amdis/AMDiS.hpp>
#include <amdis/common/TypeTraits.hpp>
using
namespace
AMDiS
;
template
<
std
::
size_t
i
>
struct
A
{};
template
<
class
T
>
struct
B
{};
template
<
class
T
,
std
::
size_t
i
>
struct
C
{};
struct
D
{};
int
main
(
int
argc
,
char
**
argv
)
{
Environment
env
(
argc
,
argv
);
static_assert
(
is_template
<
A
>
(),
""
);
static_assert
(
is_template
<
B
>
(),
""
);
static_assert
(
is_template
<
C
>
(),
""
);
static_assert
(
not
is_template
<
std
::
size_t
>
(),
""
);
static_assert
(
not
is_template
<
D
>
(),
""
);
return
0
;
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment