Ваша команда git show
должна работать. Либо хеш-код недействителен, либо объект фиксации каким-либо образом поврежден.
Обновлено: Ваш скрипт возвращает хеши объектов, поэтому, вероятно, ссылка на этот объект является недействительной.
Вы не сможете получить от автора ссылку оттуда.
Это может помочь: g log --find-object=OBJECT_HASH
. В этом списке перечислены все коммиты, в которых был изменен объект, чей хэш вы предоставили.
Вам необходимо использовать ключевое слово export
. Однако я не думаю, что G ++ имеет надлежащую поддержку, поэтому вам нужно включить определение функции шаблона в заголовок, чтобы модуль перевода мог использовать ее. Это связано с тем, что <int>
«версия» шаблона не была создана, только <typename T>
«версия».
Самый простой способ - #include
файл .cpp. Однако это может вызвать проблемы, например, когда другие функции находятся в файле .cpp. Это также, вероятно, увеличит время компиляции.
Простой способ - переместить ваши шаблонные функции в собственный файл .cpp и включить его в заголовок или , использовать ключевое слово export
и скомпилировать его отдельно.
Проблема состоит в том, что шаблон функции не является функцией. Это - шаблон для создания функций по мере необходимости.
Так, чтобы шаблон работал, для компилятора интуитивно нужны два сведения: сам шаблон и тип, которым нужно заменить в него. Это непохоже на вызов функции, который может генерировать компилятор, как только он знает, что функция существует. Это не должно знать то, что функция делает, просто что это похоже void Frobnicate(int, float)
, или независимо от того, что ее подпись.
, Когда Вы объявляете шаблон функции, не определяя его, Вы только говорите компилятору, что такой шаблон существует, но не, на что это похоже. Это недостаточно, чтобы компилятор был в состоянии инстанцировать его, это должно быть в состоянии видеть полное определение также. Обычное решение состоит в том, чтобы поместить весь шаблон в заголовок, который может быть включен при необходимости.
Лучшая практика с шаблонными функциями должна определить их в заголовочных файлах. Они создаются во время компиляции, таким образом, компилятор должен иметь определение вокруг, чтобы сделать так.
, Когда export
для шаблонов более поддерживался бы, это не будет иметь место, хотя, но прямо сейчас это все еще едва может использоваться.
Их любая поддержка компилятора, обрабатывают раздельную компиляцию по шаблону?
, Как я знаю, обычная практика, объявляют и реализуют шаблонные функции в заголовочном файле