On Sunday, November 04, 2012 16:48:26 monarch_dodra wrote: > I'm wondering if there is a way to know you are in deprecated > mode or not? > > The deprecated attribute is great, because it gives a clear > compile error (as opposed to a static if, which just hides the > function completely). > > But the attribute alone is not enough: I have a class with a > deprecated method, which consumes a book-keeping attribute: Not > only will this attribute exist even though it has become useless, > but the other functions will keep updating this attribute, even > though it has no more consumers. > > What's more, I'd still want to unittest that function, but > obviously, only when compiled in "-unittest -d".
Putting deprecated on the unittest block takes care of the unit testing problem. However, without a version(deprecated), I don't know how you'd deal with alternate versions of the same thing. Usually what happens in that case is that you create an entirely new type or function with a different name. Actually, if you use static if with __traits(compiles, blah) to check whether the deprecated bit compiles, then you could do it without version(deprecated), but it may be worth adding version(deprecated) just the same. - Jonathan M Davis
