Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] Problemi con g++

  1. #1

    [C++] Problemi con g++

    Salve, sto tentando di compilare un programma utilizzando G++ 4.4
    Quando compilo mi da il seguente warning:

    --> warning: friend declaration 'bool operator< (const pippo<pluto>& ,const pippo<pluto>&)' declare a non-template function

    Ovviamente nel' header prova.h ho dichiarato un template del genere:

    template <class pluto> class pippo{
    public:
    ...
    friend bool operator< (const pippo<pluto> &x , const pippo<pluto> &y);
    ...
    };

    Il compilatore stesso mi suggerisce di aggiungere <> dopo il nome della funzione 'operator<' ma facendo così passo da un warning al seguente errore:

    --> declaration of 'operator<' as non-function

    Se non ho letto male, qualcuno dichiara che con G++3.4.1 il tutto funziona.

    Sapreste gentilmente dirmi se esiste un modo, senza installare la versione più vecchia, per ovviare al problema?

    Grazie.
    William

  2. #2
    codice:
    /*
    $ g++ --version
    i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) (dot 1)
    $ g++ -Wall -ansi -pedantic -Wextra -Wconversion main.cpp 
    */
    
    #include <iostream>
    
    template <typename pluto> class pippo{
    	public:
    	template <typename U> friend bool operator < (const pippo<U> &x , const pippo<U> &y);
    };
    
    template <typename U> bool operator < (const pippo<U> &, const pippo<U> & ){
    	return true;
    }
    
    int main (void){
    	pippo <int> pippo1;
    	pippo <int> pippo2;
    	std::cout << (pippo1 < pippo2) << std::endl;
    	return 0;
    }

  3. #3
    Grazie mille!!!
    Ora compila.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.