]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move preprocessor check and add comments 7279/head
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Sat, 16 Jun 2018 21:02:29 +0000 (23:02 +0200)
committerDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Fri, 5 Oct 2018 23:32:39 +0000 (01:32 +0200)
include/deal.II/fe/fe_system.h

index 2cc5bc2d77ad9b3baa179b2bcb38ff5e25eef5fd..2fe9ea45d42d3ed2989156ef5c3b3949160dccfc 100644 (file)
@@ -423,6 +423,7 @@ public:
   FESystem (const std::vector<const FiniteElement<dim,spacedim>*> &fes,
             const std::vector<unsigned int>                   &multiplicities);
 
+#if !defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1900
   /**
    * Constructor taking an arbitrary number of parameters of type
    * <code>std::pair<std::unique_ptr<FiniteElement<dim, spacedim>>, unsigned int></code>.
@@ -461,10 +462,10 @@ public:
    * would have expected).
    *
    * @warning This feature is not available for Intel compilers
-   * prior to version 19.0
+   * prior to version 19.0. Defining this
+   * constructor leads to internal compiler errors for Intel compilers prior
+   * to 18.0.
    */
-  FESystem (FEPairs &&... fe_pairs);
-#  if !defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1900
   template <
     class... FEPairs,
     typename = typename enable_if_all<
@@ -484,12 +485,14 @@ public:
    * @endcode
    *
    * @warning This feature is not available for Intel compilers
-   * prior to version 19.0
+   * prior to version 19.0. The constructor is just not selected for overload
+   * resolution.
    */
   FESystem(
     const std::initializer_list<
     std::pair<std::unique_ptr<FiniteElement<dim, spacedim>>, unsigned int>>
     &fe_systems);
+#endif
 
   /**
    * Copy constructor. This constructor is deleted, i.e., copying
@@ -1216,7 +1219,7 @@ namespace
 
 
 
-#    if !defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1900
+#if !defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1900
 // We are just forwarding/delegating to the constructor taking a
 // std::initializer_list. If we decide to remove the deprecated constructors, we
 // might just use the variadic constructor with a suitable static_assert instead
@@ -1260,7 +1263,7 @@ FESystem<dim,spacedim>::FESystem
 
   initialize(fes, multiplicities);
 }
-#    endif
+#endif
 
 #endif //DOXYGEN
 

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.