鍍金池/ 問(wèn)答/ Linux問(wèn)答
傻丟丟 回答

是的,git中說(shuō)的repo 就是 Repository 的縮寫(xiě)

你好,遇到了同樣的問(wèn)題,有解決方案嗎?

硬扛 回答

"...your current branch is behind its remote counterpart..."
你的分支版本落后遠(yuǎn)程相應(yīng)的版本,如果樓上所說(shuō),git pull 同步遠(yuǎn)程,再提交

維他命 回答

答案是在 _config.yml 里面。
但是這個(gè)問(wèn)題不該去看主題的文檔么?

喵小咪 回答

Ubuntu 和 centos 這兩種發(fā)行版都可以添加軟件倉(cāng)庫(kù)源,不過(guò)類(lèi)型不一樣,不能直接調(diào)換使用。

Ubuntu 源于 Debian,使用 deb 包格式。
而 centos 與 RedHat 相近,使用 yum (或叫 EPEL) 包格式。

雖然兩種格式不兼容,不過(guò)對(duì)大部分 GNU 或其它開(kāi)源軟件來(lái)說(shuō),都可以找到 deb 或 yum 源。

痞性 回答

new is not an operator!

In c++, new and operator are both keywords. new int(x) is a(n) (new-)expression. operator new is a function. new operator in your title is new-expression indeed. new-expression will invoke oeprator new function.

placement new的作用就是在operator new分配好的內(nèi)存上執(zhí)行對(duì)象的構(gòu)造,
Yes, that's true. To help you understand, here is a sample:
char* ptr = new char[sizeof(T)]; // ptr use a new-expression(newchar [sizeof(T)] to allocate memory, char is guaranteed to be sizeof 1
T* tptr = new(ptr) T;            // Here is placement new

In a nutshell, placement new will use already allocated memory to construct the object. Where is the already allocated memory from? Either from new expression(free store) or allocated from activation record like int buffer[10], both ok.

那么new operator使用了operator new來(lái)申請(qǐng)內(nèi)存之后是使用了placement new嗎?如果沒(méi)有話(huà)是怎么構(gòu)造的呢?和placement new有關(guān)系嗎?

Above is my answer to your questions

BTW, from the case int buffer[10], we can see pre-new-expression is not a must for placement new(however, note that placement new itself is a new-expression, which will invoke operator new function because all it does is just construct here). If your question is "will placement new always be after operator new/new-expression", it will be a good question.

Update

One year ago, I was confused about how to combine operator new with the constructor then asked a question, FrankHB answered my question: https://tieba.baidu.com/p/508... Now, look back to this question, it is a X-Y question, what really confused me was how does new expression invoke constructor, so it is not related to placement new. Hope it will also inspire you.

Update again

所以我認(rèn)為或許自己和您一年前的疑問(wèn)相似,內(nèi)存申請(qǐng)和構(gòu)造函數(shù)這兩個(gè)過(guò)程是如何結(jié)合的呢?
the word combination(結(jié)合) is not properly now(I also make such mistake as said above), let me re-organize my wording:

new expression does two things:

  1. allocate memory
  2. initialization of the object

You and I(one year ago) are both confused about how does compiler initialize the object(via constructor or else) after allocating. Yes, I mentioned compiler, because C++ standard guarantee new will do the two things, but didn't how to, so, its compiler's work. So, it is not c++'s work, just compiler's. Now, we can see the assembly:

struct Foo
{
    Foo(int i) {}
};
int main()
{
    auto *a = new Foo(1);
}  

-O0:

Foo::Foo(int):
        push    rbp
        mov     rbp, rsp
        mov     QWORD PTR [rbp-8], rdi
        mov     DWORD PTR [rbp-12], esi
        pop     rbp
        ret
main:
        push    rbp
        mov     rbp, rsp
        push    rbx
        sub     rsp, 24
        mov     edi, 1
        call    operator new(unsigned long)
        mov     rbx, rax
        mov     esi, 1
        mov     rdi, rbx
        call    Foo::Foo(int)
        mov     QWORD PTR [rbp-24], rbx
        mov     eax, 0
        add     rsp, 24
        pop     rbx
        pop     rbp
        ret

