DOMANDA Argument-dependent lookup C++

Gerico0889

Utente Attivo
74
5
CPU
Intel Core i7 2600k
Scheda Madre
ASUS P8P67 LE
HDD
Samsung 850 EVO 250GB, Seagate Barracuda ST3000DM001
RAM
Corsair Vengeance 8GB CL8
GPU
Gygabite GTX 970 G1 Gaming
Audio
Asus Xonar DX, Xonar U3
Monitor
Eizo Foris FS2333-BK + Samsung P2270HD
PSU
Cooler Master GX 750W
Case
Aerocool Sixth Element White
OS
Windows 8.1 x64
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:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!