Çözüldü make_unique fonksiyonunu c++11 de nasıl kullanabilirim?

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

aykutleee

Üye
Üye
Mesaj
108
Çözümler
5
Beğeni
25
Puan
454
Ticaret Puanı
0
eklemek istediğim bir sistemde bu şekilde kod blogu var ama make_unique error verdiriyor. C++11 kullanıyorum nasıl düzenlemem gerek ?

C++:
    for (size_t i = 0; i < s_gridBooks.size(); i++) {
        if (i < SPECIAL_INVENTORY_OPEN_PAGE_COUNT) {
            s_gridBooks[i] = std::make_unique<CGrid>(SPECIAL_INVENTORY_WIDTH,SPECIAL_INVENTORY_HEIGHT);
            continue;
        }
        if (bookInvPoint > 0 && bookInvPoint <= SPECIAL_INVENTORY_HEIGHT)
            nSizeBook = bookInvPoint;
        else if (bookInvPoint >= SPECIAL_INVENTORY_HEIGHT)
            nSizeBook = SPECIAL_INVENTORY_HEIGHT;
        else
            nSizeBook = 0;
        s_gridBooks[i] = std::make_unique<CGrid>(SPECIAL_INVENTORY_WIDTH,nSizeBook);
        bookInvPoint -= SPECIAL_INVENTORY_HEIGHT;
    }
    for (size_t j = 0; j < s_gridBooks.size(); j++) {
        s_gridBooks[j]->Clear();
        for (auto i = SPECIAL_INVENTORY_PAGE_SIZE * j; i < SPECIAL_INVENTORY_PAGE_SIZE * (j+1); ++i)
        {
            if (!(item = GetCompany()->GetOwner()->GetSkillBookInventoryItem(SKILL_BOOK_INVENTORY_SLOT_START + i)))
                continue;
            s_gridBooks[j]->Put(i - SPECIAL_INVENTORY_PAGE_SIZE * j, 1, item->GetSize());
        }
    }
 
Çözüm
@Trashy teşekkür ederim çözdüm
Öncelikle eklemeye çalıştığım sistem ; "official-inventory-expansion"

Çözüm;

C++:
    for (size_t i = 0; i < s_gridBooks.size(); i++) {
        if (i < SPECIAL_INVENTORY_OPEN_PAGE_COUNT) {
         /*s_gridBooks[i] = std::make_unique<CGrid>(SPECIAL_INVENTORY_WIDTH,SPECIAL_INVENTORY_HEIGHT);  */  /*  C++14 C++17 */
            s_gridBooks[i] = std::unique_ptr<CGrid>(new CGrid(SPECIAL_INVENTORY_WIDTH,SPECIAL_INVENTORY_HEIGHT)); /* C++11 */

            continue;
        }
        if (bookInvPoint > 0 && bookInvPoint <= SPECIAL_INVENTORY_HEIGHT)
            nSizeBook = bookInvPoint;
        else if (bookInvPoint >= SPECIAL_INVENTORY_HEIGHT)
            nSizeBook = SPECIAL_INVENTORY_HEIGHT;
        else...
Aldığın uyarıyı ekler misin?
 
@Trashy teşekkür ederim çözdüm
Öncelikle eklemeye çalıştığım sistem ; "official-inventory-expansion"

Çözüm;

C++:
    for (size_t i = 0; i < s_gridBooks.size(); i++) {
        if (i < SPECIAL_INVENTORY_OPEN_PAGE_COUNT) {
         /*s_gridBooks[i] = std::make_unique<CGrid>(SPECIAL_INVENTORY_WIDTH,SPECIAL_INVENTORY_HEIGHT);  */  /*  C++14 C++17 */
            s_gridBooks[i] = std::unique_ptr<CGrid>(new CGrid(SPECIAL_INVENTORY_WIDTH,SPECIAL_INVENTORY_HEIGHT)); /* C++11 */

            continue;
        }
        if (bookInvPoint > 0 && bookInvPoint <= SPECIAL_INVENTORY_HEIGHT)
            nSizeBook = bookInvPoint;
        else if (bookInvPoint >= SPECIAL_INVENTORY_HEIGHT)
            nSizeBook = SPECIAL_INVENTORY_HEIGHT;
        else
            nSizeBook = 0;
        /*s_gridBooks[i] = std::make_unique<CGrid>(SPECIAL_INVENTORY_WIDTH,nSizeBook);*/   /* C++14 C++17 */
        s_gridBooks[i] = std::unique_ptr<CGrid>(new CGrid(SPECIAL_INVENTORY_WIDTH,nSizeBook)); /* C++11 */
        bookInvPoint -= SPECIAL_INVENTORY_HEIGHT;
    }
    for (size_t j = 0; j < s_gridBooks.size(); j++) {
        s_gridBooks[j]->Clear();
        for (auto i = SPECIAL_INVENTORY_PAGE_SIZE * j; i < SPECIAL_INVENTORY_PAGE_SIZE * (j+1); ++i)
        {
            if (!(item = GetCompany()->GetOwner()->GetSkillBookInventoryItem(SKILL_BOOK_INVENTORY_SLOT_START + i)))
                continue;
            s_gridBooks[j]->Put(i - SPECIAL_INVENTORY_PAGE_SIZE * j, 1, item->GetSize());
        }
    }
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst