Я изучаю D, и меня смущает ошибка, которую я получаю.
Обратите внимание на следующее:
module helloworld;
import std.stdio;
import std.perf;
ptrdiff_t main( string[] args )
{
auto t = new PerformanceCounter; //From managed heap
//PerformanceCounter t; //On the stack
t.start();
writeln( "Hello, ", size_t.sizeof * 8, "-bit world!" );
t.stop();
writeln( "Elapsed time: ", t.microseconds, " \xb5s." );
return 0;
} //main()
Даёт вполне респектабельное:
Hello, 32-bit world!
Elapsed time: 218 µs.
Теперь рассмотрим, что происходит, когда я пытаюсь инициализировать PerformanceCounter в стеке вместо использования управляемой кучи:
//auto t = new PerformanceCounter; //From managed heap
PerformanceCounter t; //On the stack
Урожайность:
--- killed by signal 10
Я в тупике. Любые мысли о том, почему это ломается? (DMD 2.049 в Mac OS X 10.6.4).
Заранее спасибо за помощь n00b.