/* This template works around incompatible iconv protoypes */ template<typename _T> inline size_t iconv_adaptor(size_t(*iconv_func)(iconv_t, _T, size_t *, char**, size_t*), iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) { return iconv_func (cd, (_T)inbuf, inbytesleft, outbuf, outbytesleft); }
inline size_t local_iconv_adaptor (size_t (*iconv_func)(iconv_t, T, size_t *, char**,size_t*), iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) { return iconv_func (cd, (T)inbuf, inbytesleft, outbuf, outbytesleft); }