From ac33ee15e72214783a6b3613c0e6cbbdf591cd4d Mon Sep 17 00:00:00 2001 From: David Wells Date: Tue, 8 Aug 2017 17:18:17 -0400 Subject: [PATCH] Remove DEAL_II_EXPLICIT_CONSTRUCTOR_BUG. This workaround is no longer necessary in any compiler that we support. Reverts 8cba8cc3f1. --- include/deal.II/base/config.h.in | 1 - include/deal.II/lac/block_vector.h | 4 ---- include/deal.II/lac/block_vector.templates.h | 2 -- include/deal.II/lac/la_parallel_block_vector.h | 3 --- include/deal.II/lac/la_parallel_block_vector.templates.h | 3 --- include/deal.II/lac/vector.h | 2 -- include/deal.II/lac/vector.templates.h | 3 +-- source/lac/block_vector.cc | 2 -- source/lac/la_parallel_block_vector.cc | 3 --- source/lac/la_parallel_vector.cc | 4 ---- source/lac/la_vector.cc | 4 ---- source/lac/read_write_vector.cc | 4 ---- source/lac/vector.cc | 4 ---- 13 files changed, 1 insertion(+), 38 deletions(-) diff --git a/include/deal.II/base/config.h.in b/include/deal.II/base/config.h.in index a77d4adeaf..733fb6c4aa 100644 --- a/include/deal.II/base/config.h.in +++ b/include/deal.II/base/config.h.in @@ -68,7 +68,6 @@ #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 diff --git a/include/deal.II/lac/block_vector.h b/include/deal.II/lac/block_vector.h index c071886c06..8920b7afce 100644 --- a/include/deal.II/lac/block_vector.h +++ b/include/deal.II/lac/block_vector.h @@ -114,8 +114,6 @@ public: */ BlockVector (BlockVector &&/*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 OtherNumber to @@ -131,8 +129,6 @@ public: template explicit BlockVector (const BlockVector &v); -#endif - #ifdef DEAL_II_WITH_TRILINOS /** diff --git a/include/deal.II/lac/block_vector.templates.h b/include/deal.II/lac/block_vector.templates.h index 3be23f0d31..7b9c1cd5ea 100644 --- a/include/deal.II/lac/block_vector.templates.h +++ b/include/deal.II/lac/block_vector.templates.h @@ -61,7 +61,6 @@ BlockVector::BlockVector (const BlockVector &v) } -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG template template @@ -71,7 +70,6 @@ BlockVector::BlockVector (const BlockVector &v) *this = v; } -#endif #ifdef DEAL_II_WITH_TRILINOS diff --git a/include/deal.II/lac/la_parallel_block_vector.h b/include/deal.II/lac/la_parallel_block_vector.h index a595932188..a9321d978a 100644 --- a/include/deal.II/lac/la_parallel_block_vector.h +++ b/include/deal.II/lac/la_parallel_block_vector.h @@ -129,8 +129,6 @@ namespace LinearAlgebra */ BlockVector (const BlockVector &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 OtherNumber to @@ -146,7 +144,6 @@ namespace LinearAlgebra template explicit BlockVector (const BlockVector &v); -#endif /** * Constructor. Set the number of blocks to block_sizes.size() diff --git a/include/deal.II/lac/la_parallel_block_vector.templates.h b/include/deal.II/lac/la_parallel_block_vector.templates.h index bb7e08add4..801528860d 100644 --- a/include/deal.II/lac/la_parallel_block_vector.templates.h +++ b/include/deal.II/lac/la_parallel_block_vector.templates.h @@ -93,7 +93,6 @@ namespace LinearAlgebra } -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG template template @@ -103,8 +102,6 @@ namespace LinearAlgebra *this = v; } -#endif - template diff --git a/include/deal.II/lac/vector.h b/include/deal.II/lac/vector.h index d81bb464ef..964ffe9d27 100644 --- a/include/deal.II/lac/vector.h +++ b/include/deal.II/lac/vector.h @@ -183,7 +183,6 @@ public: */ Vector (Vector &&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 @@ -199,7 +198,6 @@ public: template explicit Vector (const Vector &v); -#endif #ifdef DEAL_II_WITH_PETSC /** diff --git a/include/deal.II/lac/vector.templates.h b/include/deal.II/lac/vector.templates.h index 979b90afb1..b26885ed39 100644 --- a/include/deal.II/lac/vector.templates.h +++ b/include/deal.II/lac/vector.templates.h @@ -75,7 +75,6 @@ Vector::Vector (Vector &&v) -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG template template Vector::Vector (const Vector &v) @@ -91,7 +90,7 @@ Vector::Vector (const Vector &v) *this = v; } } -#endif + #ifdef DEAL_II_WITH_PETSC diff --git a/source/lac/block_vector.cc b/source/lac/block_vector.cc index d1a440f771..1faeaba8ec 100644 --- a/source/lac/block_vector.cc +++ b/source/lac/block_vector.cc @@ -22,12 +22,10 @@ DEAL_II_NAMESPACE_OPEN // 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::BlockVector (const BlockVector &); template BlockVector::BlockVector (const BlockVector &); template BlockVector >::BlockVector (const BlockVector > &); template BlockVector >::BlockVector (const BlockVector > &); -#endif DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/la_parallel_block_vector.cc b/source/lac/la_parallel_block_vector.cc index f7be61300e..56fc41983d 100644 --- a/source/lac/la_parallel_block_vector.cc +++ b/source/lac/la_parallel_block_vector.cc @@ -37,12 +37,9 @@ namespace LinearAlgebra #define TEMPL_COPY_CONSTRUCTOR(S1,S2) \ template BlockVector& BlockVector::operator= (const BlockVector &) -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG TEMPL_COPY_CONSTRUCTOR(double,float); TEMPL_COPY_CONSTRUCTOR(float,double); -#endif - #undef TEMPL_COPY_CONSTRUCTOR } } diff --git a/source/lac/la_parallel_vector.cc b/source/lac/la_parallel_vector.cc index e347761296..83363bb91a 100644 --- a/source/lac/la_parallel_vector.cc +++ b/source/lac/la_parallel_vector.cc @@ -32,16 +32,12 @@ namespace LinearAlgebra #define TEMPL_COPY_CONSTRUCTOR(S1,S2) \ template Vector& Vector::operator= (const Vector &) -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG TEMPL_COPY_CONSTRUCTOR(double,float); TEMPL_COPY_CONSTRUCTOR(float,double); - TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); -#endif - #undef TEMPL_COPY_CONSTRUCTOR } } diff --git a/source/lac/la_vector.cc b/source/lac/la_vector.cc index ed8c1aa5e9..efa36fb44d 100644 --- a/source/lac/la_vector.cc +++ b/source/lac/la_vector.cc @@ -33,16 +33,12 @@ namespace LinearAlgebra #define TEMPL_COPY_CONSTRUCTOR(S1,S2) \ template Vector& Vector::operator= (const Vector &) -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG TEMPL_COPY_CONSTRUCTOR(double,float); TEMPL_COPY_CONSTRUCTOR(float,double); - TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); -#endif - #undef TEMPL_COPY_CONSTRUCTOR } diff --git a/source/lac/read_write_vector.cc b/source/lac/read_write_vector.cc index f6b999b2e2..4c71501764 100644 --- a/source/lac/read_write_vector.cc +++ b/source/lac/read_write_vector.cc @@ -30,16 +30,12 @@ namespace LinearAlgebra #define TEMPL_COPY_CONSTRUCTOR(S1,S2) \ template ReadWriteVector& ReadWriteVector::operator= (const ReadWriteVector &) -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG TEMPL_COPY_CONSTRUCTOR(double,float); TEMPL_COPY_CONSTRUCTOR(float,double); - TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); -#endif - #undef TEMPL_COPY_CONSTRUCTOR } diff --git a/source/lac/vector.cc b/source/lac/vector.cc index 9cce1170c3..5e04c9ac6a 100644 --- a/source/lac/vector.cc +++ b/source/lac/vector.cc @@ -39,16 +39,12 @@ template long double Vector::operator *(const Vector::Vector (const Vector &); \ template Vector& Vector::operator= (const Vector &) -#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG TEMPL_COPY_CONSTRUCTOR(double,float); TEMPL_COPY_CONSTRUCTOR(float,double); - TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); TEMPL_COPY_CONSTRUCTOR(std::complex,std::complex); -#endif - #undef TEMPL_COPY_CONSTRUCTOR -- 2.39.5