digitalmars.D.learn - How to deprecate member function from outside?
- Dru (21/21) Dec 22 2018 Hi,
- Neia Neutuladh (9/19) Dec 22 2018 You're defining two functions, presumably in two different modules and
- Dru (8/8) Dec 22 2018 Thanks for the reply
- Neia Neutuladh (4/8) Dec 22 2018 No, it doesn't. You declared two *different* functions. One was
- Dru (2/2) Dec 22 2018 You're right it did define two functions
Hi, I would like to use "deprecated" on a member function, but do it from a separate file this works: /// void func() {} deprecated { void func(); } //// this doesn't work: //// class C{ void func() {} } deprecated { void C.func(); } //// I get: Error: semicolon expected, not . Thanks
Dec 22 2018
On Sat, 22 Dec 2018 18:55:47 +0000, Dru wrote:I would like to use "deprecated" on a member function, but do it from a separate file this works: /// void func() {} deprecated { void func(); }You're defining two functions, presumably in two different modules and with two different fully qualified names. One function is deprecated but has no body, so you will get a deprecation warning and a linker error if you try using it. One function is not deprecated and has a body, so you'll get no errors if you try using it. If, on the other hand, you define both the non-deprecated and deprecated functions in the same file, and you try using them, you'll get an error saying that the function call matches multiple functions.
Dec 22 2018
Thanks for the reply I will try to explain what I mean: The first example shows that it is possible to deprecate a function separately from it's definition. The second example tries the same for a member function but it fails with a compile error. I want to know if it is possible to "fix" the second example? (deprecate a member function separately from it's definition)
Dec 22 2018
On Sat, 22 Dec 2018 21:33:14 +0000, Dru wrote:The first example shows that it is possible to deprecate a function separately from it's definition.No, it doesn't. You declared two *different* functions. One was deprecated; the other wasn't.I want to know if it is possible to "fix" the second example? (deprecate a member function separately from it's definition)No. All functions must be deprecated where you declare them.
Dec 22 2018
You're right it did define two functions same signature and no compile error, heh
Dec 22 2018