enum ARG_TYPE {
INT_TYPE, STRING_TYPE
};

int A(ARG_TYPE argType, int intValue, string stringValue) {
switch(argType) {
case INT_TYPE:
// intの処理
break;
case STRING_TYPE:
// stringの処理
break;
default:
// error
assert(false);
}
};