https://issues.dlang.org/show_bug.cgi?id=18267
Mike Franklin <slavo5...@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |slavo5...@yahoo.com --- Comment #4 from Mike Franklin <slavo5...@yahoo.com> --- Attributing `opEquals` with `nothrow` resolves the linker error: struct S { P payload; alias payload this; } struct P { auto opEquals(T)(T other) const nothrow //*** Needs nothrow ***/ { static assert(is(typeof(performOp!(S[], T)))); return const(S[]).init == other; } } bool performOp(T, A)(T value, A arg) { return value == arg; } --