Size: a a a

cxx.Дискуссионная

2020 March 17

O

Ofee in cxx.Дискуссионная
Ofee
Я год назад на него переполз из-за, кажется, неполной имплементации C++17
А может, раньше...
источник

Е

Егор in cxx.Дискуссионная
Ofee
Я год назад на него переполз из-за, кажется, неполной имплементации C++17
отлично, не зря день потратил
источник

Е

Егор in cxx.Дискуссионная
жсон парсер и рефлексия на лупхолах
источник

O

Ofee in cxx.Дискуссионная
Егор
вместо unique_value([]{}) функцию
constexpr auto make_unique() {
   return unique_value([]{});
}
Спасибо, возьму себе на вооружение :)
источник

O

Ofee in cxx.Дискуссионная
Егор
жсон парсер и рефлексия на лупхолах
Лол, оптимизация структур по памяти на основе инстанцирования :)
Хотя, я вот думаю, что mpl, возможно, тоже может решить задачу... Или нет...
источник

Е

Егор in cxx.Дискуссионная
Ofee
Лол, оптимизация структур по памяти на основе инстанцирования :)
Хотя, я вот думаю, что mpl, возможно, тоже может решить задачу... Или нет...
а ты можешь проверить, что вывод у функций разный https://godbolt.org/z/3hzef8? У меня просто компилятора нету
источник

Е

Егор in cxx.Дискуссионная
а то я начал кое-что подозревать
источник

O

Ofee in cxx.Дискуссионная
Вывод одинаковый, но функции разные :)
источник

Е

Егор in cxx.Дискуссионная
Ofee
Вывод одинаковый, но функции разные :)
так по идее должен и вывод быть разный, не?
источник

Е

Егор in cxx.Дискуссионная
в каждой инстанциации уникальная лямбда
источник

O

Ofee in cxx.Дискуссионная
Егор
так по идее должен и вывод быть разный, не?
Не уверен в этом, там нужно гадать над кофейной гущей стандартом
источник

O

Ofee in cxx.Дискуссионная
Так, они одинаковые в данном случае
источник

Е

Егор in cxx.Дискуссионная
Ofee
Так, они одинаковые в данном случае
а что так?
источник

O

Ofee in cxx.Дискуссионная
static_assert(unique() != unique());
источник

Е

Егор in cxx.Дискуссионная
не так прочитал
источник

O

Ofee in cxx.Дискуссионная
Ofee
static_assert(unique() != unique());
Он на прошлых выполняется, на этом варианте — нет
источник

Е

Егор in cxx.Дискуссионная
видимо с make_unique не прокатит
источник

O

Ofee in cxx.Дискуссионная
Егор
видимо с make_unique не прокатит
Да, он не шаблонный и компилятор его кеширует
источник

O

Ofee in cxx.Дискуссионная
Ofee
Да, он не шаблонный и компилятор его кеширует
Я подходил как раз к этому варианту, пока ты не предложил то, что работало на clang...
источник

O

Ofee in cxx.Дискуссионная
Ofee
Да, он не шаблонный и компилятор его кеширует
В общем, make_unique — всегда конкретное инстанцирование имеет, даже если сделать шаблонным, а значит, с одним и тем же и работаем. Нам нужно в его шаблонный параметр засунуть... unique()
источник