Существует ли способ сделать приправление карри в C?

Наверное, не у всех, но у меня была такая же проблема. Я использовал последний, в моем случае ошибка была из-за того, что я использовал 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.

Я решил проблему с помощью глобальных метрик.

37
задан 21 June 2009 в 05:12
поделиться

2 ответа

Я нашел статью Лорана Дами, в которой обсуждается каррирование в C / C ++ / Objective-C:

Больше функциональной возможности повторного использования в C / C ++ / Objective-c с каррированными функциями

Of Интересно, как это реализовано в C:

Наша текущая реализация использует существующие конструкции C для добавления механизма каррирования. Это было намного проще, чем изменение компилятора, и этого достаточно, чтобы доказать интерес к каррированию. Однако у этого подхода есть два недостатка. Во-первых, каррированные функции не могут быть проверены на тип и поэтому требуют осторожного использования во избежание ошибок. Во-вторых, функция карри не может знать размер своих аргументов и считает их, как если бы все они были размером с целое число.

В документе не содержится реализации curry () ,

20
ответ дан 27 November 2019 в 05:02
поделиться

Вот мое первое предположение, которое мне пришло в голову (возможно, это не лучшее решение).

Функция карри может выделить часть памяти из кучи и поместить в нее значения параметров память, выделенная кучей. Уловка состоит в том, чтобы возвращаемая функция знала, что она должна считывать свои параметры из этой выделенной кучи памяти. Если есть только один экземпляр возвращаемой функции, то указатель на эти параметры может быть сохранен в singleton / global. В противном случае, если существует более одного экземпляра возвращаемой функции, то я думаю, что карри необходимо создать каждый экземпляр возвращаемой функции в памяти, выделенной кучей (путем написания кодов операций типа «получить этот указатель на параметры "," нажмите параметры "и" вызовите другую функцию " в память, выделенную кучей). В этом случае вам нужно опасаться, является ли выделенная память исполняемой, и, возможно (я не знаю), даже опасаться антивирусных программ.

3
ответ дан 27 November 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: