Opened 4 years ago
Closed 4 years ago
#1041 closed ожидается проверка (задача сдана)
WW #18 smirnov.ilya
Reported by: | smirnov.ilya | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | WW_format | Version: | |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 4 years ago by
comment:2 Changed 4 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to smirnov.ilya |
---|---|
Summary: | WW #18 → WW #18 smirnov.ilya |
Неверная структура файлов.
Кажется, работает, но SFINAE-отсечение не работает. Почему-то компилируется format::to_string
для того, для чего не должен (кажется что тема вокруг того, какой должен быть метод ‹T›.format()
). Собственно, ты это и описал.
Зачем тебе шаблонный класс с странными методами и константами, когда он всего один, но вот to_string
дублируется (с одинаковым содержимым) аки чёрт? Тем более копирует значение в себя. Тем более дублируются перегрузки для std::vector
, когда внутренний тип разный. И выглядит сложно.
5, надо проще.
comment:3 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:4 Changed 4 years ago by
Owner: | changed from smirnov.ilya to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 |
Вроде даже стало похоже на sfinae, но проблемы с последней группой тестов остались. И кажется я не смог в compile-time рекурсию...???
comment:5 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Не, не завелось.
Намёк был сделать
template<typename T, typename = void> class FormatHelper {
выключаемым по каким-то условиям. Так можно было бы написать кучу специализаций:
template<typename T> class FormatHelper<T, std::enable_if_t<std::is_intergral_v<T>> {
и определять, живая ли она.
Например, у тебя сейчас специализация для вектора есть всегда, даже когда внутри него метода нет.
Эта посылка хуже, чем было.
Без теста на rvalue ref и non-const метод все компилируется. И кажется я делаю не совсем то, что нужно...