Как определяется оператор ggplot2 plus?

+ обычно бросаетnon-numeric argument to binary operator когда предоставляется что-то, кроме числа. Но это работает с ggplot2, вставляя сюжет вместе. В то же время он сохраняет свою обычную функцию вне контекста ggplot2 (например, как оператор арифметики или формулы), поэтому его версия ggplot2 не конфликтует ни с одним из них.

Я хочу понять, как сделать+ вести себя так. Просматривая репозиторий ggplot2 github, я нашел определения функций для+.gg а также%+% но это не прояснило меня.

Я был бы счастлив указателем на код в пакете ggplot2, который делает это, или обобщенным объяснением того, как это делается.