Size: a a a

2020 November 01

VF

Vlad Faust in pro.cxx
Хех мда. Неожиданно, что так из коробки нельзя
источник

NP

Nikita Provotorov in pro.cxx
Vlad Faust
Хех мда. Неожиданно, что так из коробки нельзя
да и так способов отстрелить себе ногу в плюсах достаточно, зачем ещё и raii ломать...
источник

АК

Александр Караев... in pro.cxx
Vlad Faust
Подскажите, пожалуйста, как ремувнуть объект с топа стэка без вызова его деструктора?

auto instance = std::move(_instances.top());
_instances.pop(); // Would call the destructor :(
return instance;
дикая семантика получается, чувствуется ошибка проектирования
источник

VF

Vlad Faust in pro.cxx
Понятно
источник

EE

Eugene Erokhin in pro.cxx
Ну современные бранч предикторы - это гибридные. Т.е. набор нескольких предикторов (которые могут выдавать разный предсказания - Бранч тейкен/нот тейкен), и верхний предиктор, который ведет таблицу, кто из них попадает чаще, и на основе этого делаются выбор на последующие предсказания.
Один из основных в этой пачке это как правило PHT (запоминание паттернов - ну например на этом бранче по истории повторяется паттерн 2 разе берется, 1 не берется и тп). Т.е. если мы делаем какой то хотябы как то предсказуемый по паттерну алогритм, у нас все шансы получить попадания. А тут уже зависит от конкретной модели процессора, сколько ресурсов под него выделено (т е какой сложности паттерны он может выявлять).
Но на саомом раннем этапе, когда он только прогревается (т е  инфы нет), обычно отрабатывают более простые предикторы, типа бранч нот тейкен. Или форвард нот тейкен - бекворд тейкен, т е если идет назад то скорее всего это луп и скорее всего его покрутят, а вперед врядли будет переход.
Так вот likely/unlikly нужны для этого разогрева (когда нет еще предистории). И по большому все сводится к тому чтобы правильно расположить базовые блоки - вероятные последовательно, маловероятные выкинуть подальше. У интеловцев были на сколько знаю толи префиксы толи инструкции для подсказок предикторам, но потом отказались, по понятным причинам.
источник

VS

Vlad Serebrennikov in pro.cxx
Vlad Faust
Хех мда. Неожиданно, что так из коробки нельзя
так-то можно, но только для node-based контейнеров и с 17 стандарта. метод называется extract
источник

VF

Vlad Faust in pro.cxx
Vlad Serebrennikov
так-то можно, но только для node-based контейнеров и с 17 стандарта. метод называется extract
Для стэка нет реализации =(
источник

VS

Vlad Serebrennikov in pro.cxx
Vlad Faust
Ну, у меня тут дженерик пул. Стэк и так в хипе, зачем мне и инстансы в хип совать
я бы сказал, что суть проблемы в том, что контейнеры STL спроектированы владеть своими объектами, а ваш объект, по всей видимости, некопируемый и неперемещаемый, по крайней мере с точки зрения операции, которая вам нужна

я ими сам не пользовался, но вам, кажется, могут подойти intrusive контейнеры
источник

VF

Vlad Faust in pro.cxx
Vlad Serebrennikov
я бы сказал, что суть проблемы в том, что контейнеры STL спроектированы владеть своими объектами, а ваш объект, по всей видимости, некопируемый и неперемещаемый, по крайней мере с точки зрения операции, которая вам нужна

я ими сам не пользовался, но вам, кажется, могут подойти intrusive контейнеры
Спасибо! Стэк тривиален, попробую сам реализовать его интрусивным =)
источник
2020 November 02

R

Ruslan in pro.cxx
Всем привет. Я новичок в этом деле, подскажите пожалуйста, в каком направлении идти.

У меня есть open source проект, который мне нужно скомпилировать на платформы armv7 и arm64 (получить статические библиотеки)

Этот проект можно собрать через CMake, для компиляции я использую Visual Studio 2019. Всё делаю с Windows 10 x64.
Вопрос: как скомпилировать проект для armv7 и arm64?
источник

R

Ruslan in pro.cxx
Когда я выбираю в CMake, в поле "Optional platform for generator" платформы ARM или ARM64, возникает ошибка:

error : The OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='ARM64'.  You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project.
источник

VS

Vlad Serebrennikov in pro.cxx
Ruslan
Когда я выбираю в CMake, в поле "Optional platform for generator" платформы ARM или ARM64, возникает ошибка:

error : The OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='ARM64'.  You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project.
источник

DC

Dmitriy C++ in pro.cxx
Ruslan
Всем привет. Я новичок в этом деле, подскажите пожалуйста, в каком направлении идти.

У меня есть open source проект, который мне нужно скомпилировать на платформы armv7 и arm64 (получить статические библиотеки)

Этот проект можно собрать через CMake, для компиляции я использую Visual Studio 2019. Всё делаю с Windows 10 x64.
Вопрос: как скомпилировать проект для armv7 и arm64?
нужен тулчейн, который умеет собирать для arm, если собираешь для Linux но напримую из VS это будет проблематично, если для android в vs есть отдельный тип проекта для этого
источник

R

Ruslan in pro.cxx
Dmitriy C++
нужен тулчейн, который умеет собирать для arm, если собираешь для Linux но напримую из VS это будет проблематично, если для android в vs есть отдельный тип проекта для этого
Я собираю для Android.

То есть, при компиляции проекта в Visual Studio, нужно где-то выбрать тип проекта, а именно Android?
источник

AS

Anatoly Shirokov in pro.cxx
спасибо!
источник

VS

Vlad Serebrennikov in pro.cxx
источник

АМ

Алексей Маринченко... in pro.cxx
Понял, спасибо
источник

II

Igor Ivanov in pro.cxx
у меня очень наркоманский и немного оффтопный вопрос, но вдруг у коллективного разума есть позитивный ответ на него)

можно ли пропатчить существующий виндовый экзешник, чтобы он считал будто собран с longPathAware в соответствии с докой MS о поддержке длинных путей, и пользовался свежими функциями из винапи, умеющими в пути длиной >260символов?
источник

II

Igor Ivanov in pro.cxx
конкретно интересует тулчейн из 2013й студии, у которого аллергия на пути к бусту из конана, в которых по 300+ символов
(и да, я знаю про конанский short_paths)
источник

DP

Denis Paukaev in pro.cxx
Igor Ivanov
у меня очень наркоманский и немного оффтопный вопрос, но вдруг у коллективного разума есть позитивный ответ на него)

можно ли пропатчить существующий виндовый экзешник, чтобы он считал будто собран с longPathAware в соответствии с докой MS о поддержке длинных путей, и пользовался свежими функциями из винапи, умеющими в пути длиной >260символов?
манифест должен в ресурсах exe валяться, можно открыть софтом и отредактировать
источник