Size: a a a

2020 July 18

PG

Pig Greenest in pro.cxx
ключевое слово "всегда", т.е. собирать эти файлы для хоста и во время обычной, и во время кросскомпиляции
источник

AT

Andrew Titov in pro.cxx
А, понял.
источник

IZ

Ilia Zviagin in pro.cxx
fulcanelly
а как можно получить имя класса ? типа как имя функции через __func__
А что ты с ним делать будешь?
источник

AF

Aidar Fattakhov in pro.cxx
Ilia Zviagin
А что ты с ним делать будешь?
Бинарь вызывать😔
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Pig Greenest
привет, вопрос по cmake и кросскомпиляции, можно ли всегда собирать определенные исполняемые файлы для хост системы?
Ну собирай 2 раза
источник

CD

Constantine Drozdov in pro.cxx
#include <tuple>
#include <vector>
#include <algorithm>

bool operator < (std::pair<int, int>, std::pair<int, int>) {
   throw 0;
}

int main() {
   std::vector<std::pair<int, int>> v = {
       { 0, 0 },
       { 1, 1 }
   };
   std::sort(v.begin(), v.end());
   //v[0] < v[1];
}
@antoshkka слушайте, я вот неожиданно узнал, что ADL подразумевает просмотр в том числе шаблонных параметров, и если в данном примере заменить int на myclass, поведение изменится и станет доступной врезка в name lookup для std

зачем вообще существует правило просмотра шаблонных параметров? почему его просто не взять и запретить?
источник

MZ

Max Ziua in pro.cxx
Constantine Drozdov
#include <tuple>
#include <vector>
#include <algorithm>

bool operator < (std::pair<int, int>, std::pair<int, int>) {
   throw 0;
}

int main() {
   std::vector<std::pair<int, int>> v = {
       { 0, 0 },
       { 1, 1 }
   };
   std::sort(v.begin(), v.end());
   //v[0] < v[1];
}
@antoshkka слушайте, я вот неожиданно узнал, что ADL подразумевает просмотр в том числе шаблонных параметров, и если в данном примере заменить int на myclass, поведение изменится и станет доступной врезка в name lookup для std

зачем вообще существует правило просмотра шаблонных параметров? почему его просто не взять и запретить?
А зачем запрещать? Очень удобная штука, особенно для [де]сериализации, когда есть очень много форматов
источник

MZ

Max Ziua in pro.cxx
Если не ошибаюсь, Антон даже на какой-то конфе рассказывал, как они это в Такси юзают
источник

DF

Dollar Føølish in pro.cxx
Я тоже в свое время удивился этому когда цппреф читал
источник

DF

Dollar Føølish in pro.cxx
Но видимо и вправду удобно
источник

O

Ofee in pro.cxx
Constantine Drozdov
#include <tuple>
#include <vector>
#include <algorithm>

bool operator < (std::pair<int, int>, std::pair<int, int>) {
   throw 0;
}

int main() {
   std::vector<std::pair<int, int>> v = {
       { 0, 0 },
       { 1, 1 }
   };
   std::sort(v.begin(), v.end());
   //v[0] < v[1];
}
@antoshkka слушайте, я вот неожиданно узнал, что ADL подразумевает просмотр в том числе шаблонных параметров, и если в данном примере заменить int на myclass, поведение изменится и станет доступной врезка в name lookup для std

зачем вообще существует правило просмотра шаблонных параметров? почему его просто не взять и запретить?
Из недавних мыслей по расширению функциональности nlohman_json, если я правильно понимаю, моя идея будет работать именно благодаря этому, так что может быть полезно для совмещения adl и тег-диспатчинга, в параметре тега можно найти нужный тип и по нему включить adl. Потому что просто по возвращаемому типу не получится(?)
источник

К

Константин in pro.cxx
Constantine Drozdov
#include <tuple>
#include <vector>
#include <algorithm>

bool operator < (std::pair<int, int>, std::pair<int, int>) {
   throw 0;
}

