Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. class Objekt {
  5. public:
  6. Objekt(){
  7. std::cout << "Konstruktor obiektu" << std::endl;
  8. }
  9. Objekt(const Objekt& obj) {
  10. std::cout << "Konstruktor kopiujacy obiektu" << std::endl;
  11. }
  12. Objekt(Objekt&& obj) {
  13. std::cout << "Konstruktor move(ravalue) obiektu" << std::endl;
  14. }
  15. Objekt& operator=(const Objekt& obj) {
  16. std::cout << "Normalne przypisanie" << std::endl;
  17. return *this;
  18. }
  19. Objekt& operator=(Objekt&& obj) {
  20. std::cout << "przypisanie move(rvalue)" << std::endl;
  21. return *this;
  22. }
  23. };
  24.  
  25.  
  26. std::vector<Objekt> f(void)
  27. {
  28. std::vector<Objekt> a{ Objekt() };
  29. return a;
  30. }
  31.  
  32.  
  33. template<typename Container, typename Index>
  34. decltype(auto) funkcja(Container&& c, Index i)
  35. {
  36. return std::forward<Container>(c)[i];
  37. }
  38.  
  39.  
  40. int main() {
  41.  
  42. Objekt x = funkcja(f(), 0);
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement