GoogleのJava用ProtocolBufferAPIでは、オブジェクトを作成する次の優れたビルダーを使用しています(ここを参照)。
Person john =
Person.newBuilder()
.setId(1234)
.setName("John Doe")
.setEmail("jdoe@example.com")
.addPhone(
Person.PhoneNumber.newBuilder()
.setNumber("555-4321")
.setType(Person.PhoneType.HOME))
.build();
ただし、対応するC ++ APIはそのようなビルダーを使用しません(ここを参照)
C++とJavaAPIは同じことをしているはずなので、なぜC++でもビルダーを使用しなかったのか疑問に思います。その背後にある言語上の理由がありますか?つまり、それは慣用的ではないか、C ++で嫌われていますか?それとも、C++バージョンのProtocolBuffersを書いた人の個人的な好みですか?