Orphan rule

static_polymorphism
Bradlee Speice 2020-08-29 21:19:49 -04:00
parent e24cc4c7a5
commit 3709bcd0fd
1 changed files with 5 additions and 2 deletions

View File

@ -266,13 +266,16 @@ auto some_func(MyConcept auto value) -> void {
}
void some_func(LocalImpl value) {
// NOTE: This is actually a recursive call because `LocalImpl` is more specific than `auto`,
// so will overflow the stack.
// NOTE: Because `LocalImpl` is more specific than `auto`, this is a recursive call and
// will overflow the stack.
// We use `some_func_` above to uniquely name the function we actually want to call.
some_func(value);
}
```
Potentially worth mentioning orphan rule in Rust as limit to extension methods - can't implement
remote traits for remote types.
# Checking a type fulfills the concept
With concepts, you find out that there's an issue only when you attempt to use it. Traits in Rust