Narzędzia użytkownika

Narzędzia witryny


bind

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
bind [2008/04/14 08:56]
maciejp
bind [2008/04/14 08:59]
maciejp
Linia 229: Linia 229:
  
 Warunkiem poprawnej kompilacji jest dokładne określenie typu szablonu obiektu function (zasada działania ''​boost::​function''​ wykracza poza ten artykuł). Warunkiem poprawnej kompilacji jest dokładne określenie typu szablonu obiektu function (zasada działania ''​boost::​function''​ wykracza poza ten artykuł).
 +
  
 =====Przeciążone operatory===== =====Przeciążone operatory=====
  
-Przeciązone operatory dla boost::bind pojawiły się w Boost 1.33+Przeciązone operatory dla ''​boost::bind'' ​pojawiły się w Boost 1.33
  
-Obiekty funkcyjne produkowane przez boost::bind przeciążają logiczny operator przecenia ! oraz operatory relacji ==, !=, <, <=, >, >=.+Obiekty funkcyjne produkowane przez ''​boost::bind'' ​przeciążają logiczny operator przecenia ​''​!'' ​oraz operatory relacji ​''​==''​''​!=''​''​<''​''​<=''​''​>''​''​>=''​.
  
 <​code>​ <​code>​
Linia 246: Linia 247:
 </​code>​ </​code>​
  
-gdzie logical_not jest funktorem przyjmującym jeden argument x i zwracający !x.+gdzie ''​logical_not'' ​jest funktorem przyjmującym jeden argument ​''​x'' ​i zwracający ​''​!x''​.
  
 <code cpp> <code cpp>
 bind(f, ...) op x bind(f, ...) op x
 </​code>​ </​code>​
-op jest operatorem relacji, wyrażniu temu odpowiada+''​op'' ​jest operatorem relacji, wyrażniu temu odpowiada
  
 <code cpp> <code cpp>
 bind(relation(),​ bind(f, ...), x) bind(relation(),​ bind(f, ...), x)
 </​code>​ </​code>​
-gdzie relation jest funktorem przyjmującym dwa argumenty a i b zwracającym a op b.+gdzie ''​relation'' ​jest funktorem przyjmującym dwa argumenty ​''​a'' ​''​b''​ oraz zwracającym ​''​a op b''​.
  
-Przeciążenie tych operatorów umożliwia na konwencjonalne negowanie wyniku boost::​bind:​+Przeciążenie tych operatorów umożliwia na konwencjonalne negowanie wyniku ​''​boost::bind''​:
  
 <code cpp> <code cpp>
Linia 264: Linia 265:
 </​code>​ </​code>​
  
-oraz na porównywanie wyników boost::bind z wartościami:​+oraz na porównywanie wyników ​''​boost::bind'' ​z wartościami:​
  
 <code cpp> <code cpp>
Linia 276: Linia 277:
 </​code>​ </​code>​
  
-albo z innym wyrażeniem boost::​bind:​+albo z innym wyrażeniem ​''​boost::bind''​:
  
 <code cpp> <code cpp>
 std::​sort(first,​ last, bind(&​X::​name,​ _1) < bind(&​X::​name,​ _2)); std::​sort(first,​ last, bind(&​X::​name,​ _1) < bind(&​X::​name,​ _2));
 </​code>​ </​code>​
 +
  
  
Linia 286: Linia 288:
 =====Inny przykład użycia===== =====Inny przykład użycia=====
  
-boost::bind umożliwia w przeciwnieństwie do funkcji z biblioteki standardowej (służących do tworzenia adpterów funkcji) bardzo elastyczną pracę z kodem.+''​boost::bind'' ​umożliwia w przeciwnieństwie do funkcji z biblioteki standardowej (służących do tworzenia adpterów funkcji) bardzo elastyczną pracę z kodem.
  
 <code cpp> <code cpp>
Linia 346: Linia 348:
 </​code>​ </​code>​
  
-Użycie funkcji standardowych (std::​mem_fun_ref i std::​mem_fun) zmusza do zmian także pętli for_each po każdej modyfikacji typu przechowywanego przez wektor, a nawet uniemożliwia dalszą pracę (brak obsługi w przypadku użycia sprytnych wskaźników).+Użycie funkcji standardowych (''​std::​mem_fun_ref'' ​''​std::​mem_fun''​) zmusza do zmian także pętli ​''​for_each'' ​po każdej modyfikacji typu przechowywanego przez wektor, a nawet uniemożliwia dalszą pracę (brak obsługi w przypadku użycia sprytnych wskaźników).
bind.txt · ostatnio zmienione: 2008/04/14 09:00 przez maciejp