| jsc Temat założony przez niniejszego użytkownika | Z tematu "[C++11]Uniwersalny typ dla wyrażeń lambda (?)", nie bardzo rozumiem kodu » 2012-01-19 19:15:14 Pekfos w ostatnim poście tematu zamieścił następujący kod: #include <functional>#include <iostream>
 
 template < class T >
 struct A {
 T t;
 std::function < void( T & ) > ff;
 A( T nt, std::function < void( T & ) > f )
 : t( nt )
 , ff( f )
 { }
 void exe() { ff( t ); };
 void prn() { std::cout << t << std::endl; }
 };
 
 int main() {
 int nw = 6;
 A < int > na( 42, std::function < void( int & ) >([ & ]( int & tr ) { tr = nw; } ) );
 na.prn();
 na.exe();
 na.prn();
 }
 
Intryguje mnie następujący fragment: std::function < void( int & ) >([ & ]( int & tr ) { tr = nw; } )
a szczególne ostry nawias, czy to jest rzutowanie int& na void i w sumie to jest typ zwracany tego wyrażenia lambda. A ogólnie co to jest std::function (przepraszam, ale ta nazwa jest na tyle nieszczęśliwa, że Google wcale nie pomaga). | 
|  | 
| pekfos | » 2012-01-19 19:17:00 | 
|  | 
| jsc Temat założony przez niniejszego użytkownika | » 2012-01-19 19:28:20 O ile zrozumiałem, std::function to jest rodzaj klasy macierzystej obiektów funkcyjnych (czyli funktorów).
 Dalej mam problem z nawiasami ostrymi.
 | 
|  | 
| DejaVu | » 2012-01-19 19:29:42 Tworzysz nową filozofię świata... poczytaj o szablonach :) | 
|  | 
| jsc Temat założony przez niniejszego użytkownika | » 2012-01-19 19:41:06 Dobra, ogólnie to się orientuję co to są szablony. Mi się rozbija o konstrukcję typu: < void( T & ) >, chodzi mi o to, że (piszę jak najogólniej) parametrSzablonu1 (parametrSzablonu2) wygląda jak wywołanie funkcji (czytając syntaktycznie), a ile się orientuję specjalizować szablon można tylko przez podanie typu wprost, wartość stałej, nazwy zastępcze dla szablonów klas (pojęcie zaczerpnięte z http://xion.org.pl/files/texts/mgt/html/2_4.html  Kurs Xiona, część szablony[/a]. | 
|  | 
| pekfos | » 2012-01-19 19:46:34 Specjalizować, czy konkretyzować? Bo to nie to samo :P Jak już używasz słownictwa, to używaj poprawnego :) | 
|  | 
| akwes | » 2012-01-19 19:54:02 | 
|  | 
| DejaVu | » 2012-01-19 19:56:50 Chciałbym jednak zauważyć, że rozmawiamy o standardzie C++11, a nie o standardzie C++, który obowiązywał jeszcze przed pojawieniem się C++11... myślę, że wszyscy tu zgromadzeni hobbystycznie będą się dokształcali z nowego standardu i możemy tylko liczyć na to, że będą chcieli się dzielić swoją wiedzą w postaci artykułów. | 
|  | 
| « 1 »  2 |