статическая функция-член с привязкой языка 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 (и если нет, то как это не подразумевает это)?

Ответы на вопрос(3)

Ваш ответ на вопрос