私は 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
私は困惑しています。なぜこれが壊れるのかについての考えはありますか?(Mac OS X 10.6.4 では DMD 2.049)。n00bを助けてくれてありがとう。