Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C++] Template

    Salve,
    sto lavorando su slax, una versione live di linux con dei file scritti in C++ e ho un problema con i template.
    Premetto che conosco bene il C, ma quasi niente di C++... e purtroppo sono costretto a lavorare con quest ultimo.

    C'è questo template:
    template <class _TYPE> MatrixUtil<_TYPE> operator+ (const MatrixUtil<_TYPE>& _m1, const MatrixUtil<_TYPE>& _m2){MatrixUtil<_TYPE> mout(_m1.getNRows(), _m1.getNCols());

    Nel seguito del codice un istruzione del genere "mout(lazox, lazoy) = _m1(lazox, lazoy) + _m2(lazox, lazoy);" non da problemi... invece "mout(lazoi, lazoj) = sum;" quando compilo mi da "There are no arguments to mout that depend on a template parameter so a declaration of mout must be available".

    So che non si capisce molto... ma non so cosa postare per spiegare meglio il problema...
    Qualcuno sa dirmi qual è il problema? Grazie

  2. #2
    lazox è dello stesso tipo di lazoi?
    lazoy è dello stesso tipo di lazoj?
    sum è dello stesso tipo di _m1 e _m2?

  3. #3
    template <class _TYPE> class MatrixUtil;

    lazox, lazoy, lazoi, lazoj sono int
    sum è un _TYPE
    _m1 _m2 sono definiti const MatrixUtil<_TYPE>& _m1, const MatrixUtil<_TYPE>& _m2

  4. #4
    QUindi è probabile che la funzione (o metodo o funtore) "mout (int, int)" restituisca un riferimento a
    "MatrixUtil<_TYPE>" a cui non puo' essere assegnato "sum" che invece è di tipo _TYPE.

    Ma senza un codice completo non è facile diagnosticare.

  5. #5
    Utente di HTML.it L'avatar di 810106
    Registrato dal
    Jun 2008
    Messaggi
    67

    mmm

    Azzardo con `mout(lazoi, lazoj) = MatrixUtil<sum>();'

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.