0

我有一个分支的数据结构,主要是由结构和整数构建的。一些元素使用 std::optional 模板签名。在可选结构元素的情况下,在另一个结构中,它本身也在另一个结构中作为可选引用,我得到错误:

Error (active) E0135 class "BasicContent" has no member "km"

这是产生此错误的代码:

#include "stdafx.h"
#include <optional>


using IntType = int;

struct BasicContent {
    IntType Speed;
    std::optional<IntType> km;
};

struct Message {
    std::optional<BasicContent> basicContent;
};

int main()
{
    Message myMessage;
    myMessage.basicContent->km = 5;

    return 0;
}

奇怪的是,我可以运行代码并写入所有数据,但它一直显示这个错误。同样在手表中,“km”显示为 nullopt,但一切都很好。有没有解决方案,或者有什么我看不到的?

4

0 回答 0