占空间是只有instructions占空间,这各种function都是一样的。instance里当然不占空间 所有call的位址都可以被statically resolved何须在instance里占空间?又不是runtime polymorphism。D&E: What you don’t use, you don’t pay for.其实你可以把member function当一般free function加上隐含this参数,static member function就像一般free function,只不过一般free function要access非public data编译器不会给过,虽然还是可在runtime存取。
https://godbolt.org/z/xYMhqo314 用ToT clang玩一下,不开优化,三个Perimeter的code逻辑上都一样,call site也都会把this当第一个argument传入rdi。看你这么爱玩this应该对这有兴趣
https://youtu.be/caXxUi_lykshttps://wg21.link/p0847