#include <iostream>
using namespace std;


#define PARAM_A_VAL_0 0
#define PARAM_A_VAL_1 1
bool external_function_param_a(int param_a) {
	cout << param_a << endl;
}
struct wrapper
{
    class PARAM_A {
    	int val;
    	PARAM_A(int val) : val(val) {}
    	friend class ::wrapper;
    public:
    	static const PARAM_A VAL_0;
    	static const PARAM_A VAL_1;
    };
    bool SetParamA(wrapper::PARAM_A a);
};


const wrapper::PARAM_A wrapper::PARAM_A::VAL_0 = wrapper::PARAM_A(PARAM_A_VAL_0);
const wrapper::PARAM_A wrapper::PARAM_A::VAL_1 = wrapper::PARAM_A(PARAM_A_VAL_1);

bool wrapper::SetParamA(wrapper::PARAM_A a)
{
     return external_function_param_a(a.val);
}

int main() {
    wrapper w;
    w.SetParamA(wrapper::PARAM_A::VAL_0);
    w.SetParamA(wrapper::PARAM_A::VAL_1);
    return 0;
}