DOMANDA Argument-dependent lookup C++

Pubblicità

Gerico0889

Utente Attivo
Messaggi
74
Reazioni
5
Punteggio
28
Salve ragazzi, sto studiando questa regola e ho fatto questo programmino. Mi fa un errore ma non capisco il perché, dovrebbe essere tutto corretto.

Ho creato tre file {main.cpp, adl1.cpp, adl1.h} che hanno rispettivamente questo codice:

Main.cpp:
Codice:
#include "adl1.h"

int main()
{
    char b = 'a';
    Pippo::foo(b);
    return 0;
}

adl1.cpp
Codice:
#include "adl1.h"

namespace Pippo{
void foo(char c)
    {
        std::cout << "Hello balbal\n";
    }
}

adl1.h
Codice:
#ifndef ADL1_H_INCLUDED
#define ADL1_H_INCLUDED
#include <iostream>

namespace Pippo{
    struct A{};
    void foo(char c);
}

#endif // ADL1_H_INCLUDED

Ora, l'errore che mi da è questo: "undefined reference to `Pippo::foo(char)'|"
Non capisco perché non è in grado di trovare la definizione della funzione nel namespace Pippo. C'è qualcosa che sbaglio?

EDIT: Ho dimenticato a scrivere che se faccio la stessa cosa ma al parametro della funzione do il tipo A (che è quello della struct) tutto funziona perfettamente.
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top