Berkus
ну арм вполне себе risc-овый )
Berkus
вопрос в практичности и удельной мощности
Berkus
у risc-v тоже четыре базовых спецификации и десяток расширений )
Evgenii
у risc-v тоже четыре базовых спецификации и десяток расширений )
ну там все таки универсальнее, типов команд меньше и тд
Berkus
/ban
Berkus
вот вот, говорил же эйчар без фотографии - подозрительно! а это бот
vladislav
мб она страшненькая
Deleted Account
Ппц бармалей. Взял какуюто викторию зобанил
Berkus
мб она страшненькая
боты все страшненькие, шестеренки и такое
Купи
Я б замутил с ботом
Ioann_
Здесь есть и эйчары :?0_о
Купи
А как им ещё искать людей
Купи
Прогресс
Square
Но собственно, смотрел готовые - многие сделаны на malloc
Посмотри на hoard, и, в частности, на инфраструктуру для него, очень круто, а самое главное там очень предметно подошли
Square
И там прикольно что аллокатор не один, есть вариант - diehard, который сглаживает шишки от наступания на грабли
Square
Ну конечно оно скажется на производительности, если мм следит за каждым пойнтером
Igor
пишу простенькую хреновину чтобы текст в консоль выводился с небольшими задержками, как на печатающей машинке struct wait { ... }; class TypeWriter { ... void Print(const char *str) const; void Print(const std::string &str) const; void Print(wait delay) const; template <typename T> void Print(T &&el) const { Print(std::to_string(el)); } public: template <typename T> TypeWriter& operator<<(T &&el) { Print(el); return *this; } }; ... std::string a{"tset"}; typewriter << "test" << wait{500ms} << 22 << a; на выходе error C2665: 'std::to_string': none of the 9 overloads could convert all the argument types: ... with [T=std::string &] ЧЯДНТ? перегрузки функций не являются более приоритетными чем шаблонная, придётся делать их через template<> Type(const string&)?
Berkus
добавь to_string(std::string)
Berkus
тривиальную
Igor
namespace std { string to_string(string &other) { return other; } ?)
Berkus
типа того
Олександр
Для чего здесь переопределять rvalue reference?
Олександр
Еще и шаблоном
Олександр
Очень странный код, как по мне
Олександр
Достаточно обычного reference
Berkus
а что с const объектами?
Олександр
Да, const reference
Олександр
ИМХО, еще лучше сделать эту перегрузку friend и определить вне класса
Igor
Достаточно обычного reference
universal reference же, T&& будет резолвиться в const string& если сделать << some_string_variable и в string&& если << "blah"s или вопрос "а нахрена вообще это разграничивать если можно просто const T& "?
Igor
типа того
скомпилилось, но это конешо лол
Berkus
ну нету конверсии строки в строку по дефолту
Berkus
в комитете чувакам некогда писать реальный софт
Олександр
Разве это не костыль?
Igor
Вопрос
"слышал звон" как говорится, что во всякой шаблонной мутотени лучше использовать T&& ибо будет разом учитывать и const type& и type&&
Олександр
Так тебе же не нужен type&&
Олександр
литералы отлично передаются по const type&
Igor
ну нету конверсии строки в строку по дефолту
ну что поделать десу, да но вопрос был скорее про то, что почему вообще он берёт шаблонную версию вместо конкретной перегрузки
Олександр
В идеале красивее сделать перергузку оператора для строк и const char* без std::to_string
Олександр
А шаблон оставить для остального
Igor
перегрузку или специализацию шаблона?
Igor
потому что перегрузка то уже есть, и он её благополучно игнорирует
Constantine
а что с ней?
она не thread safe
Berkus
видимо локаль с ней
Олександр
std::to_string нельзя пользоваться!
Но у него передается arbitary тип
Berkus
она тред сейф
Олександр
она не thread safe
Лол, он использует wait
Constantine
она тред сейф
а в cppreference написано, что нет
Berkus
но будет медленнее, пушо локаль будет блочиться между тредами
Олександр
перегрузку или специализацию шаблона?
Специализация только для классов работает
Berkus
а в cppreference написано, что нет
нашел кому верить. прочитай лучше cppreference: std::to_string relies on std::locale for formatting purposes, and therefore concurrent calls to std::to_string from multiple threads may result in partial serialization of calls.
Igor
Лол, он использует wait
перегрузка с wait банально вызывает this_thread::sleep_for, если что
Олександр
ок, не знал
Igor
Специализация только для классов работает
т.е. template<class T> func(T){...} template<> func(int){...} вообще не предусмотрено?
Олександр
т.е. template<class T> func(T){...} template<> func(int){...} вообще не предусмотрено?
Хм, прочел, что только полную можно делать template<> Class::func<int>(int){...}
Berkus
ну и что значит эта строка?)
она довольно расплывчата, не говорит насколько partial
Олександр
ИМХО в данном случае специализация ни к чему
Ioann_
Хех, а когда я свой код скидывал - такого кипиша не было :)
Ioann_
https://pastebin.com/C3TchdLa
Но если кто не видел - вот. Правда все компилится и работает :) Но это ведь не означает, что все хорошо ...?
Pepe 🐸
Кто нибудь юзал Halide? Как перфоманс по сравнению с С?
Pepe 🐸
Pepe 🐸
Из статьи. Халид это язык с llvm компилятором
KosBeg
#НАРУШАЮТ
Олександр
В этих статьях очень часто завышают показатели, дабы выглядело круче
Олександр
Но если это так, то интересно
Pepe 🐸
В этих статьях очень часто завышают показатели, дабы выглядело круче
Вот поэтому интересно. Сейчас в компании кто то презентацию сделал , он ещё типа и кучу архитектур поддерживает хотя ему 5 лет
Pepe 🐸
Вот думаю насколько он развит, в том числе tooling и вот это все
Олександр
В llvm все языки в промежуточный конвертируются, а дальше уже на аритектуру таргета
Олександр
Вряд ли о нем кто-то знает в индустрии, слишком молодой язык. Я вот вообще первый раз слышу о нем.
Pepe 🐸
Вряд ли о нем кто-то знает в индустрии, слишком молодой язык. Я вот вообще первый раз слышу о нем.
Я тоже. Но говорят в Гугле его юзают и калком тоже поддерживает. Инфа не знаю откуда