Change the decltype order

This commit is contained in:
Bradlee Speice 2020-08-28 13:32:05 -04:00
parent 75fab4c80d
commit ee39f7bc43

View File

@ -22,6 +22,13 @@ Same name and parameter signature, but return different types - `AsRef`
`.as_iter()`, and the iterator `Item` type
# decltype and compiler-named types
Rust has some types named by the compiler, but inaccessible in traits; can't return `impl SomeTrait`
from traits. Can return `impl Future` from free functions and structs, but traits can't use
compiler-generated types (associated types still need to name the type). C++ doesn't appear to have
the same restrictions.
# Require static methods on a class?
Shouldn't be too hard - `T::some_method()` should be compilable.
@ -343,10 +350,3 @@ mostly please just use concepts.
Worth acknowledging that C++ can do interesting things with `protected`, `friend`, and others, that
Rust can't. However, Rust can limit trait implementations to current crate ("sealed traits"), where
C++ concepts are purely duck typing.
# decltype and compiler-named types
Rust has some types named by the compiler, but inaccessible in traits; can't return `impl SomeTrait`
from traits. Can return `impl Future` from free functions and structs, but traits can't use
compiler-generated types (associated types still need to name the type). C++ doesn't appear to have
the same restrictions.