2021-08-27 11:04:57 -05:00
|
|
|
#![feature(generic_const_exprs)]
|
2021-01-29 21:45:18 -06:00
|
|
|
#![allow(incomplete_features, unused)]
|
|
|
|
|
|
|
|
const fn complex_maths(n : usize) -> usize {
|
|
|
|
2 * n + 1
|
|
|
|
}
|
|
|
|
|
|
|
|
pub struct Example<const N: usize> {
|
|
|
|
a: [f32; N],
|
|
|
|
b: [f32; complex_maths(N)],
|
|
|
|
//~^ ERROR unconstrained generic
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<const N: usize> Example<N> {
|
|
|
|
pub fn new() -> Self {
|
|
|
|
Self {
|
|
|
|
a: [0.; N],
|
|
|
|
b: [0.; complex_maths(N)],
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Example<2> {
|
|
|
|
pub fn sum(&self) -> f32 {
|
|
|
|
self.a.iter().sum::<f32>() + self.b.iter().sum::<f32>()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|