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 |
#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
}
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 |
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 }
Ich habe eine Pandas -Tabelle, in der ich eine neue Spalte erstellen und Daten basierend auf anderen Spaltenwerten füllen möchte. Ich möchte auch wissen, ob der Wert neuer Spalten aktualisiert wird...