Проблема с переводом typedef между C и D - PullRequest
0 голосов
/ 08 мая 2019

Я новичок в программировании на D и пытаюсь перевести код с C на D, фактическая строка, с которой у меня возникают проблемы, это

typedef double Vec __attribute__ ((vector_size(16))); 

... Я пытался:

alias Vez = double[16];

но это не сработало, вероятно ... любая помощь?

1 Ответ

3 голосов
/ 09 мая 2019

Есть core.simd.Vector, что делает нечто подобное. Я точно не знаю, в чем различия, но я уверен, что они есть.

Я знаю, что Vector принимает количество элементов вместо размера в байтах, поэтому

typedef double Vec __attribute__ ((vector_size(16))); 

становится

import core.simd : Vector;
alias Vec = Vector!(double[2]);

Однако DMD поддерживает это только для x64. Он работает в LDC как для 32-битных, так и для 64-битных архитектур, и я считаю, что то же самое верно и для GDC.

...