http://ddili.org/ders/d/sablonlar.html
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
February 18, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
http://ddili.org/ders/d/sablonlar.html Ali -- |
July 09, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Bir örnek deneyim dedim ancak hata verdi:
Ancak hata verdi :
-- |
July 09, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı: >Şablon tanımlarının evrensel isim alanına çıkartılması gerek: Şimdi denediğim kadarıyla Şablon tanımının evrensel isim alanına(Eğer işlev içinde olmazsa evrensel isim alanı mı deniyor?) çıkartılması gerekmiyor. Ancak eğer şablon özellemesi var ise (: karakteri içeren şablon demek istedim.) evrensel isim alanına çıkarılması gerekiyor. Benim denediğim kadarı ile böyle. Ancak neden şablon özellemesi var iken evrensel alana çıkarılması gerekiyor daha anlayabilmiş değilim. Foruma sormalımıyız ? Şablon özellemeleri evrensel alanda mı olmalı ? Sadece normal şablon tanımlanması nerede olmalı ? Şuan ki davranış doğru mu diye ? -- |
July 09, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Şablon tanımlarının evrensel isim alanına çıkartılması gerek:
Doğrusu, bunun şart mı olduğunu veya bir dmd garipliği mi olduğunu bilmiyorum ama bana böylesi zaten daha doğal geliyor. Şimdi D2 kurallarına baktım. Şablon sayfasında böyle bir kısıtlamadan bahsedilmiyor. Ama main bir işlev olduğuna göre, işlev kurallarına baktım: http://digitalmars.com/d/2.0/function.html İçlerinde BlockStatement bulunabiliyor. BlockStatement'in tanımında da Statement'lar bulunabiliyor. Statement'ların içindeki NonEmptyStatement'lar arasında da şablon (template) bulunmuyor: http://digitalmars.com/d/2.0/statement.html#NonEmptyStatement Buna bakarak işlev içlerinde şablon tanımlanamayacağının bir kural olduğunu düşünebiliriz. Ama o da doğru değil, çünkü şablon özellemesini yazana kadar çalışıyor. Şu da çalışıyor:
Gerçekten emin değilim; ama zaten evrensel alanda tanımlanmaları çok doğal geliyor. Ali -- |
July 09, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Evet, "global namespace" yerine "evrensel isim alanı" dedim. Sen sormak ister misin? İşlev içindeki şablon özellemesine "function-local template specialization" demeli. Ayrıca, "template specialization" diye aratınca dmd'nin bir çok hatası var; bu bulduğun onlardan birisiyle ilgili olabilir: http://d.puremagic.com/issues/buglist.cgi?quicksearch=template+specialization Ali -- |
July 13, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı: >Sen sormak ister misin? İşlev içindeki şablon özellemesine "function-local template specialization" demeli. Sormak isterim ancak ingilizce nasıl bir yazı yazmalıyım bilmiyorum. Konu : function-local template specialization Mesaj :
}
} Error code: Why does an error? Why not give second example error if the problem is the global namespace?
} -- |
July 13, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı: >Fazla karışmış oluyorum ama benim öneriler böyle... :/ Lütfen biraz daha karışın yoksa ingilizce olarak hiç bir derdimi anlatamayacağım. Ben ingilizce delete yerine ne kullanabilirim demeye çalışıyorum yanıt olarak ta delete güvensiz, gerçekten onu kullanmak istemezsin diye bir yanıt alıyorum. Alıntı: >Senin ikinci örneğinde tanımlar evrensel alanda değildi ve özelleme unutulmuştu.) Biliyorum. Şunu demeye çalıştım. Özelleme olmayınca evrensel alanda çalışmasada oluyor. Özelleme olunca neden olmuyor. Bu ne perhiz bu ne lahana turşusu demek istedim. Şu halde mi yollayayım : mesaj : void main() T input(T : string)() Error message : isimsiz.d(6): found 'input' when expecting ';' following statement Shouldn't that work?" And void main() void input(T : string)() Again, Shouldn't that work?" Error message: there is no problem when the templates are in the global namespace. (Eğer küresel alanla ilgili sorun yok diyorsak nereden biliyoruz ? Belki küresel alanda sorun olması yanlış.) Birde konuyu nerede açayım. D.Learn'de açarsam hata varsa hata olduğu anlaşılamaz bence. -- |
July 13, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Fazla karışmış oluyorum ama benim öneriler böyle... :/ Öneği iyice küçültebilirsin. Bu da aynı hatayı veriyor:
Ayrıca bir hata daha keşfettim. T döndürmek yerine void döndürünce hata farklı oluyor:
Bu durumdaki hata:
İngilizceler olarak da kısaca "Shouldn't that work?" (çalışması gerekmez mi?) denebilir. Ek olarak, "there is no problem when the templates are in the global namespace." dense yeter. (Senin ikinci örneğinde tanımlar evrensel alanda değildi ve özelleme unutulmuştu.) Ali -- |
July 13, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Alıntı (canalpay): >Şu halde mi yollayayım : O başlığın sonuna bir de "error" yakışır. :) Alıntı: >mesaj : void main()
} Error message : isimsiz.d(6): found 'input' when expecting ';' following statement Shouldn't that work?" And void main()
} Again, Shouldn't that work?" Sonlarında çift tırnak kalmış. Alıntı: >Error message: there is no problem when the templates are in the global namespace. (Eğer küresel alanla ilgili sorun yok diyorsak nereden biliyoruz ? Belki küresel alanda sorun olması yanlış.) Özelleme olanağı diye bir şey var ve evrensel alanda çalışıyor (ben denedim :)). Zaten beklenen de o. Soru şu: özellemenin bir işlev içindeyken çalışmıyor olması bir hata mı, yoksa zaten işlev içindeki özellemeler desteklenmiyor mu? Bana sorarsan bir derleyici hatası; ve onlar da zaten "lütfen bir bug report aç" diyecekler. Alıntı: >Birde konuyu nerede açayım. D.Learn'de açarsam hata varsa hata olduğu anlaşılamaz bence. Bence orası uygundur. Steven Schveighoffer orayı izliyor. Ama D grubu da olur. Ali -- |
July 14, 2010 Yeni ders: Şablonlar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Alıntı (canalpay): >Bunu nerede istiyeceğim ? Daha doğrusu Andrei beni takar mı nereye yazsam takar? Son cümle çok güzel.canalpay,herhangi bir resmi foruma yazarsan takar.Zaten takmak zorunda.D dilini milyarlarca insan bilmiyor.Bilenler ise dili oluşturanlar için çok önemlidir.Sen yaz,takmazlarsa bastırırız. -- |