Hello,
Ce qui suit est un bout de code épuré (de beaucoup de choses) concernant une librairie de calcul matriciel.
L'idée est de construire des expressions sous forme d'arbre, grâce à l'application d'une succession d'opérateurs et fonctions, puis de résoudre le calcul grâce à la conversion implicite.
Je pensais cela possible, j'ai quelques doutes face à certaines difficultés.
Ici, apparemment, ce qui m'embête est que le C++ n'accepte qu'une seule conversion implicite définie par l'utilisateur à la fois.
Le code qui suit instancie des matrices (mat), et je m'attendais à ce que ces mat soient converties implicitement en ExprMat, qui sont un type dérivé de Expr. Seulement, le compilateur cherche à convertir mat directement en Expr.
Des idées ?
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class mat; class Expr; class ExprMat : public Expr{ ExprMat(mat& x); } class ExprAdd : public Expr{ ExprAdd(Expr* left, Expr* right); operator mat(); } template<class L, class R> ExprAdd operator+(L& left, R& right){ return ExprAdd(&left, &right); } // stuff mat a,b; mat c = a+b;
Partager