GCC игнорирует атрибут соглашения о вызовах
Кто-нибудь знает, почему это не работает?
void test() [[stdcall]] {
std::cout << "Hello World" << std::endl;
}
когда я пытаюсь скомпилировать диалект C++11, он говорит:
msgstr "предупреждение: директива атрибута 'stdcall' игнорируется [-Wattributes]"
Это почему? У меня есть функция, которая действительно должна иметь соглашение о вызовах stdcall. Соглашение о вызовах по умолчанию в GCC - cdecl. Какие-либо предложения?
1 ответ
Решение
Следующее должно работать:
#include <iostream>
[[gnu::stdcall]]
void test()
{
std::cout << "Hello World" << std::endl;
}
or you can use the old syntax __attribute__((stdcall))
, Компилирование с g++ -std=c++11 -m32
I get no warning.