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