On 30/01/16 6:17 PM, Matt Elkins wrote:
Is there any way to specify that a generic function is conditionally
nothrow (or other function decorators), based on whether the template
instantiation is nothrow? I'm looking for something akin to C++'s
noexcept(noexcept(<expr>)), e.g.:
template <class T> void foo() noexcept(noexcept(T())) {}
I don't see anything about it on the functions grammar page
(https://dlang.org/spec/function.html). I do see something to do with
nothrow_ on the std.traits page, but I'm not sure how to use it to
achieve this or whether that is the right approach.
My actual use case is a non-generic method opAssign inside of a generic
struct.
templated functions have attribute inference. Meaning if it can be
nothrow it will be.
Regarding your real use case, again struct if templated so it should be
inferred.