I think FunctionEx() is a better way to evolve an interface than setting different structure tags for the same old function.
Short answer: when functions have templated overloads, giving them a unique mangled name that persists across recompiles requires serializing the contents of any decltype the template uses. It’s an unforeseen flaw of language design.
-
-
Is it because the decltype cannot always be fully "resolved" when the function declaration is being compiled? Or is there generally no simpler canonical representation of the type at all?
-
These types are fully instantiated, so they do have a canonical representation. However the spec demands that overloads in separate translation units can coexist if their decltype expressions differ, even if their canonical types are the same. (Obviously madness!)
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.