Я изучаю язык 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.