#ifndef I18N_PHONENUMBERS_CALLBACK_H_
#define I18N_PHONENUMBERS_CALLBACK_H_
namespace i18n {
namespace phonenumbers {
template <typename R, typename A1, typename A2, typename A3, typename A4>
class ResultCallback4 { … };
template <typename R, typename A1, typename A2, typename A3, typename A4>
class FunctionCallback4 : public ResultCallback4<R, A1, A2, A3, A4> { … };
template <typename T, typename R, typename A1, typename A2, typename A3,
typename A4>
class ConstMethodCallback4 : public ResultCallback4<R, A1, A2, A3, A4> { … };
template <typename R, typename A1, typename A2, typename A3, typename A4>
ResultCallback4<R, A1, A2, A3, A4>* NewPermanentCallback(
R (*function)(A1, A2, A3, A4)) { … }
template <typename T, typename R, typename A1, typename A2, typename A3,
typename A4>
ResultCallback4<R, A1, A2, A3, A4>* NewPermanentCallback(
const T* instance,
R (T::*method)(A1, A2, A3, A4) const) { … }
}
}
#endif