#cmakedefine DEAL_II_TEMPL_SPEC_FRIEND_BUG
#cmakedefine DEAL_II_MEMBER_ARRAY_SPECIALIZATION_BUG
#cmakedefine DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG
-#cmakedefine DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
#cmakedefine DEAL_II_CONST_MEMBER_DEDUCTION_BUG
#cmakedefine DEAL_II_BOOST_BIND_COMPILER_BUG
#cmakedefine DEAL_II_BIND_NO_CONST_OP_PARENTHESES
*/
BlockVector (BlockVector<Number> &&/*v*/) = default;
-
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
/**
* Copy constructor taking a BlockVector of another data type. This will
* fail if there is no conversion path from <tt>OtherNumber</tt> to
template <typename OtherNumber>
explicit
BlockVector (const BlockVector<OtherNumber> &v);
-#endif
-
#ifdef DEAL_II_WITH_TRILINOS
/**
}
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
template <typename Number>
template <typename OtherNumber>
*this = v;
}
-#endif
#ifdef DEAL_II_WITH_TRILINOS
*/
BlockVector (const BlockVector<Number> &V);
-
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
/**
* Copy constructor taking a BlockVector of another data type. This will
* fail if there is no conversion path from <tt>OtherNumber</tt> to
template <typename OtherNumber>
explicit
BlockVector (const BlockVector<OtherNumber> &v);
-#endif
/**
* Constructor. Set the number of blocks to <tt>block_sizes.size()</tt>
}
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
template <typename Number>
template <typename OtherNumber>
*this = v;
}
-#endif
-
template <typename Number>
*/
Vector (Vector<Number> &&v);
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
/**
* Copy constructor taking a vector of another data type. This will fail if
* there is no conversion path from @p OtherNumber to @p Number. Note that
template <typename OtherNumber>
explicit
Vector (const Vector<OtherNumber> &v);
-#endif
#ifdef DEAL_II_WITH_PETSC
/**
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
template <typename Number>
template <typename OtherNumber>
Vector<Number>::Vector (const Vector<OtherNumber> &v)
*this = v;
}
}
-#endif
+
#ifdef DEAL_II_WITH_PETSC
// these functions can't be generated by the preprocessor since
// the template arguments need to be different
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
template BlockVector<double>::BlockVector (const BlockVector<float> &);
template BlockVector<float>::BlockVector (const BlockVector<double> &);
template BlockVector<std::complex<double> >::BlockVector (const BlockVector<std::complex<float> > &);
template BlockVector<std::complex<float> >::BlockVector (const BlockVector<std::complex<double> > &);
-#endif
DEAL_II_NAMESPACE_CLOSE
#define TEMPL_COPY_CONSTRUCTOR(S1,S2) \
template BlockVector<S1>& BlockVector<S1>::operator=<S2> (const BlockVector<S2> &)
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
TEMPL_COPY_CONSTRUCTOR(double,float);
TEMPL_COPY_CONSTRUCTOR(float,double);
-#endif
-
#undef TEMPL_COPY_CONSTRUCTOR
}
}
#define TEMPL_COPY_CONSTRUCTOR(S1,S2) \
template Vector<S1>& Vector<S1>::operator=<S2> (const Vector<S2> &)
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
TEMPL_COPY_CONSTRUCTOR(double,float);
TEMPL_COPY_CONSTRUCTOR(float,double);
-
TEMPL_COPY_CONSTRUCTOR(std::complex<double>,std::complex<float>);
TEMPL_COPY_CONSTRUCTOR(std::complex<float>,std::complex<double>);
-#endif
-
#undef TEMPL_COPY_CONSTRUCTOR
}
}
#define TEMPL_COPY_CONSTRUCTOR(S1,S2) \
template Vector<S1>& Vector<S1>::operator=<S2> (const Vector<S2> &)
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
TEMPL_COPY_CONSTRUCTOR(double,float);
TEMPL_COPY_CONSTRUCTOR(float,double);
-
TEMPL_COPY_CONSTRUCTOR(std::complex<double>,std::complex<float>);
TEMPL_COPY_CONSTRUCTOR(std::complex<float>,std::complex<double>);
-#endif
-
#undef TEMPL_COPY_CONSTRUCTOR
}
#define TEMPL_COPY_CONSTRUCTOR(S1,S2) \
template ReadWriteVector<S1>& ReadWriteVector<S1>::operator=<S2> (const ReadWriteVector<S2> &)
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
TEMPL_COPY_CONSTRUCTOR(double,float);
TEMPL_COPY_CONSTRUCTOR(float,double);
-
TEMPL_COPY_CONSTRUCTOR(std::complex<double>,std::complex<float>);
TEMPL_COPY_CONSTRUCTOR(std::complex<float>,std::complex<double>);
-#endif
-
#undef TEMPL_COPY_CONSTRUCTOR
}
template Vector<S1>::Vector (const Vector<S2> &); \
template Vector<S1>& Vector<S1>::operator=<S2> (const Vector<S2> &)
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
TEMPL_COPY_CONSTRUCTOR(double,float);
TEMPL_COPY_CONSTRUCTOR(float,double);
-
TEMPL_COPY_CONSTRUCTOR(std::complex<double>,std::complex<float>);
TEMPL_COPY_CONSTRUCTOR(std::complex<float>,std::complex<double>);
-#endif
-
#undef TEMPL_COPY_CONSTRUCTOR