Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (6)

Лучшие ответы пользователя

Все ответы (5)
  • А return 0(1) * _getch(), есть ли смысл от такой конструкции?

    @Furax
    Похоже на неуклюжую попытку игнорировать результат вызова функции _getch() и не словить предупреждений.

    Синтаксис "0(1)" специфичен для Visual Studio. Clang 18.1.3 и GCC 13.3.0 его не понимают. Писать на C++ так, чтобы при переносе на другую платформу приходилось править синтаксис, - довольно плохая практика (обычно находится и так достаточно проблем, чтобы их ещё руками плодить). С другой стороны, функция _getch() объявлена в conio.h, которого на том же линуксе нет, поэтому, возможно, переносимость и не была целью.

    Кстати, за более чем 15 лет на C++ вижу такой синтаксис впервые. Повод задуматься о том, насколько он будет понятен следующему разработчику.
    Ответ написан
    1 комментарий
  • Почему clang не видит стандартные библиотеки c++?

    @Furax
    Как-то сталкивался с подобным. Clang трепетно относится к указанию версии стандарта. Имеет смысл добавить аргумент `-std=c++20` (или какую версию планируете использовать). Более сложная ситуация может быть связана с отсутствующими в системе файлами или выбором нужной библиотеки C++, но для начала имеет смысл проверить очевидное.
    Ответ написан
    2 комментария
  • Почему у меня пропадает число, которое я подаю при инициализации класса?

    @Furax
    Здравствуйте. У вас множество логических ошибок, рекомендую запустить под отладчиком и идти по шагам, разбираясь, что идёт не так. Без этого такой код Вы, боюсь, не запустите. Первое место, где выполнение идёт не так - в функции int_len(), которая для вычисления количества цифр проверяет текущее значение на '>9', хотя оно изначально отрицательно. Скорее всего, сюда уже модуль числа должен приходить. Дальше тоже есть ошибки, которые нужно исправлять по одной.

    Ещё очень резануло глаз, что у Вас класс работает с динамической памятью, но не имеет копирующих/перемещающих конструкторов и операторов ++ (почитайте). В таком виде это нормально работать не будет - либо добавьте нужные конструкторы/операторы, либо не используйте вручную динамическую память (заверните в vector).
    Ответ написан
    Комментировать
  • Почему не работает оператор for each в C++?

    @Furax
    Тип элемента в первом range-based for (правильное название того, что Вы назвали for each) у Вас указан как int, тогда как фактически там int[2]. Компилятор не может неявно привести массив intов к intу, поэтому выдаёт ошибку. Используйте тип const auto&, чтобы не копировать подмассивы при каждом проходе. Также стоит убедиться, что Вы компилируете в нужной версии C++ (для g++ это аргумент, например, -std=c++20).
    Ответ написан
    Комментировать