为什么我不能使用nullptr而不是nullopt?为什么{}nullopt一样翻译?

最佳答案

  • optional<T>不是T的指针,它是一个
    要么T要么什么都不是。您不能像指针和引用一样具有“悬挂的optional”或任何其他类型的“无效”值。
  • nullptr是一个对象,可以将其转换为任何指针类型的值。
  • nullopt是一个对象,可以将其转换为任何optional类型的值。
  • {}是(在期望值的上下文中)表示“
    默认构造类型为T的对象,其中T是从上下文中推断出的某种类型。如果T是指针类型,则将等于nullptr。如果Toptional类型,则将等于nullopt。如果T是一个算术类型,它将比较等于0。如果T是标准容器类型之一,它将比较等于该类型的其他空容器。

    关于c++ - nullptr,{}和nullopt之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47791737/

  • 10-11 22:09