Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2018, 13:43   #1
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию Реализовать шаблон класса stack

Реализовать некопируемый перемещаемый шаблон класса stack для некопируемых перемещаемых типов с методами:

push_emplace, принимающего те же аргументы, что и конструктор для T, где T - пареметр шаблона;
head, возвращающего ссылку на верхушку стека;
pop, выполняющего снятие элемента с верхушки стека.

Код:
    template <typename T>
class stack
{
public:
  template <typename ... Args>
  void push_emplace(Args&&... value);
  void push(T&& value);
  const T& head() const;
  T pop();
};

некопируемый перемещаемый шаблон класса stack для некопируемых перемещаемых типов
Код:
 template <typename ... Args>
  void push_emplace(Args&&... value);
Объявление этих функций , не совсем понимаю синтаксис с && и ...
NDrago вне форума Ответить с цитированием
Старый 06.11.2018, 13:53   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

https://www.artima.com/cppsource/rvalue.html
https://en.cppreference.com/w/cpp/la...value_category
https://en.cppreference.com/w/cpp/la...parameter_pack
p51x на форуме Ответить с цитированием
Старый 06.11.2018, 13:57   #3
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

к сожалению с английским большая беда , не могли бы вы в двух словах объяснить как это работает
NDrago вне форума Ответить с цитированием
Старый 06.11.2018, 14:05   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Гугл транслейт нормально переводит технические статьи с англ + там куча примеров.
Поставьте вместо en ru или найдите переведенную современную книгу по языку.

А переводить и печать сюда несколько статей с кодом это... Вон на Хабре есть и переводы, и просто статьи, лишь поискать надо.
https://habr.com/post/226229/

https://habr.com/post/101430/
https://habr.com/post/133084/
https://habr.com/post/228031/
p51x на форуме Ответить с цитированием
Старый 06.11.2018, 14:09   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от NDrago Посмотреть сообщение
к сожалению с английским большая беда , не могли бы вы в двух словах объяснить как это работает
это нельзя объяснить в двух словах.
предполагается, что вы уже осилили rvalue-reference,
и шаблоны хотя бы на базовом уровне.

https://habr.com/post/242639/
_Bers вне форума Ответить с цитированием
Старый 06.11.2018, 15:47   #6
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Гугл транслейт нормально переводит технические статьи с англ + там куча примеров.
Поставьте вместо en ru или найдите переведенную современную книгу по языку.

А переводить и печать сюда несколько статей с кодом это... Вон на Хабре есть и переводы, и просто статьи, лишь поискать надо.
https://habr.com/post/226229/

https://habr.com/post/101430/
https://habr.com/post/133084/
https://habr.com/post/228031/

Спасибр , по этой теме ещё поясните пожалуйста
некопируемый перемещаемый шаблон класса stack для некопируемых перемещаемых типов

Вот эта игра слов непонятна ,некопируемый перемещаемый это означает что отсутствует конструктор копирования , но реализована перегрузка оператора перемещения ?
NDrago вне форума Ответить с цитированием
Старый 06.11.2018, 16:26   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от NDrago Посмотреть сообщение
к сожалению с английским большая беда
https://ru.cppreference.com/w/cpp/la...value_category
Надеюсь нет необходимости переделывать для вас каждую ссылку.
И имейте ввиду - в этом деле без английского далеко не уедете.
waleri вне форума Ответить с цитированием
Старый 06.11.2018, 17:05   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от NDrago Посмотреть сообщение
Вот эта игра слов непонятна ,некопируемый перемещаемый это означает что отсутствует конструктор копирования , но реализована перегрузка оператора перемещения ?
Какая ж это игра слов? Конструктор копирования и оператор копирования, конструктор перемещения и оператор перемещения... они обычно ходят парами. А так - да, как-то так, только перегружать не обязательно если стандартные устраивают.
p51x на форуме Ответить с цитированием
Старый 06.11.2018, 22:58   #9
CppLinux345
Пользователь
 
Регистрация: 26.09.2018
Сообщений: 23
По умолчанию

&& - это rvalue ссылка,то есть ссылка на правую часть выражения
CppLinux345 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать шаблон класса и вызвать функцию такого класса? Ilnaz_aziat Общие вопросы C/C++ 1 04.07.2017 22:58
Создать шаблон класс Stack Sashka_BezDelnik Общие вопросы C/C++ 1 02.10.2012 00:28
Шаблон класса brewsters Общие вопросы C/C++ 3 15.07.2012 21:00
C++шаблон класса cati Помощь студентам 1 30.04.2010 00:24
Шаблон класса androidvsu Общие вопросы C/C++ 2 26.04.2009 11:57