template <typename Iterator>
std::vector<std::vector<Iterator>>
create_partitioning(
- const Iterator & begin,
- const typename identity<Iterator>::type &end,
+ const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
const std::function<std::vector<types::global_dof_index>(
- const Iterator &)> & get_conflict_indices)
+ const Iterator &)> & get_conflict_indices)
{
// Number of iterators.
unsigned int n_iterators = 0;
template <typename Iterator>
std::vector<std::vector<Iterator>>
make_graph_coloring(
- const Iterator & begin,
- const typename identity<Iterator>::type & end,
+ const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> & end,
const std::function<std::vector<types::global_dof_index>(
- const typename identity<Iterator>::type &)> &get_conflict_indices)
+ const std_cxx20::type_identity_t<Iterator> &)> &get_conflict_indices)
{
Assert(begin != end,
ExcMessage(
*/
template <typename BaseIterator>
IteratorRange<BaseIterator>
-make_iterator_range(const BaseIterator & begin,
- const typename identity<BaseIterator>::type &end)
+make_iterator_range(const BaseIterator & begin,
+ const std_cxx20::type_identity_t<BaseIterator> &end)
{
IteratorRange<BaseIterator> ir(begin, end);
return ir;
template <typename ReturnType, class... FunctionArgs>
MutableBind<ReturnType, FunctionArgs...>
mutable_bind(ReturnType (*function)(FunctionArgs...),
- typename identity<FunctionArgs>::type &&...arguments);
+ std_cxx20::type_identity_t<FunctionArgs> &&...arguments);
/**
* Same as above, using a std::function object.
template <typename ReturnType, class... FunctionArgs>
MutableBind<ReturnType, FunctionArgs...>
mutable_bind(std::function<ReturnType(FunctionArgs...)>,
- typename identity<FunctionArgs>::type &&...arguments);
+ std_cxx20::type_identity_t<FunctionArgs> &&...arguments);
/**
* Create a MutableBind object from a function pointer, with uninitialized
template <typename ReturnType, class... FunctionArgs>
MutableBind<ReturnType, FunctionArgs...>
mutable_bind(ReturnType (*function)(FunctionArgs...),
- typename identity<FunctionArgs>::type &&...arguments)
+ std_cxx20::type_identity_t<FunctionArgs> &&...arguments)
{
return MutableBind<ReturnType, FunctionArgs...>(function,
std::move(arguments)...);
template <typename ReturnType, class... FunctionArgs>
MutableBind<ReturnType, FunctionArgs...>
mutable_bind(std::function<ReturnType(FunctionArgs...)> function,
- typename identity<FunctionArgs>::type &&...arguments)
+ std_cxx20::type_identity_t<FunctionArgs> &&...arguments)
{
return MutableBind<ReturnType, FunctionArgs...>(function,
std::move(arguments)...);
*/
template <typename Iterator, typename Function>
DEAL_II_CXX20_REQUIRES((std::invocable<Function, Iterator, Iterator>))
- void apply_to_subranges(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- const Function & f,
- const unsigned int grainsize)
+ void apply_to_subranges(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ const Function & f,
+ const unsigned int grainsize)
{
#ifndef DEAL_II_WITH_TBB
// make sure we don't get compiler
std::convertible_to<std::invoke_result_t<Function, Iterator, Iterator>,
ResultType>))
ResultType
- accumulate_from_subranges(const Function & f,
- const Iterator & begin,
- const typename identity<Iterator>::type &end,
+ accumulate_from_subranges(const Function & f,
+ const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
const unsigned int grainsize)
{
#ifndef DEAL_II_WITH_TBB
* written as
* @code
* template <typename T>
- * void f(T, typename identity<T>::type);
+ * void f(T, std_cxx20::type_identity_t<T>);
* @endcode
* then the call becomes valid: the type <code>T</code> is not deducible
* from the second argument to the function, so only the first argument
* achieve this by writing the code as follows:
* @code
* template <typename RT, typename A>
- * void forward_call(RT (*p) (A), typename identity<A>::type a)
+ * void forward_call(RT (*p) (A), std_cxx20::type_identity_t<A> a)
* {
* p(a);
* }
*/
template <typename RT, typename... Args>
DEAL_II_DEPRECATED inline Thread<RT>
- new_thread(RT (*fun_ptr)(Args...), typename identity<Args>::type... args)
+ new_thread(RT (*fun_ptr)(Args...), std_cxx20::type_identity_t<Args>... args)
{
// See the comment in the first new_thread() implementation
DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
template <typename RT, typename C, typename... Args>
DEAL_II_DEPRECATED inline Thread<RT>
new_thread(RT (C::*fun_ptr)(Args...),
- typename identity<C>::type &c,
- typename identity<Args>::type... args)
+ std_cxx20::type_identity_t<C> &c,
+ std_cxx20::type_identity_t<Args>... args)
{
// NOLINTNEXTLINE(modernize-avoid-bind) silence clang-tidy
return new_thread(std::function<RT()>(std::bind(
template <typename RT, typename C, typename... Args>
DEAL_II_DEPRECATED inline Thread<RT>
new_thread(RT (C::*fun_ptr)(Args...) const,
- typename identity<const C>::type &c,
- typename identity<Args>::type... args)
+ std_cxx20::type_identity_t<const C> &c,
+ std_cxx20::type_identity_t<Args>... args)
{
// See the comment in the first new_thread() implementation
DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
*/
template <typename RT, typename... Args>
inline Task<RT>
- new_task(RT (*fun_ptr)(Args...), typename identity<Args>::type... args)
+ new_task(RT (*fun_ptr)(Args...), std_cxx20::type_identity_t<Args>... args)
{
auto dummy = std::make_tuple(internal::maybe_make_ref<Args>::act(args)...);
return new_task(
template <typename RT, typename C, typename... Args>
inline Task<RT>
new_task(RT (C::*fun_ptr)(Args...),
- typename identity<C>::type &c,
- typename identity<Args>::type... args)
+ std_cxx20::type_identity_t<C> &c,
+ std_cxx20::type_identity_t<Args>... args)
{
// NOLINTNEXTLINE(modernize-avoid-bind) silence clang-tidy
return new_task(std::function<RT()>(std::bind(
template <typename RT, typename C, typename... Args>
inline Task<RT>
new_task(RT (C::*fun_ptr)(Args...) const,
- typename identity<const C>::type &c,
- typename identity<Args>::type... args)
+ std_cxx20::type_identity_t<const C> &c,
+ std_cxx20::type_identity_t<Args>... args)
{
// NOLINTNEXTLINE(modernize-avoid-bind) silence clang-tidy
return new_task(std::function<RT()>(std::bind(
typename ScratchData,
typename CopyData>
void
- run(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- Worker worker,
- Copier copier,
- const ScratchData & sample_scratch_data,
- const CopyData & sample_copy_data,
- const unsigned int queue_length,
- const unsigned int chunk_size)
+ run(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ Worker worker,
+ Copier copier,
+ const ScratchData & sample_scratch_data,
+ const CopyData & sample_copy_data,
+ const unsigned int queue_length,
+ const unsigned int chunk_size)
{
using ItemType = typename IteratorRangeToItemStream<Iterator,
ScratchData,
typename ScratchData,
typename CopyData>
void
- run(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- Worker worker,
- Copier copier,
- const ScratchData & sample_scratch_data,
- const CopyData & sample_copy_data)
+ run(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ Worker worker,
+ Copier copier,
+ const ScratchData & sample_scratch_data,
+ const CopyData & sample_copy_data)
{
// need to copy the sample since it is marked const
ScratchData scratch_data = sample_scratch_data;
typename ScratchData,
typename CopyData>
void
- run(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- Worker worker,
- Copier copier,
- const ScratchData & sample_scratch_data,
- const CopyData & sample_copy_data,
+ run(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ Worker worker,
+ Copier copier,
+ const ScratchData & sample_scratch_data,
+ const CopyData & sample_copy_data,
const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
const unsigned int chunk_size = 8)
{
typename ScratchData,
typename CopyData>
void
- run(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- MainClass & main_object,
+ run(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ MainClass & main_object,
void (MainClass::*worker)(const Iterator &, ScratchData &, CopyData &),
void (MainClass::*copier)(const CopyData &),
const ScratchData &sample_scratch_data,
typename ScratchData,
typename CopyData>
void
- run(const IteratorOverIterators<Iterator> & begin,
- const IteratorOverIterators<typename identity<Iterator>::type> &end,
+ run(const IteratorOverIterators<Iterator> & begin,
+ const IteratorOverIterators<std_cxx20::type_identity_t<Iterator>> &end,
MainClass &main_object,
void (MainClass::*worker)(const Iterator &, ScratchData &, CopyData &),
void (MainClass::*copier)(const CopyData &),
typename CopyData,
typename = std::enable_if_t<has_begin_and_end<IteratorRangeType>>>
void
- run(IteratorRangeType iterator_range,
- MainClass & main_object,
- void (MainClass::*worker)(
- const typename identity<IteratorRangeType>::type::iterator &,
- ScratchData &,
- CopyData &),
- void (MainClass::*copier)(const CopyData &),
- const ScratchData &sample_scratch_data,
- const CopyData & sample_copy_data,
- const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
- const unsigned int chunk_size = 8)
+ run(
+ IteratorRangeType iterator_range,
+ MainClass & main_object,
+ void (MainClass::*worker)(
+ const typename std_cxx20::type_identity_t<IteratorRangeType>::iterator &,
+ ScratchData &,
+ CopyData &),
+ void (MainClass::*copier)(const CopyData &),
+ const ScratchData &sample_scratch_data,
+ const CopyData & sample_copy_data,
+ const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
+ const unsigned int chunk_size = 8)
{
// Call the function above
run(std::begin(iterator_range),
types::global_dof_index
compute_component_wise(std::vector<types::global_dof_index> &new_dof_indices,
const CellIterator & start,
- const typename identity<CellIterator>::type &end,
+ const std_cxx20::type_identity_t<CellIterator> &end,
const std::vector<unsigned int> &target_component,
const bool is_level_operation);
template <typename FaceIterator, typename number>
void
make_periodicity_constraints(
- const FaceIterator & face_1,
- const typename identity<FaceIterator>::type &face_2,
- AffineConstraints<number> & constraints,
+ const FaceIterator & face_1,
+ const std_cxx20::type_identity_t<FaceIterator> &face_2,
+ AffineConstraints<number> & constraints,
const ComponentMask & component_mask = ComponentMask(),
const bool face_orientation = true,
const bool face_flip = false,
const Vector<Number> & criteria,
const Number p_refine_threshold,
const Number p_coarsen_threshold,
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_refine = std::greater_equal<Number>(),
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen = std::less_equal<Number>());
/**
const Vector<Number> & criteria,
const double p_refine_fraction = 0.5,
const double p_coarsen_fraction = 0.5,
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_refine = std::greater_equal<Number>(),
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen = std::less_equal<Number>());
/**
const Vector<Number> & criteria,
const double p_refine_fraction = 0.5,
const double p_coarsen_fraction = 0.5,
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_refine = std::greater_equal<Number>(),
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen = std::less_equal<Number>());
/**
template <int dim, typename Number, int spacedim>
void
p_adaptivity_from_reference(
- const DoFHandler<dim, spacedim> & dof_handler,
- const Vector<Number> & criteria,
- const Vector<Number> & references,
- const ComparisonFunction<typename identity<Number>::type> &compare_refine,
- const ComparisonFunction<typename identity<Number>::type>
+ const DoFHandler<dim, spacedim> &dof_handler,
+ const Vector<Number> & criteria,
+ const Vector<Number> & references,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
+ &compare_refine,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen);
/**
class ASSEMBLER,
class ITERATOR>
void
- loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DOFINFO & dinfo,
- INFOBOX & info,
+ loop(ITERATOR begin,
+ std_cxx20::type_identity_t<ITERATOR> end,
+ DOFINFO & dinfo,
+ INFOBOX & info,
const std::function<void(DOFINFO &, typename INFOBOX::CellInfo &)>
&cell_worker,
const std::function<void(DOFINFO &, typename INFOBOX::CellInfo &)>
template <int dim, int spacedim, class ITERATOR, class ASSEMBLER>
void
integration_loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
+ std_cxx20::type_identity_t<ITERATOR> end,
DoFInfo<dim, spacedim> & dof_info,
IntegrationInfoBox<dim, spacedim> & box,
const LocalIntegrator<dim, spacedim> &integrator,
const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
const unsigned int chunk_size = 8
#else
- const CellIteratorType & begin,
- const typename identity<CellIteratorType>::type &end,
+ const CellIteratorType & begin,
+ const std_cxx20::type_identity_t<CellIteratorType> &end,
- const typename identity<std::function<
- void(const CellIteratorBaseType &, ScratchData &, CopyData &)>>::type
+ const std_cxx20::type_identity_t<std::function<
+ void(const CellIteratorBaseType &, ScratchData &, CopyData &)>>
&cell_worker,
- const typename identity<std::function<void(const CopyData &)>>::type
+ const std_cxx20::type_identity_t<std::function<void(const CopyData &)>>
&copier,
const ScratchData &sample_scratch_data,
const AssembleFlags flags = assemble_own_cells,
- const typename identity<std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- ScratchData &,
- CopyData &)>>::type
- &boundary_worker = std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- ScratchData &,
- CopyData &)>(),
-
- const typename identity<std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- ScratchData &,
- CopyData &)>>::type
- &face_worker = std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- ScratchData &,
- CopyData &)>(),
+ const std_cxx20::type_identity_t<
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>> &boundary_worker =
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>(),
+
+ const std_cxx20::type_identity_t<
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>> &face_worker =
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>(),
const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
const unsigned int chunk_size = 8
void
mesh_loop(
IteratorRange<CellIteratorType> iterator_range,
- const typename identity<std::function<
- void(const CellIteratorBaseType &, ScratchData &, CopyData &)>>::type
+ const std_cxx20::type_identity_t<std::function<
+ void(const CellIteratorBaseType &, ScratchData &, CopyData &)>>
&cell_worker,
- const typename identity<std::function<void(const CopyData &)>>::type
+ const std_cxx20::type_identity_t<std::function<void(const CopyData &)>>
&copier,
const ScratchData &sample_scratch_data,
const AssembleFlags flags = assemble_own_cells,
- const typename identity<std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- ScratchData &,
- CopyData &)>>::type
- &boundary_worker = std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- ScratchData &,
- CopyData &)>(),
-
- const typename identity<std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- ScratchData &,
- CopyData &)>>::type
- &face_worker = std::function<void(const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- const CellIteratorBaseType &,
- const unsigned int,
- const unsigned int,
- ScratchData &,
- CopyData &)>(),
+ const std_cxx20::type_identity_t<
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>> &boundary_worker =
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>(),
+
+ const std_cxx20::type_identity_t<
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>> &face_worker =
+ std::function<void(const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ const CellIteratorBaseType &,
+ const unsigned int,
+ const unsigned int,
+ ScratchData &,
+ CopyData &)>(),
const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
const unsigned int chunk_size = 8)
class CopyData,
class MainClass>
void
- mesh_loop(const CellIteratorType & begin,
- const typename identity<CellIteratorType>::type &end,
- MainClass & main_class,
+ mesh_loop(const CellIteratorType & begin,
+ const std_cxx20::type_identity_t<CellIteratorType> &end,
+ MainClass & main_class,
void (MainClass::*cell_worker)(const CellIteratorType &,
ScratchData &,
CopyData &),
types::global_dof_index
compute_component_wise(std::vector<types::global_dof_index> &new_indices,
const CellIterator & start,
- const typename identity<CellIterator>::type &end,
+ const std_cxx20::type_identity_t<CellIterator> &end,
const std::vector<unsigned int> &component_order_arg,
const bool is_level_operation)
{
template <typename FaceIterator, typename number>
void
set_periodicity_constraints(
- const FaceIterator & face_1,
- const typename identity<FaceIterator>::type &face_2,
- const FullMatrix<double> & transformation,
- AffineConstraints<number> & affine_constraints,
- const ComponentMask & component_mask,
- const bool face_orientation,
- const bool face_flip,
- const bool face_rotation,
- const number periodicity_factor)
+ const FaceIterator & face_1,
+ const std_cxx20::type_identity_t<FaceIterator> &face_2,
+ const FullMatrix<double> & transformation,
+ AffineConstraints<number> & affine_constraints,
+ const ComponentMask & component_mask,
+ const bool face_orientation,
+ const bool face_flip,
+ const bool face_rotation,
+ const number periodicity_factor)
{
static const int dim = FaceIterator::AccessorType::dimension;
static const int spacedim = FaceIterator::AccessorType::space_dimension;
template <typename FaceIterator, typename number>
void
make_periodicity_constraints(
- const FaceIterator & face_1,
- const typename identity<FaceIterator>::type &face_2,
- AffineConstraints<number> & affine_constraints,
- const ComponentMask & component_mask,
- const bool face_orientation,
- const bool face_flip,
- const bool face_rotation,
- const FullMatrix<double> & matrix,
- const std::vector<unsigned int> & first_vector_components,
- const number periodicity_factor)
+ const FaceIterator & face_1,
+ const std_cxx20::type_identity_t<FaceIterator> &face_2,
+ AffineConstraints<number> & affine_constraints,
+ const ComponentMask & component_mask,
+ const bool face_orientation,
+ const bool face_flip,
+ const bool face_rotation,
+ const FullMatrix<double> & matrix,
+ const std::vector<unsigned int> & first_vector_components,
+ const number periodicity_factor)
{
static const int dim = FaceIterator::AccessorType::dimension;
static const int spacedim = FaceIterator::AccessorType::space_dimension;
void
match_periodic_face_pairs(
std::set<std::pair<CellIterator, unsigned int>> &pairs1,
- std::set<std::pair<typename identity<CellIterator>::type, unsigned int>>
+ std::set<std::pair<std_cxx20::type_identity_t<CellIterator>, unsigned int>>
& pairs2,
const unsigned int direction,
std::vector<PeriodicFacePair<CellIterator>> &matched_pairs,
const Vector<Number> & criteria,
const Number p_refine_threshold,
const Number p_coarsen_threshold,
- const ComparisonFunction<typename identity<Number>::type> &compare_refine,
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
+ &compare_refine,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen)
{
if (dof_handler.get_fe_collection().size() == 0)
const Vector<Number> & criteria,
const double p_refine_fraction,
const double p_coarsen_fraction,
- const ComparisonFunction<typename identity<Number>::type> &compare_refine,
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
+ &compare_refine,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen)
{
if (dof_handler.get_fe_collection().size() == 0)
const Vector<Number> & criteria,
const double p_refine_fraction,
const double p_coarsen_fraction,
- const ComparisonFunction<typename identity<Number>::type> &compare_refine,
- const ComparisonFunction<typename identity<Number>::type>
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
+ &compare_refine,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen)
{
if (dof_handler.get_fe_collection().size() == 0)
template <int dim, typename Number, int spacedim>
void
p_adaptivity_from_reference(
- const DoFHandler<dim, spacedim> & dof_handler,
- const Vector<Number> & criteria,
- const Vector<Number> & references,
- const ComparisonFunction<typename identity<Number>::type> &compare_refine,
- const ComparisonFunction<typename identity<Number>::type>
+ const DoFHandler<dim, spacedim> &dof_handler,
+ const Vector<Number> & criteria,
+ const Vector<Number> & references,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
+ &compare_refine,
+ const ComparisonFunction<std_cxx20::type_identity_t<Number>>
&compare_coarsen)
{
if (dof_handler.get_fe_collection().size() == 0)
const Vector<S> &,
const S,
const S,
- const ComparisonFunction<typename identity<S>::type> &,
- const ComparisonFunction<typename identity<S>::type> &);
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &,
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &);
template void
p_adaptivity_from_relative_threshold<deal_II_dimension,
const Vector<S> &,
const double,
const double,
- const ComparisonFunction<typename identity<S>::type> &,
- const ComparisonFunction<typename identity<S>::type> &);
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &,
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &);
template void
p_adaptivity_fixed_number<deal_II_dimension,
const Vector<S> &,
const double,
const double,
- const ComparisonFunction<typename identity<S>::type> &,
- const ComparisonFunction<typename identity<S>::type> &);
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &,
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &);
template void
p_adaptivity_from_regularity<deal_II_dimension,
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
const Vector<S> &,
const Vector<S> &,
- const ComparisonFunction<typename identity<S>::type> &,
- const ComparisonFunction<typename identity<S>::type> &);
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &,
+ const ComparisonFunction<std_cxx20::type_identity_t<S>> &);
template void
predict_error<deal_II_dimension, S, deal_II_space_dimension>(
MeshWorker::DoFInfo<dim> dof_info(dofs.block_info());
// integration_loop(ITERATOR begin,
- // typename identity<ITERATOR>::type end,
+ // std_cxx20::type_identity_t<ITERATOR> end,
// DOFINFO &dinfo,
// INFOBOX &info,
// const std::function<void (DOFINFO &, typename
MeshWorker::DoFInfo<dim> dof_info(dofs.block_info());
// integration_loop(ITERATOR begin,
- // typename identity<ITERATOR>::type end,
+ // std_cxx20::type_identity_t<ITERATOR> end,
// DOFINFO &dinfo,
// INFOBOX &info,
// const std::function<void (DOFINFO &, typename
MeshWorker::DoFInfo<dim> dof_info(dofs.block_info());
// integration_loop(ITERATOR begin,
- // typename identity<ITERATOR>::type end,
+ // std_cxx20::type_identity_t<ITERATOR> end,
// DOFINFO &dinfo,
// INFOBOX &info,
// const std::function<void (DOFINFO &, typename
MeshWorker::DoFInfo<dim> dof_info(dofs.block_info());
// integration_loop(ITERATOR begin,
- // typename identity<ITERATOR>::type end,
+ // std_cxx20::type_identity_t<ITERATOR> end,
// DOFINFO &dinfo,
// INFOBOX &info,
// const std::function<void (DOFINFO &, typename
MeshWorker::DoFInfo<dim> dof_info(dofs.block_info());
// integration_loop(ITERATOR begin,
- // typename identity<ITERATOR>::type end,
+ // std_cxx20::type_identity_t<ITERATOR> end,
// DOFINFO &dinfo,
// INFOBOX &info,
// const std::function<void (DOFINFO &, typename
typename ScratchData,
typename CopyData>
void
- run(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- Worker worker,
- Copier copier,
- const ScratchData & sample_scratch_data,
- const CopyData & sample_copy_data,
+ run(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ Worker worker,
+ Copier copier,
+ const ScratchData & sample_scratch_data,
+ const CopyData & sample_copy_data,
const unsigned int queue_length = 2 * MultithreadInfo::n_threads(),
const unsigned int chunk_size = 8)
{
typename ScratchData,
typename CopyData>
void
- run(const Iterator & begin,
- const typename identity<Iterator>::type &end,
- MainClass & main_object,
+ run(const Iterator & begin,
+ const std_cxx20::type_identity_t<Iterator> &end,
+ MainClass & main_object,
void (MainClass::*worker)(const Iterator &, ScratchData &, CopyData &),
void (MainClass::*copier)(const CopyData &),
const ScratchData &sample_scratch_data,