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

Steffen Müthing steffen.muething at iwr.uni-heidelberg.de
Mon Aug 17 14:54:43 CEST 2015


Hi Oliver,

> Am 17.08.2015 um 14:27 schrieb Oliver Sander <sander at igpm.rwth-aachen.de>:
> 
> Hi Christian,
> 
>> 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.
>> 
> 
> do you know what the standard says on these issues?  Should abc) work in a world
> with perfect compilers?

yes, all of those are allowed by the standard, there are just bugs in some compilers
(for example, a) is broken in the ICC frontend).

Steffen

> 
>> PS: thanks for initiating this istl cleanup :-)
> 
> Believe it or not, I actually need those MultiType classes. :-)
> 
> Best,
> Oliver
> 
>> 
>> 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
>> 
>> 
> 
> 
> _______________________________________________
> Dune-devel mailing list
> Dune-devel at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20150817/fb562532/attachment.sig>


More information about the Dune-devel mailing list