Forum: D Programlama Dili RSS
std.string.cmp hatası
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: std.string.cmp hatası
dmd/src/phobos/std/string.d dosyasındaki şu satır:

            if (i1 == s1.length) return s2.length - i2;

şöyle olmalı:

            if (i1 == s1.length) return i2 - s2.length;

Yoksa uzunlukları nedeniyle farklı çıkmaları gereken farklı türden dizgilerde sonuç hatalı çıkabiliyor. Şu program ilk assert'te takılıyor:

import std.cstream;
import std.string;
 
int benim_cmp(C1, C2)(in C1[] s1, in C2[] s2)
{
    return cmp(s1, s2);
}
unittest
{
    assert(benim_cmp("aa", "aaa"d) < 0);
    assert(benim_cmp("aaa", "aa"d) > 0);
    assert(benim_cmp("aa", "aa"d) == 0);
}
 
void main()
{}

Aynı dosyadaki icmp fonksiyonu doğru...

Şu hatayı açtım:

  http://d.puremagic.com/issues/show_bug.cgi?id=3355

Ali
canalpay (Moderatör) #2
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Hata düzeltilmiş. Çok çalışmaya başladılar. 2.048'de de çok fazla hata ayıklarlarlar.(Ayrıca phobos artık Andrei tekelinden dmd'de Walter tekelinden çıkmış gibi gözüküyor :-) )

Keşke biran önce dil kuralları sabitleşsede sadece hata ayıklaması yapsalar.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 02:55:01 (UTC -08:00)