December 23, 2022

Merhaba,

Aşağıdaki kod örneği ile karşılaşınca, diyez ile başlayan satırları silmeliyim diye düşündüm ama bir an için unutmuşum ama derlendi. 😀

void main()
{
    import std.typecons;

    #line 1

    struct S(T)
    {
        private T value;
        mixin Proxy!value;

        this(T x) { value = x; }
    }

    import std.stdio;

    #line 2

    S!int n = 10;
    writeln(++n); // 11

İlk defa görüyorum ve bazı dillerde satır gizleme için kullanılır. DMD için öyle değil belli ki çünkü sadece line ile çalıştığını görüyorum. Evet, ne işe yarıyor acaba?

__LINE__ ile veya debug mode ile bir alakası mı var?

Teşekkürler...

December 23, 2022

On Friday, 23 December 2022 at 03:14:27 UTC, Salih Dincer wrote:

>

__LINE__ ile veya debug mode ile bir alakası mı var?

Evet 😀

Kendin keşfetmek gibisi yok ama bu benim ayıbım çünkü kesin bir yerde yazıyordu da ben okumamışım!

Ehe, işte bu:

Yeni bir satır sayacı başlatıyor. Belki birkaç kuralı vardır, üsttekilerin alttakilerden küçük olması gibi...

    import std.stdio;
    writeln("33: ", __LINE__); // 21
    #line 22
    writeln("35: ", __LINE__); // 22
    S!int n = 10;
    writeln(++n); // 11
    writeln("38: ", __LINE__); // 25
    #line 33
    writeln("40: ", __LINE__); // 33
    #line 44
    writeln("42: ", __LINE__); // 44

Başarılar...