Sto cercando di usare alignas
per i puntatori che sono membri della classe, e francamente non sono sicuro di dove dovrei metterlo.Lottando con sintassi alignas
Ad esempio:
class A
{
private:
int n;
alignas(64) double* ptr;
public:
A(const int num) : n(num), ptr(new double[num])
{}
};
che speravo assicurare i dati per PTR era allineato su un blocco di 64 byte. Utilizzando il compilatore Intel, non è così.
Qualcuno può indicarmi la direzione giusta per favore?
Sembra essere [lavorare per me] (http://rextester.com/LCVUW98273) (notare la dimensione eccessivamente grande di 'A'). O speravi che i dati 'ptr' puntino ** a ** sarebbero stati troppo allineati? Ciò richiederebbe la violazione della causalità. –
Forse il tuo compilatore non supporta un allineamento di 64? – Brian
Grazie Igor, questo sta mostrando la fonte del mio fraintendimento. Il puntatore è allineato, non i dati a cui punta. Speravo che il blocco dati sarebbe uscito allineato. – user1683586