Closed
Description
The following code does NOT compile:
#![feature(const_generics)]
struct Collatz<const N: Option<usize>>;
impl <const N: usize> Collatz<{Some(N)}> {
}
fn main() {
}
it errors with:
error[E0207]: the const parameter `N` is not constrained by the impl trait, self type, or predicates
--> src/main.rs:5:13
|
5 | impl <const N: usize> Collatz<{Some(N)}> {
| ^ unconstrained const parameter
However, when using normal generics in the places of the const generics, wrapping the T
in an Option
and sticking that into the Collatz
struct does work:
struct Collatz<T>([T; 0]);
impl <T> Collatz<Option<T>> {}
Is it intended that const generic dont mimmic this behaviour?