私は、主に構造体と整数から構築された分岐データ構造を持っています。一部の要素は 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として表示されますが、すべて問題ありません。これに対する解決策はありますか、それとも表示されないものがありますか?