All streams
Search
Write a publication
Pull to refresh
4
0.2

C++ разработчик

Send message

Нет, функция класса описывалась бы как std::class_name::size, как, например, здесь: https://en.cppreference.com/w/cpp/container/vector/size

std::size это именно свободная функция, которая, в том числе, умеет принимать обычные массивы.

вот если в регистрах, то есть разница.

А с точки зрения языка разницы нет. Компилятор может поместить переменную на стеке, а может сразу в регистре, а может вообще нигде не размещать, а полностью соптимизировать. Указать напрямую вы ему не можете, и от того, используются ли классы, это опять же не зависит.

тогда преимущество конкретной библиотеки будет в том, что ее сделали эти боги

Скорее в том, что это сделали один раз для всех, и программист, который хочет просто сделать фильтрацию изображения окном 3x3, может не вникать в микрооптимизации.

Я говорил именно о скорости исполнения (скорость и удобство написания кода само собой разумеются). Там небольшие матрицы на стеке размещаются. И все операции по возможности через simd инструкции оптимизируются. Использование классов и размещение объектов в куче это вообще ортогональные вещи.

В моей практике для таких задач применялись библиотеки типа Eigen, которые несмотря на использование классов и прочих преимуществ (современных) плюсов, скорее всего будут быстрее чем код, написанный "классическим подходом, без библиотек".

std::size тоже не класс, а функция.

fairphone это вообще что-то другое

Почему? У них как раз легко заменяются отдельные комплектующие (иногда даже с возможностью апгрейда) и доступны альтернативные ОС. Вроде бы ровно то, что вы спрашивали.

Fairphone, Librem 5, Pinephone. Всё нишевые продукты, интересные лишь кучке энтузиастов, но тем не менее живые. А массовому пользователю это не интересно.

первые версии GCC в 90-х годах вообще "Ханойские башни" на девелоперской машине запускали, когда обнаруживали в коде UB

Побуду занудой: там было unspecified behaviour, то есть определяемое платформой, а не стандартом. А конкретно обработка директивы #pragma. UB (undefined behaviour) за исключением очевидных частных случаев вроде int a = *(int*)NULL; вот так вот просто детектировать при компиляции нельзя (было бы иначе - это поведение бы уже давно стандартизировали как ошибку компиляции).

Добавлю свой опыт.

SSD от Samsung на 512Гб - 5 лет работы системным диском в домашнем ПК, до этого 7 или 8 лет стоял 64Гб от OCZ, заменён был исключительно потому что объёма и скорости перестало хватать. Год назад добавился 4Тб SSD от WD.

microSD карточка на 256Гб (кажется Kingston) - 3 года. Основному смартфону 1.5 года, несколько предыдущих тоже продолжают работать, только у большинства сильно деградировала батарейка.

Заменять SSD, SD или смартфон из-за отказа флеш-памяти не приходилось ни разу.

Это хорошее объяснение отсутствия существенного спада миграции, но не резкого роста. Если правда сейчас переезжает втрое больше людей, чем в прошлом году, должно было, как сказали, что-то случиться.

В моём представлении, "несколько" означает 3-9, а про 2-4 я бы скорее сказал "в паре метров". В любом случае, это додумка редактора, в источнике говорят только про две комнаты.

SP500 за последний год почти на 30% вырос, а в среднем за 5 лет давал 13%. А низкорисковый фонд это, например, Fidelity, который даёт как раз около 5%, но ведёт себя гораздо более стабильно.

P.S. Цифры, правда, в чистых долларах, без учёта инфляции.

концепты, SFINAE

Чисто из интереса, зачем вам нужен SFINAE, если вам доступны концепты? Есть какие-то сценарии, которые концептами не покрываются?

Для того, что вы описываете, в стандарте есть отдельное понятие - unspecified behaviour (да, тоже UB, но обычно когда пишут UB, подразумевают undefined behaviour). Наличие в коде unspecified behaviour означает потенциальные проблемы с переносимостью, но просто от обновления компилятора или изменения никак не связанного участка кода ничего не сломается.

А undefined behaviour это именно "программа, допускающая такое поведение, некорректна". Я слышал, что изначально при стандартизации комитет просто не захотел принимать никаких решений о том, какое поведение должно быть в этих ситуациях, а потом компиляторы научились делать крутые агрессивные оптимизации, исходя из того, что UB не может происходить, и в результате наличие в стандарте UB стало принципиальной позицией.

Так вам получается и shared_ptr не подходит, он тоже не проверяет сам, лежит ли в нём nullptr. Вообще, все стандартные контейнеры ориентированы не только на безопасность, но и на возможность извлечь максимальную производительность, причём в случае конфликта обычно отдавая предпочтение последнему.

А если вам не нужна производительность, то зачем вы пишете на плюсах?

Тоже пересмотрел этот момент, включения движков не было. Я говорю о T+41, там человек говорит, что провели пробное включение и похоже, что оно успешно, но точные данные будут после полёта.

Рапторы и не должны были для сведения с орбиты использоваться. Должно было быть короткое пробное включение, которое слегка повысило бы орбиту. Как я понял, в момент тестирования Старшип не был на связи, получилось или нет я не понял.

P.S. А может дело не в связи, а просто в последний момент отменили попытку, я не расслышал.

Предполагаю, что не доходы больше, а расходы меньше.
а. Механизм геоблокировки у них мог или уже быть, или его было легко организовать
б. О мелкой компании вряд ли будут писать в газетах, что, мол, они такие плохие, прогибаются под диктатуру. А если вдруг будут, то это может даже им в плюс сыграть, просто потому, что многие впервые о них услышат.

Но PUBG не рекурсивный акроним, а обычный...

Information

Rating
2,526-th
Location
Кипр
Date of birth
Registered
Activity