2
Было бы хорошо, если мы хотим использовать синтаксис метода и отключить оптимизацию интеллектуальных указателей.Почему передача `self` в качестве необработанного указателя не допускается?
fn foo(*const self) // this would not let smart pointer optimizations
* и отключить оптимизацию интеллектуальных указателей * - какие «оптимизации» вы думаете, '' self'' или '& mut self'? Кроме того, '& self' и' & mut self' не являются «умными указателями». Я мог видеть «ящик» ', называемый умным указателем, [но мало кто знает, что вы можете использовать его как' self'] (http://stackoverflow.com/q/25462935/155423). –
Shepmaster
Как я понимаю, ссылки генерируют флаг noalias, и этот флаг вызывает некоторые оптимизации. – ttarikbnr
только ссылки '& mut' генерируют' noalias' (и афаик даже отключен до дальнейшего уведомления из-за ошибок llvm). Не могли бы вы поделиться своим примером использования (пример кода, который показывает, почему '& self' не работает?) –