public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// A helper type-trait that leverage SFINAE to figure out if type T has
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// A helper type-trait that leverage SFINAE to figure out if type T has
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// A helper type-trait that leverage SFINAE to figure out if type T has
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// Used for (Trilinos/PETSc)Wrappers::SparseMatrix
template <typename U>
static decltype(
- std::declval<U const>().Tvmult(std::declval<VectorType &>(),
+ std::declval<const U>().Tvmult(std::declval<VectorType &>(),
std::declval<const VectorType &>()))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().step(std::declval<VectorType &>(),
+ std::declval<const U>().step(std::declval<VectorType &>(),
std::declval<const VectorType &>()))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().step(std::declval<VectorType &>(),
+ std::declval<const U>().step(std::declval<VectorType &>(),
std::declval<const VectorType &>(),
std::declval<const double>()))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().Tstep(std::declval<VectorType &>(),
+ std::declval<const U>().Tstep(std::declval<VectorType &>(),
std::declval<const VectorType &>()))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().Tstep(std::declval<VectorType &>(),
+ std::declval<const U>().Tstep(std::declval<VectorType &>(),
std::declval<const VectorType &>(),
std::declval<const double>()))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().Jacobi_step(std::declval<VectorType &>(),
+ std::declval<const U>().Jacobi_step(std::declval<VectorType &>(),
std::declval<const VectorType &>(),
1.0))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().SOR_step(std::declval<VectorType &>(),
+ std::declval<const U>().SOR_step(std::declval<VectorType &>(),
std::declval<const VectorType &>(),
1.0))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
template <typename U>
static decltype(
- std::declval<U const>().SSOR_step(std::declval<VectorType &>(),
+ std::declval<const U>().SSOR_step(std::declval<VectorType &>(),
std::declval<const VectorType &>(),
1.0))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
template <typename T, typename VectorType>
// detector, otherwise SFINAE let's it work with the more general first
// one that is bool
static const bool value =
- !std::is_same<bool,
- decltype(detect(std::declval<MatrixType>()))>::value &&
+ !std::is_same<decltype(detect(std::declval<MatrixType>())),
+ bool>::value &&
std::is_same<PreconditionerType, DiagonalMatrix<VectorType>>::value &&
std::is_same<
VectorType,
// and its return type will be the same as local_element(),
// that we expect to be T::value_type
template <typename U>
- static decltype(std::declval<U const>().local_element(0))
+ static decltype(std::declval<const U>().local_element(0))
detect(const U &);
public:
detect(...);
template <typename U>
- static decltype(std::declval<U const>().partitioners_are_compatible(
+ static decltype(std::declval<const U>().partitioners_are_compatible(
std::declval<Utilities::MPI::Partitioner>()))
detect(const U &);
public:
static const bool value =
- std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// We need to have a separate declaration for static const members
detect(...);
template <typename U>
- static decltype(std::declval<U const>().begin())
+ static decltype(std::declval<const U>().begin())
detect(const U &);
public:
detect(...);
template <typename U>
- static decltype(std::declval<U const>().shared_vector_data())
+ static decltype(std::declval<const U>().shared_vector_data())
detect(const U &);
public:
detect(...);
template <typename U>
- static decltype(std::declval<U const>().update_ghost_values_start(0))
+ static decltype(std::declval<const U>().update_ghost_values_start(0))
detect(const U &);
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// We need to have a separate declaration for static const members
public:
static const bool value =
- !std::is_same<bool, decltype(detect(std::declval<T>()))>::value;
+ !std::is_same<decltype(detect(std::declval<T>())), bool>::value;
};
// We need to have a separate declaration for static const members