Сообщение Re[3]: cref<> in<> от 04.02.2023 19:55
Изменено 04.02.2023 19:56 Sm0ke
Re[3]: cref<> in<>
Здравствуйте, rg45, Вы писали:
S>>
R>Тут проблемка есть: при таком определении, cref<T> — не всегда константная ссылка, например:
R>http://coliru.stacked-crooked.com/a/308af58edc86d8bc
R>
Зачем вам нужен make_cref()? Напомню, что такой cref предназначен лишь для входных параметров функции.
А вы его возвращаете из return и используете не по назначению.
Это просто чтобы не писать const type & — а для наглядности. Но какой в этом тогда смысл?
Его определение можно по желанию переписать для trivial типов через std::conditional, чтобы они по const копии передавались, а не по ссылке.
S>>
S>>template <typename T>
S>>using cref = const T &;
S>>
R>Тут проблемка есть: при таком определении, cref<T> — не всегда константная ссылка, например:
R>http://coliru.stacked-crooked.com/a/308af58edc86d8bc
R>
Код примера | |
R>
| |
Зачем вам нужен make_cref()? Напомню, что такой cref предназначен лишь для входных параметров функции.
А вы его возвращаете из return и используете не по назначению.
Это просто чтобы не писать const type & — а для наглядности. Но какой в этом тогда смысл?
Его определение можно по желанию переписать для trivial типов через std::conditional, чтобы они по const копии передавались, а не по ссылке.
Re[3]: cref<> in<>
Здравствуйте, rg45, Вы писали:
S>>
R>Тут проблемка есть: при таком определении, cref<T> — не всегда константная ссылка, например:
R>http://coliru.stacked-crooked.com/a/308af58edc86d8bc
R>
Зачем вам нужен make_cref()? Напомню, что такой cref предназначен лишь для входных параметров функции.
А вы его возвращаете из return и используете не по назначению.
Это просто чтобы не писать const type & — а для наглядности. Но какой в этом тогда смысл?
Его определение можно по желанию переписать для trivial типов через std::conditional, чтобы они по const копии передавались, а не по ссылке.
Например зачем char передавать по конст ссылке?
S>>
S>>template <typename T>
S>>using cref = const T &;
S>>
R>Тут проблемка есть: при таком определении, cref<T> — не всегда константная ссылка, например:
R>http://coliru.stacked-crooked.com/a/308af58edc86d8bc
R>
Код примера | |
R>
| |
Зачем вам нужен make_cref()? Напомню, что такой cref предназначен лишь для входных параметров функции.
А вы его возвращаете из return и используете не по назначению.
Это просто чтобы не писать const type & — а для наглядности. Но какой в этом тогда смысл?
Его определение можно по желанию переписать для trivial типов через std::conditional, чтобы они по const копии передавались, а не по ссылке.
Например зачем char передавать по конст ссылке?