List> gibt einen Fehler bei der Verwendung der gelöschten Funktion ausC++

Programme in C++. Entwicklerforum
Anonymous
 List> gibt einen Fehler bei der Verwendung der gelöschten Funktion aus

Post by Anonymous »

Ich benötige eine Liste eindeutiger Zeiger auf Ints (ich benötige die zugrunde liegenden Int-Arrays wegen der MPI-Kompatibilität, es handelt sich um Puffer, die für die erledigte Arbeit verfolgt werden). Ich habe eine Problemumgehung, würde aber gerne verstehen, was passiert

Code: Select all

std::list const buf_send2 =
std::list{std::make_unique(this->buffersize)};
Funktioniert aufgrund von
nicht als Initialisierer in der Klasse

Code: Select all

 /usr/include/c++/15.2.1/bits/new_allocator.h:191:11: error: use of deleted function ?
‘std::unique_ptr::unique_ptr(const std::unique_ptr&) [with _Tp = int; _Dp = std::default_delete]’

191 |         { ::new((void *)__p) _Up(std::forward(__args)...); }
|           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ich weiß im Voraus, wie viele Puffer ich in diesem Fall benötige (oder speziell das Maximum), also kann ich einfach ein Array verwenden, aber das deckt meine Schwächen als C++-Programmierer auf und ich wollte versuchen zu verstehen, was passiert.
Das funktioniert ziemlich einfach mit eindeutigen Nicht-Array-Zeigern. Können eindeutige Array-Zeiger nicht verschoben werden? Gibt es eine Möglichkeit, dies richtig zu machen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post