Skip to content
Snippets Groups Projects
Commit c12e6f48 authored by Felix Gruber's avatar Felix Gruber Committed by Christoph Grüninger
Browse files

[cleanup] remove deprecated TypeTraits

parent 7083e575
No related branches found
No related tags found
No related merge requests found
......@@ -26,8 +26,8 @@ namespace Dune {
template <class Domain, class Range>
class Function
{
typedef typename ConstantVolatileTraits<typename TypeTraits< Domain >::ReferredType >::UnqualifiedType RawDomainType;
typedef typename ConstantVolatileTraits<typename TypeTraits< Range >::ReferredType >::UnqualifiedType RawRangeType;
typedef typename std::remove_cv<typename std::remove_reference< Domain >::type >::type RawDomainType;
typedef typename std::remove_cv<typename std::remove_reference< Range >::type >::type RawRangeType;
public:
......
......@@ -143,8 +143,6 @@ dune_add_test(SOURCES tupleutilitytest.cc)
dune_add_test(SOURCES typetraitstest.cc)
dune_add_test(SOURCES typetraitstest_deprecated.cc)
#dune_add_test(SOURCES utilitytest.cc)
if(${LAPACK_FOUND})
......
......@@ -43,7 +43,6 @@ TESTPROGS = \
tuplestest \
tupleutilitytest \
typetraitstest \
typetraitstest_deprecated \
utilitytest
# which tests to run
......@@ -203,8 +202,6 @@ tupleutilitytest_SOURCES = tupleutilitytest.cc
typetraitstest_SOURCES = typetraitstest.cc
typetraitstest_deprecated_SOURCES = typetraitstest_deprecated.cc
utilitytest_SOURCES = utilitytest.cc
......
......@@ -5,7 +5,7 @@
#endif
/** \file
* \brief Test the TypeTraits class
* \brief Test the type traits classes
*/
#include <iostream>
......@@ -15,17 +15,6 @@
int main() {
// Test TypeTraits::isPointer
assert( not Dune::TypeTraits<int>::isPointer );
assert( Dune::TypeTraits<int*>::isPointer );
assert( Dune::TypeTraits<int**>::isPointer );
assert( Dune::TypeTraits<int(*)(int)>::isPointer );
// Test TypeTraits::isReference
assert( not Dune::TypeTraits<int>::isReference );
assert( Dune::TypeTraits<int&>::isReference );
assert( not Dune::TypeTraits<int&&>::isReference );
// Test is_pointer
assert( not Dune::is_pointer<int>::value );
assert( Dune::is_pointer<int*>::value );
......@@ -38,8 +27,6 @@ int main() {
assert( not Dune::is_lvalue_reference<int&&>::value );
// Test remove_pointer
// Note: when the argument T is not a pointer, TypeTraits::PointeeType returns Dune::Empty,
// while Dune::remove_pointer (as std::remove_pointer), returns T itself
assert( (Dune::is_same<int, Dune::remove_pointer<int>::type>::value) );
assert( (Dune::is_same<int, Dune::remove_pointer<int*>::type>::value) );
assert( (Dune::is_same<int*, Dune::remove_pointer<int**>::type>::value) );
......
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/** \file
* \brief Test the deprecated functionality of the TypeTraits class.
*/
#include <cassert>
// Suppress deprecation warnings
// do this before including any other dune-headers
#include <dune/common/deprecated.hh>
#undef DUNE_DEPRECATED
#define DUNE_DEPRECATED
#undef DUNE_DEPRECATED_MSG
#define DUNE_DEPRECATED_MSG(text)
#include <dune/common/typetraits.hh>
int main() {
// Test TypeTraits::PointeeType
assert( (Dune::is_same<Dune::Empty, Dune::TypeTraits<int>::PointeeType>::value) );
assert( (Dune::is_same<int, Dune::TypeTraits<int*>::PointeeType>::value) );
assert( (Dune::is_same<int*, Dune::TypeTraits<int**>::PointeeType>::value) );
assert( (Dune::is_same<const int, Dune::TypeTraits<const int*>::PointeeType>::value) );
assert( (Dune::is_same<Dune::Empty, Dune::TypeTraits<int* const>::PointeeType>::value) );
// Test TypeTraits::ReferredType
assert( (Dune::is_same<int, Dune::TypeTraits<int>::ReferredType>::value) );
assert( (Dune::is_same<int, Dune::TypeTraits<int&>::ReferredType>::value) );
return 0;
}
......@@ -27,52 +27,6 @@ namespace Dune
*/
struct Empty {};
/**
* @brief General type traits class to check whether type is reference or
* pointer type
*
* \deprecated This class will be replaced by alternatives found in the C++11 stl.
* - Use is_pointer<T>::value instead of TypeTraits<T>::isPointer
* - Use is_lvalue_reference<T>::value instead of TypeTraits<T>::isReference
* - Use remove_pointer<T>::type instead of TypeTraits<T>::PointeeType
* - Use remove_reference<T>::type instead of TypeTraits<T>::ReferredType
*/
template <typename T>
class TypeTraits
{
private:
template <class U>
struct PointerTraits {
enum { result = false };
typedef Empty PointeeType;
};
template <class U>
struct PointerTraits<U*> {
enum { result = true };
typedef U PointeeType;
};
template <class U> struct ReferenceTraits
{
enum { result = false };
typedef U ReferredType;
};
template <class U> struct ReferenceTraits<U&>
{
enum { result = true };
typedef U ReferredType;
};
public:
enum { isPointer = PointerTraits<T>::result };
typedef typename PointerTraits<T>::PointeeType PointeeType DUNE_DEPRECATED_MSG("Use remove_pointer instead!");
enum { isReference = ReferenceTraits<T>::result };
typedef typename ReferenceTraits<T>::ReferredType ReferredType DUNE_DEPRECATED_MSG("Use remove_reference instead!");
};
/**
* @brief Determines wether a type is const or volatile and provides the
* unqualified types.
......@@ -338,9 +292,6 @@ namespace Dune
{ typedef _Tp type; };
/** \brief Return the type a pointer type points to
*
* \note When the argument T is not a pointer, TypeTraits::PointeeType returns Dune::Empty,
* while Dune::remove_pointer (as std::remove_pointer), returns T itself.
*/
template<typename _Tp>
struct remove_pointer
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment