170 похожих чатов

Насколько корректны вот такие попытки создания алиаса в темплейте? Можно

как-то запретить вызов as_time_point<some_clock, some_wrong_time_point>?

template<typename Clock,
typename TimePoint = std::chrono::time_point<Clock, std::chrono::milliseconds>>
TimePoint as_time_point()
{
auto time_point = TimePoint();
// fill time_point
return time_point;
};

18 ответов

18 просмотров

Почему именно в темплейте тебе надо это сделать?

Max-Kolesnikov Автор вопроса
Danya🔥
Почему именно в темплейте тебе надо это сделать?

При использовании using'а в теле функции, например, приходится писать полностью возвращаемое значение

а какой смысл от запрета?

Alexander Karaev
а какой смысл от запрета?

Чтобы этот второй параметр шаблона был только как алиас, чтобы пользователь его не мог заменить

Max-Kolesnikov Автор вопроса
Alexander Karaev
а какой смысл от запрета?

Вроде как аргумент TimePoint доступен для изменения при вызове, а я просто хочу "алиас" для него ввести

template<typename Clock, typename ..., typename TimePoint = std::chrono::time_point<Clock, std::chrono::milliseconds>>

Alexander Karaev
template<typename Clock, typename ..., ...

Но такое точно требуется в поясняющем комментарии

Max-Kolesnikov Автор вопроса
Ilya Zviagin
decltype rettype используй, или как его там...

Пожалуй я все таки буду пойду по этому пути, всем спасибо)

Alexander Karaev
template<typename Clock, typename ..., ...

Я бы это в макрос обернул... У которого будет документация...

Max-Kolesnikov Автор вопроса
Danya🔥
И как это выглядеть вообще должно?)

template<typename Clock> std::chrono::time_point<Clock, std::chrono::milliseconds> as_time_point() { using TimePoint = decltype(as_time_point<Clock>()); auto time_point = TimePoint(); // fill time_point return time_point; };

Max-Kolesnikov Автор вопроса
Aidar Fattakhov
это типа для сфинае?

Не, просто уже не первый раз возникает этот вопрос. Обычно алиаса в теле функции хватает, но вот когда в сигнатуре один из таких типов, бывает многабукаф

Max Kolesnikov
Не, просто уже не первый раз возникает этот вопрос...

типа почему не: template<typename Clock> auto as_time_point() { using TimePoint = std::chrono::time_point<Clock, std::chrono::milliseconds>; return TimePoint{}; }

Max-Kolesnikov Автор вопроса
Aidar Fattakhov
типа почему не: template<typename Clock> auto as_t...

Да, но я не фанат auto для возвращаемых значений

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта