Код: Выделить всё
template
class PtrC {
public:
constexpr PtrC(const T* const p) : ptr{p} {}
constexpr auto getMutable() requires(not IsConst) {
return const_cast(ptr);
}
public:
const T* ptr;
};
template
PtrC(T* const) -> PtrC;
template
PtrC(const T* const) -> PtrC;
template
using Ptr2PtrC = PtrC;
auto main() -> int {
Ptr2PtrC ptr2ptrc{new int* const{nullptr}};
}
- Что правильно и почему?
- Как в моем случае работает CTAD для второго параметра шаблона — Const?
- Как преобразуются направляющие вывода для шаблона псевдонима?
Подробнее здесь: https://stackoverflow.com/questions/798 ... s-template