SORU
12 Mayıs 2014, PAZARTESİ


Garip " -&;* gt []&; abm C kaynak kod içinde ifade".kütüphane tepki

Burada cpp.react library: belgelerinde bulduğum C parçacık

auto in = D::MakeVar(0);
auto op1 = in ->* [] (int in)
{
    int result = in /* Costly operation #1 */;
    return result;
};

Asla ->* [] gösterimde gördüm. İlk olarak, sadece bir yazım hatası olduğunu düşündüm, ama aynı zamanda source code: böyle bir ifade buldum

auto volume = (width,height,depth) ->* [] (int w, int h, int d) {
    return w * h * d;
};

Bu C 11 (ya da 14 C) geçerli mi? Bu ne anlama geliyor?

CEVAP
12 Mayıs 2014, PAZARTESİ


->* görüyorum bağlantılı sayfada tek örnektir bu

auto in = D::MakeVar(0);

auto op1 = in ->* [] (int in)
{
    int result = in /* Costly operation #1 */;
    return result;
};

auto op2 = in ->* [] (int in)
{
    int result = in /* Costly operation #2 */;
    return result;
};

İşte benim tahminim - türü ne olursa olsunpointer-to-member operator ->*ve bu da aşırı yüklenmiş operatör için ikinci bağımsız değişken, bir fonksiyon aşırı yükleme, yani lambda ifadesi. nesne D::MakeVar() tarafından döndürülür

Bu örneğin gibi

auto volume = (width,height,depth) ->* [] (int w, int h, int d) {
    return w * h * d;
};

Sanırım ne tür width, height & depth , aşırı virgül operatörü ve sonucu verir aynı tür olarak ne MakeVar verir, ya da başka bir tür aşırı yükleme ->*. Geri kalan ilk örnek olarak aynıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GirlSanctuaryBlog

    GirlSanctuar

    28 Aralık 2011
  • magnum33563

    magnum33563

    8 NİSAN 2011
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007