Suppose there is a code that uses external lib.
In the new version, one of the methods lost one of the overloads, but it was necessary that the code worked both there and there (with the old lib).
Yes, you can make a separate code for different versions of libraries, but is it possible to pervert with the preprocessor to replace all method calls ([some kind of variable]) with Method ([some kind of variable], 0)