статическая функция-член с привязкой языка C?
Следующий код C ++ компилируется с Visual C ++ и g ++:
struct S
{
static void foo();
};
extern "C"
void S::foo() {}
struct T
{
static void foo();
};
extern "C"
void T::foo() {}
auto main() -> int
{
S().foo();
T().foo();
}
Это действительно?
Если это верно, поскольку реализация может быть в отдельном модуле перевода, означает ли это, что статическая функция-член всегда имеет то же соглашение о вызовах, что и функция C (и если нет, то как это не подразумевает это)?