On Wednesday, October 21, 2015 02:05 PM, Shriramana Sharma wrote: > When I've imported std.math which contains round(real), why is the > compiler complaining about not being able to call the overload function > defined in *this* module?
The functions don't form an overload set. You need to bring them together explicitly using `alias`: ---- import std.math; alias round = std.math.round; real round(real val, int prec) {...} ---- This is so to avoid function hijacking. See <http://dlang.org/hijack.html>. > I don't see anything in http://dlang.org/module.html that says I cannot > define an overload of an imported function. Did I miss something? That page doesn't seem to mention overloads at all. <http://dlang.org/function.html#overload-sets> covers overload sets from different imports, but it doesn't mention this specific case where there is a local overload set, too.