Andrei Alexandrescu wrote:
Walter Bright wrote:
bearophile wrote:
Walter Bright:
import std.cpuid; import sse; import nosse; ... if
(std.cpuid.sse2()) sse2.foo(); else nosse2.foo();

I think that solves my problem, thank you. It's a simple solution
(maybe I didn't think of it because I use bud that compiles all the
program in one go).

I presume that usually the D code in the sse and nosse modules is the
same, it's just compiled in two different ways, so the two modules
may just contain two lines of code as:

module sse; mixin(import("shared_module_code.dd"));

That's one way to do it.


I must be missing something - why isn't

import shared_module_code;

good?

Because importing something does not change how it was compiled. If you have one module that you want two separate instances of, compiled with different switches, they have to be somehow given different names.

Reply via email to