[ERROR] error: error reading C:\Users\suresh\.m2\repository\org\jdom\jdom\1.1\jdom-1.1.jar; error in opening zip file [ERROR] error: error reading C:\Users\suresh\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar; error in opening zip file [ERROR] error: error reading C:\Users\suresh\.m2\repository\org\apache\cxf\cxf-rt-bindings-http\2.2.1\cxf-rt-bindings-http-2.2.1.jar; error in opening zip file [ERROR] error: error reading C:\Users\suresh\.m2\repository\org\codehaus\jra\jra\1.0-alpha-4\jra-1.0-alpha-4.jar; error in opening zip file [ERROR] error: error reading C:\Users\suresh\.m2\repository\org\apache\cxf\cxf-api\2.2.1\cxf-api-2.2.1.jar; error in opening zip file [ERROR] error: error reading C:\Users\suresh\.m2\repository\org\apache\cxf\cxf-common-utilities\2.2.1\cxf-common-utilities-2.2.1.jar; error in opening zip file [INFO] 44 errors
Как устранить эту ошибку при выполнении
mvn clean install
?И я вижу, что начиная с
servlet-api
пакеты не создаются внутри локального репозитория на моем диске.-121--636379-
C++: Что такое ссылки R-Value на техническом уровне (ASM)? [duplicate] Возможное дублирование: В чем разница между ссылками на r-значение и ссылками на l-значение? (CodeGen) Мне было интересно, может ли кто-нибудь объяснить, какие ссылки на R-Value находятся на техническом уровне? Около...Возможно дублирование:
Какова разница между ссылками на r-значение и ссылками на l-значение? (CodeGen)Мне было интересно, может ли кто-нибудь объяснить, какие ссылки на R-Value находятся на техническом уровне? Под этим я имею в виду: Что происходит на уровне ассемблера, когда создаются ссылки R-Value.
Для небольшого теста, чтобы увидеть, что происходит внутри, я написал следующий код:
char c = 255; char &c2 = c; char &c3 = std::move(c);
Я знаю, что нет смысла создавать R-значение ссылки на 'c', но просто ради тестирования я сделал это в любом случае, чтобы увидеть, что он делает. И вот результат:
unsigned char c = 255; mov byte ptr [c],0FFh unsigned char &c2 = c; lea eax,[c] mov dword ptr [c2],eax unsigned char &&c3 = std::move(c); lea eax,[c] push eax call std::move
(0ED1235h) add esp,4 mov dword ptr [c3],eax Я, безусловно, не эксперт по асму, но мне кажется, что в данном случае 'c3' является регулярной ссылкой на 'c' в конце концов.
Если привязать ссылку R-Value непосредственно к временной (char & & c3 = 255), последний бит ассемблера изменяется как таковой:
unsigned char &&c3 = 255; mov byte ptr [ebp-29h],0FFh lea eax,[ebp-29h] mov dword ptr [c3],eax
Из вида этого изменения, я предполагаю, что c3 по-прежнему фактически является ссылкой на некоторую ячейку памяти, которая содержит значение 255. Так что это обычная ссылка - значение не копируется/не присваивается c3. Правда ли это?
Кто-нибудь может сказать, верны ли мои предположения или я полностью сошел с трека? До сих пор я всегда думал о R-Value ссылках, чтобы соответствовать сигнатуре функций/методов (возможно, move-ctor), когда речь идет о разрешении вызова, так что кодер знает, как обрабатывать данные, которые предоставляются (для move-ctor, который будет перемещать данные вместо копирования).
Чтобы отстоять эту довольно глупую попытку, которую я только что представил: я не намерен оборачиваться своим кодом на уровне асм, я просто хочу понять, какие технические различия ввели R-Value ссылки по сравнению с остальными, которые были вокруг все эти годы.
Любые идеи и объяснения приветствуются!
Спасибо!