Słyszałem wszystkie te nowe (na /.) O C++ 0x nie mając już pojęcia, ale nie mam pojęcia, co to jest? Czy ktoś może mi wytłumaczyć?Co to są pojęcia?
Odpowiedz
koncepcje ogólna funkcja programowania, które pozwalają ktoś pisania kodu szablonie określić wymagania, które parametry typu muszą spełniać.
Na przykład niektóre typy kolekcji wymagają parametru typu dla kolekcji, aby zdefiniować operatora <. Programista może więc zdefiniować koncepcję o nazwie LessThanComparable, która mówi kompilatorowi, że parametr typu do klasy szablonowej musi mieć zdefiniowany operator <. Jeśli użytkownik szablonu spróbuje utworzyć instancję szablonu za pomocą typu, który nie ma koncepcji LessThanComparable (tj. Nie ma funkcji operatora <), kompilator może emitować prosty komunikat o błędzie, a nie torrent komunikatów o błędach związanych z szablonowym kodem. Kompilator może również skorzystać z dodatkowych informacji dostarczanych przez koncepcje w celu wygenerowania bardziej wydajnego kodu.
To jest trochę przesadzone, ale myślę, że daje ogólne pojęcie za koncepcjami.
Jeśli chcesz wypróbować niektóre z możliwości koncepcji, przejrzyj bibliotekę sprawdzania Boost.Concept. Nie sądzę, żeby zapewniał pełen zakres możliwości, które miały być w standardzie, ale jest to dobre miejsce na start.
Możesz również spojrzeć na ConceptC++, tam jest dobra definicja pojęć.
Oto artykuł, który myślę, że pomogłoby:
http://www.devx.com/SpecialReports/Article/38864
Decyzja, aby usunąć je omówiono kilka razy tutaj na SO, jak również. Mogą one okazać się interesujące:
- 1. Co to są hipotetyczne indeksy?
- 2. Co to są `+:` i `-:`?
- 3. Co to są CoreDataGeneratedAccessors?
- 4. Co to są fortuny?
- 5. Co to są RFC?
- 6. Co to są kości Potężnego CMS
- 7. Co to są "pilne dane"?
- 8. Co to są ograniczone szablony?
- 9. Co to są Iteratory SCARY?
- 10. Co to są opcje + FollowSymLinks?
- 11. Co to są operatorzy zniesione?
- 12. Co to są błędy xsession?
- 13. Co to są pliki FTL
- 14. Co to są opcje skrótów?
- 15. Co to są połączenia ZygoteInit?
- 16. Co to są czyste zmienne?
- 17. Co to są moduły CSS3?
- 18. Co to jest Serializable? Co to znaczy?
- 19. Co to są pojemniki w Javie
- 20. Co to są pliki .pidb MonoDevelop?
- 21. Co to są usługi internetowe REST?
- 22. Co to są pliki .tpl.html? (angularjs)
- 23. Co to są klasy encji w php
- 24. Co to są pliki `rc` w nodejs?
- 25. Co to są zmienne specyficzne dla procesu?
- 26. Co to są instrukcje "jest" w D?
- 27. Co to są dostawcy w Angular2?
- 28. Co to są zespoły Side-by-Side?
- 29. Co to są dict_keys, dict_items i dict_values
- 30. Co to są doskonałe dzienniki analizy inteligencji?
Huh, to prawie dokładnie to, co powiedział link EBGreen! Dziwny zbieg okoliczności, co? – jkeys
Niezupełnie. Przeczytałem ten artykuł, kiedy został opublikowany po raz pierwszy prawie rok temu. Mam możliwość zachowania informacji :-) – Ferruccio
świetna odpowiedź. to było jedno z pytań o C++, którego bałem się zapytać – chester89