Thread overview
Algoritmaları sınıf fonksiyonları ile kullanmak
Jul 16, 2017
kerdemdemir
Jul 16, 2017
kerdemdemir
July 16, 2017

Benim kodum biraz daha karışık ama olayın özeti şu aslında,

A[] dizi;

struct A
{
     bool Hesapla()
     {
          return x == 5;
     }

     int x;
}

bool kareOlusturmaSorunlumu = dizi.any!( a => a.Hesapla() ) ; // --> Bu satırın çalışmasını beklerdim

Dizinin içinde elemanlardan biri false dönüyorsa sonucun false olmasını istiyorum. Fakat derleyemedim. Bir fikriniz olurmu acaba.

Error 1 Error: template std.algorithm.searching.any!"a.KareOlusturalabilirmi()".any cannot deduce function from argument types !()(SiyahKareAdayi[]), candidates are: C:\Users\Erdem\documents\visual studio 2013\Projects\GMMD\GMMD\main.d 119

Error 2 std.algorithm.searching.any!"a.KareOlusturalabilirmi()".any(Range)(Range range) if (isInputRange!Range && is(typeof(unaryFun!pred(range.front)))) C:\D\dmd2\src\phobos\std\algorithm\searching.d 159

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 16, 2017

Evet efenim eğer Hesapla şöyle bir fonksiyon ise

bool Hesapla(int a, int b);

Ve biz bu fonksiyonu argumanları olmadan çağırmaya çalışıyorsak benim aldığım hataları alıyormuşuz. Burda hata mesajının anlaşılması biraz zormu yoksa bana mı öyle geldi.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 16, 2017

Bu, D'de bilinen ve sıkça karşılaşılan bir sorun. Ancak, dil sorunundan öte, bir gerçekleştirme sorunu: üye işlevler ve delegate'ler üzerinde işleyecekleri ortamı gösteren gösterge (context pointer) içerirler. dmd'nin ön yüzünde bu context için yalnızca tek göstergelik yer var. Hem delegate hem üye işlev bir araya gelince ikisine birden yer kalmıyor. İlgili hata raporu:

https://issues.dlang.org/show_bug.cgi?id=5710

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]