我有一个分支的数据结构,主要是由结构和整数构建的。一些元素使用 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,但一切都很好。有没有解决方案,或者有什么我看不到的?