16 #ifndef dealii__template_constraints_h 17 #define dealii__template_constraints_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/complex_overloads.h> 26 DEAL_II_NAMESPACE_OPEN
28 template <
bool,
typename>
struct constraint_and_return_value;
86 template <
typename T>
struct constraint_and_return_value<true,T>
144 template <
typename T>
176 template <
typename T>
177 static bool equal (
const T *p1,
const T *p2);
185 template <
typename T,
typename U>
186 static bool equal (
const T *,
const U *);
284 template <
typename T,
typename U>
287 static const bool value =
false;
296 template <
typename T>
299 static const bool value =
true;
352 template <
typename T,
typename U>
355 #ifdef DEAL_II_WITH_CXX11 356 typedef decltype(std::declval<T>() * std::declval<U>()) type;
360 #ifndef DEAL_II_WITH_CXX11 362 template <
typename T>
368 template <
typename T>
374 template <
typename T>
407 typedef long double type;
413 typedef long double type;
471 template <
typename T>
474 typedef std::complex<T> type;
477 template <
typename T,
typename U>
480 typedef std::complex<typename ProductType<T,U>::type> type;
483 template <
typename U>
486 typedef std::complex<typename ProductType<double,U>::type> type;
489 template <
typename T>
492 typedef std::complex<typename ProductType<T,double>::type> type;
496 template <
typename U>
499 typedef std::complex<typename ProductType<float,U>::type> type;
502 template <
typename T>
505 typedef std::complex<typename ProductType<T,float>::type> type;
561 template <
typename T>
579 typedef long double type;
591 typedef unsigned int type;
598 typedef std::complex<T> type;
605 template <
typename T,
typename U>
615 template <
typename T>
624 DEAL_II_NAMESPACE_CLOSE
static bool equal(const T *p1, const T *p2)