24 Ekim 2015 Cumartesi

std::ref

std::ref bir reference_wrapper döner
std::reference_wrapper nesnesini oluşturmak için genellikle std::ref kullanırız
#include <functional>
int a = 5;
auto b = ref(a);
b.get() = 3;
cout<<a<<endl;
pair <reference_wrapper<int>, int> test(b, 0);
a = 1000;
cout<<test.first<<endl;
Özellikle std::bind ile kullanımı çok yaygındır.
void print(int i) {
    std::cout << i << '\n';
}

int main() {
    int i = 10;

    auto f1 = std::bind(print, i);
    auto f2 = std::bind(print, std::ref(i));

    i = 20;

    f1();
    f2();
}
Çıktı olarak şunu alırız.
10
20





Hiç yorum yok:

Yorum Gönder