]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Remove DEAL_II_EXPLICIT_CONSTRUCTOR_BUG. 4734/head
authorDavid Wells <wellsd2@rpi.edu>
Tue, 8 Aug 2017 21:18:17 +0000 (17:18 -0400)
committerDavid Wells <wellsd2@rpi.edu>
Tue, 8 Aug 2017 21:26:07 +0000 (17:26 -0400)
This workaround is no longer necessary in any compiler that we support.

Reverts 8cba8cc3f1.

13 files changed:
include/deal.II/base/config.h.in
include/deal.II/lac/block_vector.h
include/deal.II/lac/block_vector.templates.h
include/deal.II/lac/la_parallel_block_vector.h
include/deal.II/lac/la_parallel_block_vector.templates.h
include/deal.II/lac/vector.h
include/deal.II/lac/vector.templates.h
source/lac/block_vector.cc
source/lac/la_parallel_block_vector.cc
source/lac/la_parallel_vector.cc
source/lac/la_vector.cc
source/lac/read_write_vector.cc
source/lac/vector.cc

index a77d4adeaf08a7a90b345c40ce6d98037d70efb5..733fb6c4aa14362060ec13c4c71d4172468b2cd0 100644 (file)
@@ -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
index c071886c06dde81688ba8d1f3f6f255ec28cf3a1..8920b7afce9daa5911d0a61ba4a2c94398f66ba8 100644 (file)
@@ -114,8 +114,6 @@ public:
    */
   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
@@ -131,8 +129,6 @@ public:
   template <typename OtherNumber>
   explicit
   BlockVector (const BlockVector<OtherNumber> &v);
-#endif
-
 
 #ifdef DEAL_II_WITH_TRILINOS
   /**
index 3be23f0d31ee12365af0a27aa9f5fd6085fa855f..7b9c1cd5ea91e5f73dddd0653650a677b6d16529 100644 (file)
@@ -61,7 +61,6 @@ BlockVector<Number>::BlockVector (const BlockVector<Number> &v)
 }
 
 
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
 
 template <typename Number>
 template <typename OtherNumber>
@@ -71,7 +70,6 @@ BlockVector<Number>::BlockVector (const BlockVector<OtherNumber> &v)
   *this = v;
 }
 
-#endif
 
 
 #ifdef DEAL_II_WITH_TRILINOS
index a5959321882b7eb4a4fc164842c172310742c7a8..a9321d978a56ee94e290216acb4215678f70cd46 100644 (file)
@@ -129,8 +129,6 @@ namespace LinearAlgebra
        */
       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
@@ -146,7 +144,6 @@ namespace LinearAlgebra
       template <typename OtherNumber>
       explicit
       BlockVector (const BlockVector<OtherNumber> &v);
-#endif
 
       /**
        * Constructor. Set the number of blocks to <tt>block_sizes.size()</tt>
index bb7e08add4380231a93e8a47cada6e287a9056db..801528860de83219b998970c4d8adfb105c261aa 100644 (file)
@@ -93,7 +93,6 @@ namespace LinearAlgebra
     }
 
 
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
 
     template <typename Number>
     template <typename OtherNumber>
@@ -103,8 +102,6 @@ namespace LinearAlgebra
       *this = v;
     }
 
-#endif
-
 
 
     template <typename Number>
index d81bb464ef07a938d9e582830d4b2ff3bd9096b0..964ffe9d27136ee34819350d33d6a3cbcf29ae9e 100644 (file)
@@ -183,7 +183,6 @@ public:
    */
   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
@@ -199,7 +198,6 @@ public:
   template <typename OtherNumber>
   explicit
   Vector (const Vector<OtherNumber> &v);
-#endif
 
 #ifdef DEAL_II_WITH_PETSC
   /**
index 979b90afb107873e6b0cfaf315fe80fbfa35c4f5..b26885ed3910c1360219048b01484fd13aeb8a1c 100644 (file)
@@ -75,7 +75,6 @@ Vector<Number>::Vector (Vector<Number> &&v)
 
 
 
-#ifndef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
 template <typename Number>
 template <typename OtherNumber>
 Vector<Number>::Vector (const Vector<OtherNumber> &v)
@@ -91,7 +90,7 @@ Vector<Number>::Vector (const Vector<OtherNumber> &v)
       *this = v;
     }
 }
-#endif
+
 
 
 #ifdef DEAL_II_WITH_PETSC
index d1a440f7717776aa5ad4f0cf3a30f44997c0294b..1faeaba8ec96beb2c87bd90b1c246c20ec8a6306 100644 (file)
@@ -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<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
index f7be61300ee9c3dcdb58bd94951e30ec9634311b..56fc41983d80ea4e487cd4ce21aab4a795a545dd 100644 (file)
@@ -37,12 +37,9 @@ namespace LinearAlgebra
 #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
   }
 }
index e34776129644f325f616dff93ddff3f3cade48d5..83363bb91a92dee3055d1738379b1e5492e77707 100644 (file)
@@ -32,16 +32,12 @@ namespace LinearAlgebra
 #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
   }
 }
index ed8c1aa5e99cf72a0b404e2e537452d3ecc60800..efa36fb44d21515622d1b60da7d90f0196a7994e 100644 (file)
@@ -33,16 +33,12 @@ namespace LinearAlgebra
 #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
 }
 
index f6b999b2e2df93b37d056e34f82dfe7c67335513..4c71501764def9abe96e4ef018a768d0091ab49f 100644 (file)
@@ -30,16 +30,12 @@ namespace LinearAlgebra
 #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
 }
 
index 9cce1170c3ee2a59cad6c41d6b574e9d90cf423e..5e04c9ac6a9c4be75618f94565d65ecfbc2dc90c 100644 (file)
@@ -39,16 +39,12 @@ template long double Vector<long double>::operator *<long double>(const Vector<l
   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
 
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.