C++ действительно генерирует конструктора по умолчанию, но только если Вы не обеспечиваете одно собственное. В стандарте ничто не говорится об обнулении элементов данных. По умолчанию, когда Вы сначала создаете любой объект, они не определены.
Это могло бы сбивать с толку, потому что большинство типов примитивов C++ ДЕЙСТВИТЕЛЬНО имеет "конструкторов" по умолчанию, которых init их для обнуления (интервал (), bool (), дважды (), долго (), и т.д. ), но компилятор не называет их к init участникам POD как он, делает для элементов объекта.
стоит отметить, что STL делает использование эти конструкторы к конструкции по умолчанию содержание контейнеров, которые содержат типы примитивов. Можно смотреть на этот вопрос для получения дополнительной информации о том, как вещи в контейнерах STL получают inited.
Для этого вам не понадобится mergetool. Его довольно легко разрешить вручную.
Ваш конфликт заключается в том, что ваши локальные коммиты добавили файл vision_problem_8.h
, который также был создан удаленным коммитом, путем переименования из vignette_generator_mashed.h
. Если вы запустите ls -l vision_problem_8.h *
, вы, вероятно, увидите несколько версий этого файла, которые git сохранил для вас. Один из них будет вашим, другой - удаленной версией. Вы можете использовать редактор или любые другие инструменты, которые вам нравятся, чтобы разрешить конфликтующее содержимое. Когда вы закончите, git add
затронутые файлы и зафиксируйте, чтобы завершить слияние.
Если вы просто хотите использовать версию удаленного коммита, вы можете просто переместить копию, которую вы не сделали » t записать на место и git add
it.
Что касается инструментов слияния, посмотрите git help mergetool
. По сути, он будет пытаться запустить каждую из включенных возможностей, пока не найдет ее, или использовать ту, которую вы явно настроили.
Если вы запустите слияние из подкаталога вашего проекта, git выполнит слияние для всего вашего проекта. Однако mergetool может видеть (и объединять) файлы только в рабочем каталоге или ниже него. Итак, если возникает этот сценарий, убедитесь, что вы пытаетесь запустить разрешение конфликта из каталога верхнего уровня в своем проекте.