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

  • Konuyu açan Konuyu açan aykutleee
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 319
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
106
Çözümler
5
Beğeni
22
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++:
Genişlet Daralt Kopyala
    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++:
Genişlet Daralt Kopyala
    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++:
Genişlet Daralt Kopyala
    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ı.
Üst