Наверное, не у всех, но у меня была такая же проблема. Я использовал последний, в моем случае ошибка была из-за того, что я использовал jfrog manage из компании, в которой я работаю.
npm config list
В результате было
; cli configs
metrics-registry = "https://COMPANYNAME.jfrog.io/COMPANYNAM/api/npm/npm/"
scope = ""
user-agent = "npm/6.3.0 node/v8.11.2 win32 x64"
; userconfig C:\Users\USER\.npmrc
always-auth = true
email = "XXXXXXXXX"
registry = "https://COMPANYNAME.jfrog.io/COMPANYNAME/api/npm/npm/"
; builtin config undefined
prefix = "C:\\Users\\XXXXX\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\WINDOWS\system32
; HOME = C:\Users\XXXXXX
; "npm config ls -l" to show all defaults.
Я решил проблему с помощью глобальных метрик.
Я нашел статью Лорана Дами, в которой обсуждается каррирование в C / C ++ / Objective-C:
Of Интересно, как это реализовано в C:
Наша текущая реализация использует существующие конструкции C для добавления механизма каррирования. Это было намного проще, чем изменение компилятора, и этого достаточно, чтобы доказать интерес к каррированию. Однако у этого подхода есть два недостатка. Во-первых, каррированные функции не могут быть проверены на тип и поэтому требуют осторожного использования во избежание ошибок. Во-вторых, функция карри не может знать размер своих аргументов и считает их, как если бы все они были размером с целое число.
В документе не содержится реализации curry ()
,
Вот мое первое предположение, которое мне пришло в голову (возможно, это не лучшее решение).
Функция карри может выделить часть памяти из кучи и поместить в нее значения параметров память, выделенная кучей. Уловка состоит в том, чтобы возвращаемая функция знала, что она должна считывать свои параметры из этой выделенной кучи памяти. Если есть только один экземпляр возвращаемой функции, то указатель на эти параметры может быть сохранен в singleton / global. В противном случае, если существует более одного экземпляра возвращаемой функции, то я думаю, что карри необходимо создать каждый экземпляр возвращаемой функции в памяти, выделенной кучей (путем написания кодов операций типа «получить этот указатель на параметры "," нажмите параметры "и" вызовите другую функцию " в память, выделенную кучей). В этом случае вам нужно опасаться, является ли выделенная память исполняемой, и, возможно (я не знаю), даже опасаться антивирусных программ.