#include <iostream>
using namespace std;

template<class T>
void affiche(const T t) {
    cout << t << endl;
}

class A {
    friend ostream &operator<<(ostream &,const A&);
public:
    A(int v) : v(v) {}
private:
    int v;
};
ostream &operator<<(ostream &out,const A &a){
    return (out << "A(" << a.v << ")");
}

int main() {
    A a(3);
    affiche(a);
    affiche(1);
    affiche("toto");
}

