c++11
-
c++'a fonksiyonel özellikler getiriyor.
örneğin quicksort algoritmasını implement edelim:
template<class it>
void quicksort(it begin, it end)
{
if (begin == end)
return;
it i = partition(begin, end, [begin](decltype(*begin) x ){return x < *begin;});
if (i != end)
quicksort(begin, i);
if (i != begin)
quicksort(i, end);
else
quicksort(++i, end);
}
burada partition fonksiyonuna geçtiğimiz 3. argüman, bir predicate, bir lambda
begin iterator'unu capture ettik. (bkz: closure)
decltype da type inference için.
(bkz: quicksort/#25948418) -
(bkz: c!!11)
-
şu an itibariyle en iyi desteği gcc 4.7 veriyor.
-std=c++11 flag'i ile kullanabilirsiniz.
windows'a kurmak için:
http://www.equation.com/…et/equation.cmd?fa=fortran
c:\mingw altına kurarsanız eclipse cdt otomatik görüyor.
yalnız yeni class'ların bir kısmı hala tr1 namespace'inde kalmış.
örnek kod:
----------------
#include <vector>
#include <iostream>
#include <algorithm>
#include <tr1/memory>
using namespace std;
int main()
{
vector<int> vec = {1,2,4,5,6,7,8,9};
tr1::shared_ptr<int> s_o(new int[10]);
cout << *s_o << endl;
for(auto x : vec)
cout << x << " ";
auto x = 5;
auto y = 7;
auto i = find_if( vec.begin(), vec.end(), [=](int i) { return i > x && i < y; } );
cout << endl << *i;
return 0;
} -
son değişiklikler ile beraber daha developer/programmer dostu olmuş programlama dili.
-
(bkz: c++/cx)
-
bjarne stroustrup ve herb sutter ustalar subat 2012 basinda microsoft'ta anlatacaklar.
http://channel9.msdn.com/…ngnative/goingnative-2012
bize gelen kod* yine asagi yukari ayni olacak elbet ama merak iste, gidip gormek gerekir*. -
partial application örneği:
bool divisibleby(int factor, int value)
{
return value % factor == 0;
}
auto divisibleby2 = bind(&divisibleby, 2, _1);
divisibleby2(3); // returns false -
yeni gelen standartları öğrenmek istiyorsanız std::tuple ın implementasyonuna bakmak yeterli. adamlar ne taklalar atmış öyle
-
decltype'i anlayana kadar anamı ağlatan modern c++ oluşumu.
ekşi sözlük kullanıcılarıyla mesajlaşmak ve yazdıkları entry'leri
takip etmek için giriş yapmalısın.
hesabın var mı? giriş yap