0
在努力保持一個圖書館中,我一直在很普通,我發現我自己寫這個龐大的代碼只是構建一個結構:防鏽:巨大的通用構造,嵌套的特質
pub struct SampleRenderer<Camera_T, Sampler_T, SurfaceIntegrator_T, Filter, Sample_Iter> {
camera : Camera_T,
sampler : Sampler_T,
surface_integrator : SurfaceIntegrator_T,
film : Film<Filter>,
}
impl<Camera_T, Sampler_T, SurfaceIntegrator_T, Filter, Sample_Iter> SampleRenderer
<Camera_T, Sampler_T, SurfaceIntegrator_T, Filter, Sample_Iter> {
pub fn new<Camera_T : Camera, Sampler_T : Sampler<Sample_Iter>, SurfaceIntegrator_T : SurfaceIntegrator, Filter, Sample_Iter>
(camera : Camera_T, sampler : Sampler_T, surface_integrator : SurfaceIntegrator_T, film : Film<Filter>)
-> SampleRenderer<Camera_T, Sampler_T, SurfaceIntegrator_T, Filter, Sample_Iter> {
SampleRenderer {
camera : camera,
sampler : sampler,
surface_integrator : surface_integrator,
film : film
}
}
}
這枚作品,與之合作並且非常重複是一種痛苦。每個輸入都有一個與之相關的特徵,其中一些特徵也是模板化的(採樣器)。
有沒有人有更清晰的方式來表達這一點?我在看問題全是錯的嗎?
謝謝!
+1以縮寫「impl」中的類型參數名(它們不必與名稱結構聲明相匹配),例如, 'impl ...'。 –
huon