[Dune-devel] [Dune-Commit] [branch] dune-istl - 'master' updated

Christian Engwer christian.engwer at uni-muenster.de
Mon Aug 17 14:07:07 CEST 2015


Hi Oli,

I remember that we had some similar issues with type-tree.
There seem to be at least three different pitfalls, depending on the
compiler...

a) template specializations with
   template<typename... Args> foo(const Bar<Args...> & b)
   does not work.
   Solution: write out the first (required) argument
   template<typename A1, typename... Args> foo(const Bar<A1,Args...> & b)
b) multiple argument packs don't work
   template<typename... Args1, typename... Args2> foo(const	Bar<Args1...> & b, const Peng<Args2...> & p)
   Solution: specify them at different levels
b) return values of "static constexpr" methods, called on an object,
   can not be used as template parameters.
   Solution: caling the methods on the class allow the compiler to
   recognise the values as compile-time values.

Ciao
Christian

PS: thanks for initiating this istl cleanup :-)

On Mon, Aug 17, 2015 at 06:27:07AM +0200, Oliver Sander wrote:
> Hi Christian,
> 
> thank for cleaning up after me.  Yes, all the code (well, all code tested by the tests)
> did work for me (with gcc 4.9.3 from Debian testing).  In particular, the specialization
> with two separate argument packs worked; I was a bit surprised that it did myself.
> Also, calling static methods with an object worked.
> 
> Best,
> Oliver
> 
> Am 16.08.2015 um 22:59 schrieb Christian Engwer:
> > I encountered many problems with the recent changes to dune-istl. Did
> > this code work for you? I'm unsure, whether these a clang related
> > problems. At least some of the constructs seem to me to be invalid
> > C++11. This code now works for me with clang. If someone encounters
> > problems with my changes on his platform, please let me know with
> > sufficient details.
> > 
> > On Sun, Aug 16, 2015 at 10:56:30PM +0200, Christian Engwer wrote:
> >> Christian Engwer <christi at dune-project.org> updated branch 'master' (a8e496e -> c43f8c7)
> >> at Sun Aug 16 22:56:30 2015 +0200
> >>
> >> Browsable log: http://cgit.dune-project.org/repositories/dune-istl/log/?h=master&qt=range&q=a8e496edabd817ae25bb0af1335100efddd3a49c..c43f8c76f9cff56f8063267a7a9d1dd0e7bed9bd
> >> Complete diff: http://cgit.dune-project.org/repositories/dune-istl/diff/?id=c43f8c76f9cff56f8063267a7a9d1dd0e7bed9bd&id2=a8e496edabd817ae25bb0af1335100efddd3a49c
> >>
> >> ======================================================================
> >>
> >> via      7b1641f http://cgit.dune-project.org/repositories/dune-istl/commit/?id=7b1641f9108ea914f348acc812ec6992800a12e8
> >>              [istl][multitype] fix argument deduction for clang
> >> via      af33d9f http://cgit.dune-project.org/repositories/dune-istl/commit/?id=af33d9f0cfc982ed8b5547930b51b50f211e7f9f
> >>              [istl][multitype] we don't rely on boost::fusion anymore
> >> via      d9bf558 http://cgit.dune-project.org/repositories/dune-istl/commit/?id=d9bf558379313815c408f887676852cd78b3347e
> >>              [istl][multitype] add missing includes
> >> via      27dba71 http://cgit.dune-project.org/repositories/dune-istl/commit/?id=27dba71319709719913ac715d6670d32ef401b6c
> >>              fixup boost fusion
> >> via      35a0284 http://cgit.dune-project.org/repositories/dune-istl/commit/?id=35a02846c8574db966a7f00aea8046502efdbeb8
> >>              [istl][multitype] static_assert works only if we have constexpr
> >> via      d0069aa http://cgit.dune-project.org/repositories/dune-istl/commit/?id=d0069aa66b802d1e81c274544a8d401875ca8868
> >>              [istl][multitype] constexpr only works if we can the method on the type and not on the
> >>              object
> >> via      c43f8c7 http://cgit.dune-project.org/repositories/dune-istl/commit/?id=c43f8c76f9cff56f8063267a7a9d1dd0e7bed9bd
> >>              [istl][multitype] fix solvers for MultiType*
> >>
> >> _______________________________________________
> >> Dune-Commit mailing list
> >> Dune-Commit at dune-project.org
> >> http://lists.dune-project.org/mailman/listinfo/dune-commit
> >>
> > 
> > _______________________________________________
> > Dune-devel mailing list
> > Dune-devel at dune-project.org
> > http://lists.dune-project.org/mailman/listinfo/dune-devel
> > 
> 
> 



> _______________________________________________
> Dune-devel mailing list
> Dune-devel at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-devel


-- 
Prof. Dr. Christian Engwer 
Institut für Numerische und Angewandte Mathematik
Fachbereich Mathematik und Informatik der Universität Münster
Einsteinstrasse 62
48149 Münster

E-Mail	christian.engwer at uni-muenster.de
Telefon	+49 251 83-35067
FAX		+49 251 83-32729




More information about the Dune-devel mailing list