Aidar
Лучше явно сравнивать тут
Aidar
Да есть же std::equal
Aidar
Это чистое имхо
Aidar
Я высказался
Aidar
Мнение не изменю
Александр
Вообще похоже на хорошую идею для Proposal. Операторы сравнения описаны через lexicographical_compare, он позволяет работать с итераторами разных типов.
Только надо сделать нормальное сравнение не только для vector, а и для deque, list, forward_list и т.д.
Все контейнеры нужно охватить, это конечно. Вообще, ситуация с аллокаторами не только в операторах сравнения, а везде, где используются не итераторы, а контейнеры сами по себе. А может таких мест больше нет, не помню
Aidar
Лол
Крылатый
Квиксорт быстрей тимсорта?)
Крылатый
Ой вей.
Крылатый
...хочу сортировку за O(n/2)...
Крылатый
ib4: шучу
Evgenii
Evgenii
с проивольным компоратором?
🐙 Antony
В чём подвох?
Александр
Вспомнил. Ещё надо разобраться с конструктором копирования и оператором присваивания. Им тоже никто не мешает иметь различные аллокаторы.
Для всех контейнеров
🐙 Antony
Вот это опасно
Aidar
Работает только на количестве элементов <Н?
🐙 Antony
Крылатый
Есть такие, да.
Александр
Так доказано же, что в общем виде сортировок ниже n logn не может существовать?
Крылатый
Ну за O(n) есть
Крылатый
Но там и железо специальное, ЕМНИП
Денис
Вопрос. Есть вот такой код.
Денис
template<typename T, typename X>
struct pField
{
typedef T X::* ptr_attr;
};
template<typename T>
struct SetterStruct{
std::map<std::string, pField<int, T>::ptr_attr> to_attrs_int;
}
Денис
g++ ругается, что std::map ожидает тип, а получает какую-то хуйню. В чём может быть дело?
Aidar
Денис
как это ваще распарсить?
Короче pField задает тип - указатель на член структуры. А в SetterStruct будет мапа, с указателями на члены уже конкретной структуры.
Aidar
да я понял ща чекну
Aidar
Денис
Aidar
юзай using
Aidar
вместо шаблона структуры с typedef
Aidar
using умеет в шаблоны
Aidar
и не нужно будет typename
Денис
юзай using
Да, сначала был using и он ругался, и я и поменял на typedef.
Aidar
нет
Aidar
прям ваще struct снеси
Aidar
template<typename T, typename X>
using pField_t = T X::(*);
Aidar
кажись так
Денис
кажись так
Да. Я так как раз не хотел, потому что у меня указатели на члены с разными типами данных могут быть.
Aidar
это не отличается от того что ты написал
Aidar
у тебя тоже нельзя
Aidar
там шаблон от двух типов
Aidar
тут шаблон от двух типов
Денис
тут шаблон от двух типов
Ну условно, я же не весь код печатал, а только где проблема. Но спасибо, всё компилируется.
Anonymous
кусок буста опять тырят?
Anonymous
запихнули бы уже весь буст в стандарт
Anonymous
и было бы счастье
🦥Alex Fails
Boost.build😂😂😂
Aidar
boost::python
Vladislav
boost::boost
Vladislav
Хуже, boost::std
Constantine
а есть нормальные реализации структурированных (типа xml) сериализаторов?
Constantine
boost::serialization по самплам выглядит ужасно
Aidar
зато xml прям в коде
Constantine
меня не радует шаблонный метод serialize
Constantine
вообще у меня есть велосипед, которому существенно не хватает двух вещей
Constantine
какого-то передаваемого параметра, отвечающего за режим ввода/вывода, и внешних перегрузок методов
Berkus
есть вроде, я видел альфу сайта но не знаю взлетело ли оно дальше
Aidar
Berkus
Aidar
кстати я не понял обязательно ли он шаблонный
Constantine
в чем проблема?
в том, что это перекомпилируется при каждой модификации?
Aidar
тоесть виртуальные методы лучше?
Constantine
146% да
Aidar
Berkus
Constantine
зато работает норм
да мой велосипед тоже работает, но не хватает, скажем, переключалок режима vector<string>
Constantine
угу, можно написать шаблонный метод и реализацию в cpp
Constantine
*facepalm*
Aidar
?
Constantine
ну меня не устраивает сериализация, реализованная в h файле
Aidar
я про то что возможно его можно не шаблонным делать
Aidar
надо спросить у того кто его юзал
Aidar
там правда инпут и оутпут разные