codes related the new expression is follows: a

    mov     edi, 1
    call    operator new(unsigned long)
    mov     rbx, rax
    mov     esi, 1
    mov     rdi, rbx
    call    Foo::Foo(int)
    mov     QWORD PTR [rbp-24], rbx
    

Now, it is clear enough, right? assemble calls two procedures, oeprator new and Foo::Foo(int)

That's all, cheers!

So, your question is how the two combined?

青瓷 回答

Podfile和Podfile.lock放到遠(yuǎn)程就行了,添加一個(gè).gitignote文件把不需要的東西不用上傳到git上面 http://www.jianshu.com/p/82e1...

萌面人 回答

網(wǎng)關(guān)不通,則外網(wǎng)肯定不通,你可以嘗試下能DHCP獲取地址嗎?

呆萌傻 回答

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime CST-8

怣人 回答

1/3+1/3請(qǐng)用10位小數(shù)表示。

女流氓 回答

。。。參見(jiàn)鏈接:https://blog.lab99.org/post/d...

這里有非常詳盡的配置布驟, 逐一執(zhí)行就好了.
其中建虛擬環(huán)境時(shí)要指定python版本.

virtualenv -p python3 envname

https://www.digitalocean.com/...

落殤 回答
  1. 一般的read要經(jīng)過(guò) 磁盤(pán)-》內(nèi)核緩沖區(qū)-》用戶(hù)區(qū)的兩次拷貝;
  2. 內(nèi)存映射是虛擬內(nèi)存技術(shù),把一段文件直接映射到虛擬內(nèi)存,這樣就像訪(fǎng)問(wèn)內(nèi)存一樣訪(fǎng)問(wèn)文件(含缺頁(yè)中斷)而不需要read的兩次拷貝,虛擬內(nèi)存與物理內(nèi)存的映射操作系統(tǒng)幫你解決,此外內(nèi)存映射還可以用于IPC;
  3. 直接IO就是把1里面的內(nèi)核緩沖區(qū)省略了(因?yàn)閮?nèi)核緩沖啥時(shí)候刷盤(pán)是由內(nèi)核決定的具有不確定性,當(dāng)然用戶(hù)可以顯示sync),用戶(hù)可以自己來(lái)做緩沖;
空白格 回答

let check = (data) => {

let arr = []
for (let k in data) {
    if (arr.indexOf(data[k]) === -1) {
        arr.push(data[k])
    } else {
        return true
    }
} 

}
let data = {

  "bqw": "123",
  "bfr": "1234",
  "asq": "1235",
  "ase": "1236",
  "bd": "1237",
  "bua": "123",
  "bgg": "1238",
  "bug": "1239"

}
if (check(data)) {

alert('重復(fù)')

}
// true
大概就是一個(gè)數(shù)組臨時(shí)保存object的值,indexof來(lái)判斷下一值在數(shù)組中是否存在,存在返回true

不將就 回答

rm -rf /var/lib/docker 然后重啟docker確實(shí)可以解決這個(gè)問(wèn)題,但是鏡像全部沒(méi)有了

笨尐豬 回答

1.確保你的B分支代碼都已經(jīng)提交
2.git checkout A
3.git pull origin A
4.git merge B
5.解決沖突
6.提交

git add .
git commit -am'xxx'
git push origin A
凹凸曼 回答

4 的意思是說(shuō)獲取到sessionid之后再刪除 然后再訪(fǎng)問(wèn) 得不到sessionid嗎?

tomcat應(yīng)該是判斷請(qǐng)求中如果有sessionid就繼續(xù)會(huì)話(huà) , 沒(méi)有的話(huà)就new 一個(gè)新的session 返回sessionid吧
在瀏覽器把包含sessionid的cookie刪了 , 服務(wù)器應(yīng)該會(huì)認(rèn)為是一個(gè)新的會(huì)話(huà) 返回新的sessionid 和路徑?jīng)]有關(guān)系