Я строю проект статической библиотеки Xcode, где у меня есть класс, определенный как:
class New
{
public:
New() {
// Do something
};
static New fNew;
};
__attribute__((used)) New New::fNew;
Статический глобальный fNew не должен быть мертвым кодом, удаленным компоновщиком, так как он был принудительно объявлен как ((используется)). Но я не вижу, чтобы конструктор вызывался для New. Есть идеи, почему это происходит?
РЕДАКТИРОВАТЬ:
Ожидается, когда я добавлю фиктивную функцию, чтобы вернуть указатель на fNew
void* getDummyReference()
{
return (void*)&New::fNew;
}
и вызвать функцию из другого файла в том же проекте статической библиотеки, я больше не наблюдаю проблему, и конструктор вызывается, как и ожидалось.
Почему статический глобал будет лишен даже дань((используемый))?
Задача ещё не решена.