<functional>
Oluşturmaya yardımcı olması standart şablon kitaplığı (stl) işlevleri tanımlar function nesneleri, functors ve bunların Ciltler olarak da bilinir. Bir nesneyi tanımlayan bir tür işlev nesnesidir operator(). İşlev işaretçisi bir işlev nesne olabilir, ancak genellikle daha nesne bir işlev çağrısı sırasında erişilen ek bilgileri depolamak için kullanılır.
#include <functional>
Notlar
Algoritmalar gerektiren iki işlev nesne türleri: Tekli ve ikili. Tekli function nesneleri bir bağımsız değişken gerektirir ve ikili işlevi nesneleri iki bağımsız değişken gerektirir. İşlev işaretçileri ve bir işlevi nesnesi olarak bir algoritma geçirilebilir, ancak işlev nesneleri uyarlanabilir ve kapsamı, esneklik ve stl verimliliğini artırmak. Örneğin, bir algoritma iletilmeden önce bir işlev bağlanacak bir değer gerekiyorsa, işlev işaretçisi kullanılamadı. İşlev bağdaştırıcıları değerine bağlı uyarlanabilir function nesneleri işlev işaretçileri dönüştürün. <functional> Başlığı Uyarlanabilir işlevi nesneler olarak çağrılacak üye işlevler sağlayan üye işlev bağdaştırıcıları da içerir. İşlevler, bağımsız değişkeni belirterek iç içe türü bildirimleri varsa uyarlanabilir ve dönüş türleri. Bu uyumluluk unary_function ya da binary_function Temel sınıftan kalıtımla tüm standart nesne sınıfları sağlayarak gerçekleştirilir C++ standart gerektirir. Function nesnelerini ve bunların bağdaştırıcıları stl varolan uygulamaları yükseltmek ve stl C++ programlama ortamına tümleştirme yardımcı olmak izin verir.
TR1 uzantıları
TR1 Visual C++ uygulamasında bulunan aşağıdaki özellikler eklenir:
A imza çağrısı parenthesized virgülle ayrılmış listesi sıfır veya daha fazla bağımsız değişken türleri tarafından izlenen bir dönüş türü adıdır.
A sarıcı çağrısı çağrısı kapsayıcı türü nesnesidir.
A çağrı sarıcı türü çağrılabilir bir nesneyi tutan ve bu nesneyi iletir bir arama işlemi destekler bir türüdür.
A çağrılabilir nesne çağrılabilir türünde bir nesne olur.
A çağrılabilir türü işlevi, bir üye işlev işaretçisi, üye veri işaretçisi veya nesnelerin görüntülenebilir hemen bir işlev çağrısı işleci solundaki sınıf türü için bir işaretçi.
A hedef nesne çağrısı wrapper nesnesi tarafından tutulan çağrılabilir bir nesne.
Pseudo-function INVOKE(f, t1, t2, ..., tN) aşağıdakilerden birini gösterir:
(t1.*f)(t2, ..., tN)zaman f sınıfının üye işlev için bir işaretçi T ve t1 bir nesne türü olan T veya türünde bir nesne başvurusu T veya türetilen türde bir nesne başvurusu T.
((*t1).*f)(t2, ..., tN)zaman f sınıfının üye işlev işaretçisi olan T ve t1 bir önceki öğe ile açıklanan türlerinden biri değil.
t1.*fzaman f sınıfının üye verilerini bir işaretçidir T ve t1 bir nesne türü olan T ya da türünde bir nesne başvurusu T veya türetilen türde bir nesne başvurusu T.
(*t1).*fzaman f sınıf sınıfının üye verilerini bir işaretçidir T ve t1 bir önceki öğe ile açıklanan türlerinden biri değil.
f(t1, t2, ..., tN)Diğer durumlarda.
Pseudo-function INVOKE(f, t1, t2, ..., tN, R) anlamına gelir INVOKE(f, t1, t2, ..., tN) dönüştürülen örtülü olarak R.
Çağrı sarıcı varsa bir zayıf sonuç türü, kendi üye türünde result_type türüne göre T aşağıdaki gibi saran hedef nesnenin:
T İşlevi bir işaretçidir result_type dönüş türü eşanlamlıdır T.
T Üye işlev işaretçisi olan result_type dönüş türü eşanlamlıdır T.
T Veri üyesi bir işaretçidir result_type veri üyesi bildirilen türü için eşanlamlıdır.
T Üye türü olan bir sınıf türü result_type, sonra result_type eşanlamlıdır T::result_type.
Aksi halde, hiç üye yok result_type.
Her çağrı sarıcı kopya birkurucusu vardýr. A Basit arama sarmalayıcı atama işleci olan kopya yapıcı ve atama işleci değil throw istisnalar vardır bir çağrı sarıcı olan. A çağrısı sarıcı iletme bağımsız değişken listesi kullanarak adlı bir çağrı sarıcı olan t1, t2, ..., tN, burada her ti bir lvalue değil.
Çağrı sarmalayıcılar türlerinden bağımsız olan bu üstbilgi destek işlevi çağrısı işleci tanımlanan T1, T2, ..., TN, 0 <= N <= NMAX. Bu uygulamada değeri NMAX 10'dur.
Sınıflar
Belirtmek için durum özel durum çağrısı tanımlayan bir sınıf operator() , bir işlevi nesne nesne boş olduğundan başarısız oldu. |
|
Üye işlevi sağlayan bir şablon sınıf belirtilen ikili bir işlevin dönüş değeri olumsuzlar. |
|
İlk bağımsız değişken ikili işlevi belirtilen bir değere bağlayarak ikili işlevi nesnesi tekli işlevi nesnesine dönüştürür yapıcı sağlayan şablon sınıfı. |
|
İkili işlevi nesnesi, belirtilen bir değere ikili işlevinin ikinci bağımsız değişken bağlayarak bir tekli işlevi nesnesine dönüştürür yapıcı sağlayan bir şablon sınıf. |
|
Başvuru bağımsız değişkeni ile hazırlarken tekli işlevi nesnesi olarak çağrılacak hiçbir baðýmsýz deðiþken almaz const bir üye işlev verir bağdaştırıcısının sınıf. |
|
İşaretçi değişkeni ile hazırlarken tekli işlevi nesnesi olarak çağrılacak hiçbir baðýmsýz deðiþken almaz const bir üye işlev verir bağdaştırıcısının sınıf. |
|
Başvuru bağımsız değişkeni ile başlatılmış bir ikili işlevi nesnesi olarak adlandırılan tek bir baðýmsýz deðiþken alýr const bir üye işlev verir bağdaştırıcısının sınıf. |
|
İşaretçi değişkeni ile başlatılmış bir ikili işlevi nesnesi olarak adlandırılan tek bir baðýmsýz deðiþken alýr const bir üye işlev verir bağdaştırıcısının sınıf. |
|
Sarar çağrılabilir bir nesne sınıfı. |
|
Karma kodu değeri hesaplayan bir sınıf. |
|
Belirli bir türü çağırarak oluşturulursa sınar bir sınıf bind. |
|
Belirli bir tür yer tutucu ise sınayan bir sınıf. |
|
İzin veren bir bağdaştırıcı sınıfı bir non_const bir başvuru bağımsız değişkeni ile hazırlarken tekli işlevi nesnesi olarak çağrılacak hiç bağımsız üye işlevi. |
|
İzin veren bir bağdaştırıcı sınıfı bir non_const bir işaretçi değişkeni ile hazırlarken tekli işlevi nesnesi olarak çağrılacak hiç bağımsız üye işlevi. |
|
İzin veren bir bağdaştırıcı sınıfı bir non_const üye işlev başvuru bağımsız değişkeni ile başlatılmış bir ikili işlevi nesnesi olarak adlandırılan tek bir baðýmsýz deðiþken alýr. |
|
İzin veren bir bağdaştırıcı sınıfı bir non_const üye işlev işaretçi değişkeni ile başlatılmış bir ikili işlevi nesnesi olarak adlandırılan tek bir baðýmsýz deðiþken alýr. |
|
İkili işlev işaretçisi uyarlanabilir bir ikili işlevi dönüştürür. |
|
Tekli işlev işaretçisi uyarlanabilir tekli işlevdeki dönüştürür. |
|
Başvuru saran bir sınıfı. |
|
Kaydırılan callable nesnenin dönüş türü tutan bir yapı. |
|
Üye işlevi sağlayan bir şablon sınıf belirtilen tekli işlevin dönüş değeri olumsuzlar. |
İşlevler
Bağımsız değişkenler callable nesnesine bağlanır. |
|
İlk bağımsız değişken ikili işlevi belirtilen bir değere bağlayarak ikili işlevi nesnesi tekli işlevi nesnesine dönüştürmek için bir bağdaştırıcı oluşturur Yardımcısı şablon işlevi. |
|
İkili işlevi nesnesi, belirtilen bir değere ikili işlevinin ikinci bağımsız değişken bağlayarak bir tekli işlevi nesnesine dönüştürmek için bir bağdaştırıcı oluşturur Yardımcısı şablon işlevi. |
|
İkili ve iki parametre döndürür. |
|
İkili veya iki parametre döndürür. |
|
İki parametre ikili xor döndürür. |
|
Bir const yapıları reference_wrapper alınan bir bağımsız değişken. |
|
Basit arama sarıcı oluşturur. |
|
İşlev işaretçisi bağımsız değişkenlerle başlatıldı, üye işlevleri için nesne bağdaştırıcıları yapılandırmak için kullanılan yardımcı şablon fonksiyonlar |
|
Başvuru bağımsız değişkenlerle başlatıldı, üye işlevleri için nesne bağdaştırıcıları işlevi oluşturmak için kullanılan yardımcı şablon işlevi. |
|
Tekli yüklemi tamamlayıcı döndürür. |
|
İkili karşılaştırma tamamlayıcı döndürür. |
|
Yardımcısı şablon işlevi Tekli ve ikili uyarlanabilir işlevleri işaretçiler, sırasıyla convert Tekli ve ikili işlevi kullanılır. |
|
Yapıları bir reference_wrapper alınan bir bağımsız değişken. |
|
İki değiştirir function nesneler. |
Yapılar
İkili işlevi nesneyi sağlayan türetilmiş bir sınıf tarafından miras türünü tanımlayan boş bir taban sınıf. |
|
Belirtilen değer türü öğelerinde, sıfıra bölme aritmetik işlem yapan önceden tanımlı işlev nesne sınıfı sağlar. |
|
Belirtilen türde bir değer türü başka bir değere eşit olup olmadığını sınar ikili karşılaştırma. |
|
Belirtilen türde bir değer olup olmadığını sınar ikili karşılaştırma belirtimi, belirtilen türde başka bir değerden daha büyük. |
|
Belirtilen türde bir değer sıfırdan büyük veya bu türde başka bir değere eşit olup olmadığını sınar ikili karşılaştırma. |
|
Belirtilen türde bir değer olup olmadığını sınar ikili bir yüklemi türde başka bir değerden küçüktür. |
|
Belirtilen türde bir değer ya da bu tür başka bir değere eşit olup olmadığını sınar ikili karşılaştırma. |
|
Belirtilen değer türü ve sınamaları için gerçeği öğelerini ya da sonucun falsity birlikte mantıksal işlemi gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Belirtilen değer türü ve sınamaları için gerçeği öğelerini ya da falsity sonucu, Negatiflik, mantıksal işlemi gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Belirtilen değer türü ve sınamaları için gerçeği öğelerini ya da falsity sonucunun disjunction mantıksal işlemi gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Belirtilen değer türü öğeleri üzerinde aritmetik çıkarma işlemi gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Belirtilen değer türü öğelerinde Modülüs aritmetik işlemi gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Belirtilen değer türü öğelerinde çarpma aritmetik işlemi gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Öğe değeri, negatif döndüren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Belirtilen türde bir değer olup olmadığını sınar ikili bir yüklemi türde başka bir değere eşit değildir. |
|
Belirtilen değer türü öğeleri üzerinde aritmetik toplama işlemini gerçekleştiren önceden tanımlanmış bir işlev nesne sınıfı sağlar. |
|
Tekli işlevi nesneyi sağlayan türetilmiş bir sınıf tarafından miras türünü tanımlayan boş bir taban sınıf. |
Nesneleri
Değiştirilebilir değişkenleri için yer tutucu. |
İşleçler
Eşitlik karşılaştırma callable nesnelerin izin vermez. |
|
Eşitsizliği karşılaştırma callable nesnelerin izin vermez. |
Ayrıca bkz.
Başvuru
Standart C++ Kitaplığı'nda iş parçacığı güvenliği