//other file
#include <iostream>
using namespace std;
struct A{
    void operator()(){cout << "A() called" << endl;}
};

void fun(A a){
	a();
}

//original file
#include <iostream>
using namespace std;

struct A;

void fun(A a);

struct A{
    void operator()(){cout << "A() called" << endl;}
};

int main(){
    fun(A());
    return 0;
}

