параметр (хм, сейчас, ну пусть будет в C++17), а для остальных типов сделали только в C++20? Числа не объекты или в чем разница?
там было много проблем с определением эквивалентности двух типов, параметризованных произвольным объектом. в каком случае &f<a> == &f<b>? http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1907r1.html - в этой бумаге есть много ссылок на другие бумаги, где всё это обсуждалось
ну для строковых литералов, наверное, это можно решить
да хрен знает, почему не решали раньше главное, что уже решили
я что-то очкую, что плохо, надо бы посмотреть
не, там всё было ПОЧТИ плохо (и это даже почти приняли), но вовремя подсуетились и всё поправили
правда что ли? :) а если a - это NaN? или если const char* - сравнивать указатели или строки? короче, бумаги в руки и читать, я сам всего не знаю
Блин ну тут сравнение наверное зависеть от типов должно
да, но это сравнение должно быть таким, чтобы компилятор на стадии компиляции мог сравнить объекты, причём чтобы это сравнение ещё было согласовано с хешированием (компилятору ж нужно хранить все инстанцирования) и чтобы юзер случайно не UB'нул внутрь компилятора
для литералов всё оставили, а NTTP расширили, теперь туда проще строки передавать (я кучу раз кидал ссылку на fixed_string) я уже писал стену текста вот тут ещё обсуждали когда-то а вот здесь Андрей Давыдов объяснил, почему нехорошо ломать компилятор (между прочим, куда он пропал? очень долго не мог найти сообщение)
Про fixed_string — есть какие-то пропозалы или нормальные имплементации?
это я так обозвал класс и кидал сюда ссылку под тегом #fixed_string - так что название неофициальное, просто как proof of concept
А ну понятно, я думал вдруг нормальная имплементация есть
у буста что-то там появилось вроде https://www.boost.org/doc/libs/1_73_0/libs/static_string/doc/html/index.html
что-то не вижу, где у них написано, что она для NTTP
строки ток для NTTP оверкил)
я согласен, что пихать в буст класс из 20 строк кода - это слишком
не смотрел реализацию, но вроде и эти строки можно в шаблон засунуть
увы, но у них мемберы приватные. были бы публичные - возможно запихнулись бы а ещё у них constexpr вообще почти нигде не прописан
аа, жаль, я думал там как у std::array сделано
Обсуждают сегодня