Если ContextAttributeIdentity
является членом какого-либо другого объекта, вы можете аннотировать его с помощью @JsonUnwrapped
, например:
public class SomeClass {
@JsonUnwrapped
private ContextAttributeIdentity contextAttributeIdentity;
}
Да, насколько я знаю, что второе объявление недопустимо в C++ и C89, но это допустимо в C99.
Из проекта C99, TC2 (6.7.5.3/10
):
Особый случай параметра без имени типа освобождает как единственный объект в списке specifies, что функция не имеет никаких параметров.
Это явно говорит о типе "пусто", не ключевом слове.
Из стандарта C++, 8.3.5/2
:
Если пункт объявления параметра пуст, функция не берет аргументов. Список параметров
(void)
эквивалентно пустому списку параметров.
То, что это означает, что фактическое ключевое слово с "пустотой" а не общий тип "пусто" может также быть замечено от одного из случаев, где вычет аргумента шаблона перестал работать (14.8.2/2
):
- Попытка создать функциональный тип, в котором параметр имеет тип пустоты.
Это поместило ясный другими, известными в одном отчете о проблеме базового языка здесь и некотором GCC bugreports связанный с другими ответами.
Напомним, Ваш GCC является правильным, но более ранние версии GCC были неверны. Таким образом тот код, возможно, был успешно скомпилирован с ним ранее. Необходимо исправить код, так, чтобы он использовал "пусто" для обеих функций, затем он скомпилирует также с другими компиляторами (comeau, также отклоняет второе объявление с той "ПУСТОТОЙ").
ошибки gcc.Править: так как не было достаточно ясно, что я имел в виду, был gcc 4.3.2, компилировал его из-за ошибок. Посмотрите № 32364 и № 9278.
Я просто поместил Ваш код в .cpp файл, и он скомпилировал без проблем в VS2005, SUSE, Redhat и Солярисе, таким образом, я предполагаю, Ваша определенная gcc версия не одобряет это. Галлон