На самом деле, версии стандарта C ++ до того, как C ++ 11 определили ключевое слово «export», [] , можно просто объявить шаблоны в файле заголовка и реализовать их в другом месте.
К сожалению, ни один из популярных компиляторов не реализовал это ключевое слово. Единственный, о котором я знаю, - это интерфейс, написанный Edison Design Group, который используется компилятором Comeau C ++. Все остальные настаивали на том, что вы пишете шаблоны в заголовочных файлах, нуждающихся в определении кода для надлежащего создания экземпляра (как уже указывали другие).
В результате стандартная комиссия ISO C ++ решила удалить export
особенность шаблонов, начинающихся с C ++ 11.
Первоначальное предположение состоит в том, что модуль solr-node возвращает значение в виде двойного (а не в виде строки), и точность двойного не достаточно хороша для точного представления значения 1626999925241806848
.
Мы можем подтвердить это непосредственно в консоли нашего браузера:
-> 1626999925241806848
<- 1626999925241806800
, т.е. если мы введем числовое значение 1626999925241806848
, оно будет представлено числом с плавающей запятой, которое ближе всего, и это 1626999925241806800
.
solr-node, вероятно, должен возвращать эти значения в виде строки, когда они превышают представимое значение для целых чисел.
Обновление : solr-node детализирует это на странице обзора :
Используйте json-bigint для правильной обработки чисел, слишком больших для числа Javascript, например в качестве значений полей * l и _version. По умолчанию библиотека json-bigint не используется, поскольку разница в производительности по сравнению с нативной библиотекой JSON слишком велика для «большого» фрагмента JSON ( https://github.com/lbdremy/solr-node-client/issues / 114 # issuecomment-54165595 ), но вы хотите включить его, если используете функцию Optimistic Concurreny, доступную в Solr 4.x, вместе с функциями RealTime Get и Atomic Updates, поскольку они используют версию поле. Чтобы включить его, выполните
BLOCKQUOTE>var client = solr.createClient({ bigint : true})
или непосредственно на клиентском экземпляреclient.options.bigint = true
.