
on 17.08.2009 at 20:58 joel wrote :
matrix<double> m(3, 3); //dynamically allocated matrix<double, 3, 3> static_m; //statically allocated I was speaking of the expression class. for expression classes only shapes to be concerned: rectangular, symmetric, upper- and lower-triangular what i forgot?
I also advice you to not multiply tempalte parameters like that as it quickly becomes hard to maintain. example?
again, my point is: since you need to implement policies themselves somewhere and their relationship and behavor (possibly by specializing some templates) why not to do that by defining distinct types with proper interfaces? Because you'll need a combinatorial number of such thing. but every unique entity can provide perfectly reasonable interface for just that entity e.g. a sparse matrix can provide non_zero_count() which will return the actual number of stored values furhtermore similar entities may (and must) be factored so there will be no code duplication
it's a very simple, Yes stable, Yes scalable No arguments? easily maintainable design No arguments? and more: it is easier to understand for users Not more than my solution. example?
-- Pavel