[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