Size: a a a

2021 February 14

SH

Serhii Herashchenko in supapro.cxx
std::slavik
а зачем мы size присваиваем
но вообще да, пушбек должен увеличивать сайз
источник

SI

Shack Ira in supapro.cxx
std::slavik
bufList.head = new SinglyLinkedList(other.head);
это что такое?
я не понимаю как присовить хэд
источник

SI

Shack Ira in supapro.cxx
чтобы оно создало новый объект в памяти с такими же данными
источник

s

std::slavik in supapro.cxx
push_back что делает?
источник

SI

Shack Ira in supapro.cxx
вставляет элемент в конец списка
источник

SI

Shack Ira in supapro.cxx
template<typename T>
SinglyLinkedList<T>::SinglyLinkedList(const SinglyLinkedList& other)
{
while (current->pNext != nullptr)
{
 this->push_back(current->data);
 ++this->size;
 current = current->pNext;
}
}
источник

SI

Shack Ira in supapro.cxx
попробовал сделать так
источник

SI

Shack Ira in supapro.cxx
исключение кидает
источник

D

Danya in supapro.cxx
Aleksander Mironov
Что делать, если нужен тимплей и для обычных указателей и для unique_ptr?
Какой стандарт?
источник

AM

Aleksander Mironov in supapro.cxx
Danya
Какой стандарт?
17
источник

D

Danya in supapro.cxx
template <typename TPointer>
constexpr inline is_raw_or_unique_ptr = std::is_pointer_v<TPointer>
|| std::is_same_v<TPointer, std::unique_ptr<typename std::pointer_traits<TPointer>::element_type>>;

template <typename TPointer>
void foo()
{
 static_assert(is_raw_or_unique_ptr<TPointer>, "TPointer should be raw or unique pointer");
}
источник

AM

Aleksander Mironov in supapro.cxx
Ох мля...
источник

D

Danya in supapro.cxx
Что?)
источник

AM

Aleksander Mironov in supapro.cxx
Забористо
источник

D

Danya in supapro.cxx
Aleksander Mironov
Забористо
Посмотри исходники Boost.Hana :)
источник

s

std::slavik in supapro.cxx
Shack Ira
вставляет элемент в конец списка
template<typename T>
SinglyLinkedList<T>::SinglyLinkedList(const SinglyLinkedList &other): SinglyLinkedList(){
   for(auto current = other.head; current != nullptr; current = current->pNext){
       push_back(current->data);
   }
}
источник

AM

Aleksander Mironov in supapro.cxx
Danya
template <typename TPointer>
constexpr inline is_raw_or_unique_ptr = std::is_pointer_v<TPointer>
|| std::is_same_v<TPointer, std::unique_ptr<typename std::pointer_traits<TPointer>::element_type>>;

template <typename TPointer>
void foo()
{
 static_assert(is_raw_or_unique_ptr<TPointer>, "TPointer should be raw or unique pointer");
}
Я кстати наверное не правильно вопрос задал.
Мне нужно что бы тимплейт обрабатывал И умные указатели и обычные.
Я понимаю (наверное) уже как из примера вывести что мне надо.

Но вопрос был к тому, что я же не могу вытворять что хочу внутри тимплейта, если он принимает умный указатель, как если бы это было бы просто некое значение.

MyTemplate<int>
MyTemplate<int*>
MyTemplate<unique_ptr<int» «« вот тут же может произойти что то не хорошее?
источник

SI

Shack Ira in supapro.cxx
std::slavik
template<typename T>
SinglyLinkedList<T>::SinglyLinkedList(const SinglyLinkedList &other): SinglyLinkedList(){
   for(auto current = other.head; current != nullptr; current = current->pNext){
       push_back(current->data);
   }
}
СПАСИБО ОГРОМНОЕ!
источник

ПК

Побитый Кирпич... in supapro.cxx
Aleksander Mironov
Я кстати наверное не правильно вопрос задал.
Мне нужно что бы тимплейт обрабатывал И умные указатели и обычные.
Я понимаю (наверное) уже как из примера вывести что мне надо.

Но вопрос был к тому, что я же не могу вытворять что хочу внутри тимплейта, если он принимает умный указатель, как если бы это было бы просто некое значение.

MyTemplate<int>
MyTemplate<int*>
MyTemplate<unique_ptr<int» «« вот тут же может произойти что то не хорошее?
Чем умный указатель у тебя отличается от обычного?
источник

AM

Aleksander Mironov in supapro.cxx
Побитый Кирпич
Чем умный указатель у тебя отличается от обычного?
Умный отслеживается компилятором?
источник