Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::mem;
- type GenFnPtr<T> = fn(T);
- struct Test<T, F: Fn(T)> {
- f: F,
- v: T,
- }
- fn f(_: i32) {}
- //Ссылка на трейт-объект, ссылка на функцию и конкретная функция
- fn main() {
- //Ссылка на трейт-объект
- let pto = &f as &Fn(_);
- let t1 = Test{f: pto, v: 0};
- println!("Sizeof t1 {}", mem::size_of_val(&t1));
- //Ссылка на функцию
- let t2 = Test{f: f as GenFnPtr<_>, v: 0};
- println!("Sizeof t2 {}", mem::size_of_val(&t2));
- //Конкретная функция
- let t3 = Test{f: f, v:0};
- println!("Sizeof t3 {}", mem::size_of_val(&t3));
- }
Advertisement
Add Comment
Please, Sign In to add comment