Size: a a a

2020 December 29

CD

Constantine Drozdov in rust_offtopic
не умеешь - скажешь, что это неправильный абсурд
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
абсурд во-первых не может быть неправильным, а во-вторых его нельзя вызвать, потому он и абсурд
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
я не понимаю при чем тут абсурд
потому что foo(Foo, Bar) вызывается как foo(anything_from_di{}, anything_from_di{})
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
покажи пример на расте будет понятнее
источник

CD

Constantine Drozdov in rust_offtopic
Constantine Drozdov
потому что foo(Foo, Bar) вызывается как foo(anything_from_di{}, anything_from_di{})
дальше anything_from_di попросят преобразоваться соответственно в Foo и Bar
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
потому что foo(Foo, Bar) вызывается как foo(anything_from_di{}, anything_from_di{})
как ты узнаешь чыто foo нужно два аргумента в первую очередь?
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
как ты узнаешь чыто foo нужно два аргумента в первую очередь?
наименьшее число, с которым сработает, меня устраивает
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
напомню что в расте нет SFNIAE
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
вторая проблема в том что у тебя второй anything_from_di{} может зависеть от первого
источник

CD

Constantine Drozdov in rust_offtopic
?
источник

CD

Constantine Drozdov in rust_offtopic
а, понял
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
struct Foo;

struct Bar(Foo);

fn baz(f: Foo, b: Bar)
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и желательно Foo в таком случае только один сделать, а не два
источник

CD

Constantine Drozdov in rust_offtopic
да, понял
источник

CD

Constantine Drozdov in rust_offtopic
то есть надо все-таки аргументы целиком, тогда в плюсах это запихиванием адреса функции в трейт делается
источник

CD

Constantine Drozdov in rust_offtopic
трейт может сказать набор аргументов неперегруженной функции в виде кортежа
источник

CD

Constantine Drozdov in rust_offtopic
скажем, аналог rust-овского Fn
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
хотя есть вариант. Чтобы за аргументы отвечал диай, а не функция
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
тогда будет fn foo(args: ArgsFromDI)
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и register(my_di!(ArgsFromDi: Foo, Bar, Baz => foo))
источник