こんにちは私はprotobufで作業していますが、問題があります。プロトコルバッファ使用enum
私はいくつかの列挙関数を持っていますが、これらのうちのいくつかの言語のファイルをコンパイルしようとすると、同じエイリアスがあります。
この例をprotobufドキュメントにコピーして、列挙型を定義しても動作しないようにしました。
num EnumAllowingAlias {
option allow_alias = true;
UNKNOWN = 0;
STARTED = 1;
RUNNING = 1;
}
enum EnumNotAllowingAlias {
UNKNOWN = 0;
STARTED = 1;
// RUNNING = 1; // Uncommenting this line will cause a compile error inside Google and a warning message outside.
}
これは、Googleドキュメントは、あなたには、いくつかの異なる列挙型で同じエイリアスを使用する必要がある場合は、オプションを追加する必要があると述べている「オプションallow_alias =真;」列挙型ではなく、.protoファイルをコンパイルしようとした後にコンパイラの応答を返します。
example.proto:13:5: "UNKNOWN"は既に "namespace"で定義されています。 example.proto:13:5:enum値はC++スコープ規則を使用しています。つまり、enum値はその型の兄弟であり、その子ではありません。したがって、 "UNKNOWN"は "EnumNotAllowingAlias"内だけでなく、 "kluso"内で一意でなければなりません。 example.proto:14:5: "名前空間"に "STARTED"がすでに定義されています。 example.proto:14:5:enum値はC++スコープ規則を使用することに注意してください。つまり、enum値はその型の兄弟であり、その子ではありません。したがって、 "開始"は "EnumNotAllowingAlias"内だけでなく、 "kluso"内で一意でなければなりません。
私は何が起こっているのか分かりません。誰かが問題を知っていますか?
私はallow_aliasingを設定していません。 Hm。 – BlueSpaceCanary