В Google Protocol Buffer API для Java они используют эти красивые Builders, которые создают объект (см. здесь):
Person john =
Person.newBuilder()
.setId(1234)
.setName("John Doe")
.setEmail("[email protected]")
.addPhone(
Person.PhoneNumber.newBuilder()
.setNumber("555-4321")
.setType(Person.PhoneType.HOME))
.build();
Но соответствующий С++ API не использует такие Builders (см. здесь)
Предполагается, что С++ и Java API выполняют одно и то же, поэтому мне интересно, почему они также не использовали сборщики на С++. Существуют ли языковые причины этого, т.е. Это не идиоматично, или он нахмурился на С++? Или, возможно, только личное предпочтение человека, написавшего версию протоколов протокола С++?