Перегрузка ссылочных и ценностных вызовов - PullRequest
1 голос
/ 15 июня 2019

У меня есть три функции с подписями, как показано ниже (слегка упрощенно ниже):

fn f<T>(f: impl Fn(&T), x : &impl ATrait<T>) {}
fn f<T>(f: impl Fn(&T), x : impl ATrait<T>) {}
fn f<T>(f: impl Fn(T), x : impl ATrait<T>) {}

Естественно, так как все они названы f, это не скомпилируется, но есть ли я в любом случае, я могудать им то же имя через traits + impls или другие методы, чтобы я мог сделать:

f(|&e| {}, &x);
f(|&e| {}, x);
f(|e| {}, x);

, и он выбирает правильную перегрузку на основе типа аргумента?

...