int main() {
   std::vector<std::pair<int, int>> v = {
       { 0, 0 },
       { 1, 1 }
   };
   std::sort(v.begin(), v.end());
   //v[0] < v[1];
}
@antoshkka слушайте, я вот неожиданно узнал, что ADL подразумевает просмотр в том числе шаблонных параметров, и если в данном примере заменить int на myclass, поведение изменится и станет доступной врезка в name lookup для std

зачем вообще существует правило просмотра шаблонных параметров? почему его просто не взять и запретить?
Затем что к АДЛ долго шли это сверхплюха, чтоб ее запрещать
источник

AT

Alexander T in pro.cxx
Ofee
Из недавних мыслей по расширению функциональности nlohman_json, если я правильно понимаю, моя идея будет работать именно благодаря этому, так что может быть полезно для совмещения adl и тег-диспатчинга, в параметре тега можно найти нужный тип и по нему включить adl. Потому что просто по возвращаемому типу не получится(?)
Да, вроде именно про такой подход рассказывал Антон в "Трюках" в разделе про сериализацию. Там с помощью пустого шаблонного тэга создаётся точка кастомизации, и пользователь может расширять поведение либы для новых типов.
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
#include <tuple>
#include <vector>
#include <algorithm>

bool operator < (std::pair<int, int>, std::pair<int, int>) {
   throw 0;
}

int main() {
   std::vector<std::pair<int, int>> v = {
       { 0, 0 },
       { 1, 1 }
   };
   std::sort(v.begin(), v.end());
   //v[0] < v[1];
}
@antoshkka слушайте, я вот неожиданно узнал, что ADL подразумевает просмотр в том числе шаблонных параметров, и если в данном примере заменить int на myclass, поведение изменится и станет доступной врезка в name lookup для std

зачем вообще существует правило просмотра шаблонных параметров? почему его просто не взять и запретить?
Саттер думал запретить это, ссылаясь на то что это ускорит компиляцию

Но какие-то пректы на это полагалсь и идею он оставил... а мы начали её использовать https://youtu.be/mkPTreWiglk
источник
2020 July 19

DS

Dmitry Sokolov in pro.cxx
А насколько вообще критично ADL для времени компиляции? Например я у себя подделку под std format внедрял, тоже честно как в стандарте ADL выпилил но добавил приоритет для member функции T::format(context) (что оказалось супер удобно) и в formatter псевдо-параметр Enable сделал для всяких enable-if (что мне кажется то же зло что и ADL).
источник

DS

Dmitry Sokolov in pro.cxx
Это я к тому что без ADL никак тот же std::hash<X::T> не зарулить в T::hash простой инъекцией в X.
источник

DS

Dmitry Sokolov in pro.cxx
Хм.. кстати, ns-специализации, а чо?   template<class T> class std::hash<MyNs::T> {...};
источник

A

ARCHANGEL in pro.cxx
парни, а в какой либе (из vcpkg или вообще) лежат хедеры httpd.h, http_core.h? Хочу mode_example_config.c собрать из тутора:
https://httpd.apache.org/docs/2.4/developer/modguide.html
источник

DS

Dmitry Sokolov in pro.cxx
И вот ещё чот подумалось, касательно format, мне кажется всё слегка перегружено в кастомизации, в основном за счёт мета-форматирования, когда подстановки используются внутри самой строки формата. Это очень сильно усложняет любой пользовательский парсер. Мне кажется это тот случай, когда проще ограничить возможности мета-форматирования простыми типами и взять эту рекурсивную сложность на плечи библиотеки, небольшой предвыделенный буфер легко я думаю позволит сузить parse context из класса с доступом ко всем аргументам до простого string view.
источник

AP

Antony Polukhin in pro.cxx
Dmitry Sokolov
А насколько вообще критично ADL для времени компиляции? Например я у себя подделку под std format внедрял, тоже честно как в стандарте ADL выпилил но добавил приоритет для member функции T::format(context) (что оказалось супер удобно) и в formatter псевдо-параметр Enable сделал для всяких enable-if (что мне кажется то же зло что и ADL).
Особых исследований нет, насколько критично. Мы разницы особой не замечали в производительности
источник