Мне интересно, почему я получаю сообщение об ошибке при компиляции:
const std::unique_ptr<int> get() {
return std::make_unique<int>(10);
}
int main() {
const std::unique_ptr<int> value = get();
return EXIT_SUCCESS;
}
Я получаю следующую ошибку:
main.cpp: In function ‘int main()’:
main.cpp:10:44: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = int; _Dp = std::default_delete<int>]’
const std::unique_ptr<int> value = get();
Он правильно компилируется, когда я удаляю const
из подписи get
.
Есть ли способ вернуть константу unique_ptr?