Neue in einer Frequenzfunktion neu aufrufenC++

Programme in C++. Entwicklerforum
Anonymous
 Neue in einer Frequenzfunktion neu aufrufen

Post by Anonymous »

Ich versuche, eine Fabrikfunktion zu schreiben, die ein ContExpr -Objekt erstellt, das neue verwendet. Ist dies überhaupt möglich? Deallocation von bereits verationellem Speicher 10 |

contexpr ~ buffer () {delete [] Daten; } < /p>
< /blockquote>

Code: Select all

#include 
struct Buffer {
int size;
int* data;

constexpr Buffer(int n) : size(n), data(new int[n])
{
for (int i = 0; i < n; ++i) data[i] = i;
}

constexpr ~Buffer() { delete[] data; }

constexpr int get(int i) const { return data[i]; }
static constexpr Buffer Create(int n)
{
Buffer buf(n);
// ...
return buf;

}
};

constexpr void test(int d)
{
Buffer b2(d);
}

int main() {
constexpr Buffer b = Buffer::Create(4);
constexpr Buffer b2(43); // also does not compile: error: ‘Buffer(43)’ is not a constant expression because it refers to a result of ‘operator new’
test(rand()); // This is Ok
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post