Почему Linux Clang и macOS Clang расходятся во мнениях по поводу long long и int64_t?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Почему Linux Clang и macOS Clang расходятся во мнениях по поводу long long и int64_t?

Сообщение Anonymous »

У меня есть следующий код C++:

Код: Выделить всё

#include 
template  class MyClass;
template  class MyClass {};
int main() { MyClass obj; }
Используя Clang 16 на моем MacBook M1, это успешно компилируется. Но при использовании Clang 16 в Linux (x86 или ARM) не удается скомпилировать следующую ошибку:

Код: Выделить всё

foo.cpp:4:33: error: implicit instantiation of undefined template 'MyClass'
int main() { MyClass obj; }
^
foo.cpp:2:29: note: template is declared here
template  class MyClass;
^
1 error generated.
Я прочитал вопрос «long long int против long int против int64_t в C++», но в этой теме речь идет о сравнении разных компиляторов (GCC против MSVC), тогда как в данном случае это один и тот же компилятор (Clang 16) на той же архитектуре (64-битный ARM или 64-битный x86, как упоминалось выше), но просто разные операционные системы (Linux и Linux). macOS).
Почему macOS позволяет использовать long long для шаблона int64_t, а Linux — нет?

Подробнее здесь: https://stackoverflow.com/questions/791 ... nd-int64-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»