Вот некоторый встроенный код, вызывающий предупреждение при использовании G++ (GCC) версии 4.3.3. Я получаю эту проблему только в этой (4.3.3) более старой версии GCC на машине ARM. На машине x86 с GCC 4.5.2 этой проблемы не существует. К сожалению, в настоящее время я не могу обновить машину ARM, но мне интересно, следует ли мне беспокоиться о следующей ошибке...
// myclass.h
class MyClass {
public:
MyClass();
~MyClass() { Cleanup(); }
void Cleanup();
};
inline void MyClass::Cleanup() {
// do some minor cleanup here, GCC DOES inline this function
// with -Winline, I see that no non-inline warnings are thrown
}
Проблема в том, что я получаю предупреждение: "void MyClass::Cleanup() использовался до того, как он был объявлен встроенным"
Является ли это предупреждением, которым я должен остерегаться? Я всегда встраивал только в определение функции, по существу следуя этому (http://www.parashift.com/c++-faq/where-to-put-inline-keyword.html) "лучшая практика".
Заранее спасибо за помощь.
MyClass
членCleanup()
, вы можете использовать имя класса для разрешения встроенного.inline void MyClass::Cleanup()
имеет гораздо больше шансов стать тем, для кого вы, вероятно, стремитесь. - person WhozCraig   schedule 01.11.2013