При компиляции моего проекта, смешивая C
и C++
, я получаю эту ошибку (это при компиляции файла C ++):
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h:
In function ‘int std::__convert_from_v(__locale_struct* const&, char*, int, const char*, ...)’:
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h:70:3:
sorry, unimplemented:
function ‘int std::__convert_from_v(__locale_struct* const&, char*, int, const char*, ...)’
can never be inlined because it uses variable argument lists
И компиляция заканчивается.
Но когда я вручную редактирую файл
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h
и удалите модификатор inline
перед __convert_from_v
it WORKS .
Заголовок функции, вызывающий проблемы, связан с inline
первоначально:
inline int
__convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
char* __out,
const int __size __attribute__ ((__unused__)),
const char* __fmt, ...)
Я полагаю, что такая функция НЕ ДОЛЖНА быть помечена как inline
. Это ошибка или я что-то не так делаю ??? [gcc 4.6.1, Ubuntu 11.10]