問題タブ [static-initialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
13 に答える
117168 参照

java - Java: 静的初期化ブロックが役立つのはいつですか?

staticブロック内の初期化の違いは何ですか:

そして個々の静的初期化:

0 投票する
2 に答える
206 参照

c++ - テンプレート化されたクラスの共有メンバーのユーザー向け API 効果を軽減する方法は?

特定の整数に対して作成できるルックアップ テーブルのタイプがあるとします。

次に、テンプレート パラメーターが同じ整数で、コンストラクターがこのルックアップ テーブルのメンバー インスタンスを初期化するクラスがあります。

コード全体で、基数のさまざまな値を使用してこれらをインスタンス化します。

これは機能し、毛むくじゃらのスレッドや API の問題は発生しません。myFooしかし、 と の間で1 の基数テーブルを共有していませんyourFoo。仮定されたスレッド ライブラリへの依存関係をハードコーディングし、オンデマンドで埋められるグローバル マップを構築することができました。しかし、私の質問は次のとおりです。

「現代の C++11 の世界では、標準ライブラリの外に依存関係を持たない Foo 用のライブラリを設計するためのクリーンな方法はありますか?」

テンプレートクラスの個別のインスタンス化ごとに静的メンバー変数が1つしか作成されないため、これには静的メンバーを使用することを考えました。しかし、これにより、静的メンバーのスペースを宣言する責任があるのは誰かという問題が生じます。そうする人は、「それを初期化する正しい方法を知っている」必要があります。

「 C++ 静的メンバーの初期化 (内部のテンプレートの楽しみ) 」のような主題について書かれていることを読んでも、何かが欠けていない限り、あまり希望が持てないようです。Fooまた、インスタンス自体が静的だったらどうなるでしょうか? :-/

0 投票する
2 に答える
1263 参照

java - クラス静的初期化子を再実行する方法を探しています

非コアJavaクラスを新しくロードされた状態に戻す方法はありますか?クラスをアンロードして最初からリロードするのと同じことをしたいと思います。私は主に静的初期化子と変数に関心があります。

問題のコンテキスト:学生コード用のロボグレーダーを書いています。私が見た一般的な学生のエラーの1つは、静的変数を不適切に使用することです。たとえば、含まれる要素の静的カウントを持つコレクションについて考えてみます。コレクションは、最初に作成して使用したときに正常に機能しますが、次のインスタンス化では失敗します。テストを可能な限りモジュール化する場合は、テスト後にクリーンな状態を復元する方法が必要です。

今、私は多かれ少なかれこのようにクラスをロードしています、そして私はそれをどのように使いたいかをスケッチしました。

もちろん、ロボグレーダーは完璧ではありませんが、よくあるエラーをキャッチしたいと思います。これもその1つです。

Java言語仕様のセクション12.7によると、クラスのアンロードのサポートはオプションです(ただし、私が望むことを正確に実行します)。非標準機能に依存せずにこれを行う方法はありますか?

最後の手段は、別々のプログラムで一連のテストを実行するAntビルドを実行することですが、可能であれば、これを1つのプロセスで機能させたいと思います。

0 投票する
1 に答える
865 参照

c++ - クラス テンプレート内の静的データの初期化順序


g_shouldBeOneThird は 0.333 前後に初期化されることが保証されていますか? つまり、静的に初期化された InitFirst<1>::s_dividedByThree は、g_shouldBeOneThird を静的に初期化するために使用されるまでに初期化されることが保証されていますか?

0 投票する
2 に答える
1444 参照

java - Java の法的前方参照

次のコードは、正当な前方参照の場合ですか? はいの場合、なぜですか?

0 投票する
3 に答える
99 参照

java - メソッドが静的初期化子で呼び出されているかどうかをJavaで判断する方法はありますか?

静的レジストリの適切な使用をチェックする方法として:

0 投票する
5 に答える
110 参照

java - 静的クラスコンストラクターの例外が適切なデザインパターンをエスケープできるようにしていますか?

次の2つのデザインパターンから選択することがよくあります。

問題は、クラスごとに1回だけ初期化することです。つまり、静的に、ロガーの設定、ファイルからのマップのロードなどです。この操作が失敗した場合は、プログラムを停止する必要があります。 。これらのデザインパターンはどちらも扱いにくいように見えるので(最初のパターンの方が明らかにそうです)、これを行うためのより良い方法があるかどうか疑問に思います。

0 投票する
2 に答える
1014 参照

c++ - 匿名名前空間の静的構造体

このコードスニペットが実際に行うことは?

テスト関数が実際に呼び出されるのはなぜですか?そして、なぜ「匿名」名前空間を使用するのですか?このコードをオープンソースプロジェクトで見つけました...

0 投票する
2 に答える
312 参照

c - Cで循環データを初期化しています。これは標準に準拠した有効なCコードですか?

グローバル変数を初期化してそれ自体を指すことができるかどうかを確認したかったのです。

このコードは、で期待どおりにコンパイルおよび実行されますgcc(3つのポインターはすべて同じように出力されます)。

私は知りたいです:

  1. これは信頼できますか?
  2. これは標準ですか?
  3. これは持ち運び可能ですか?

編集:明確にするために、私はxそれ自身のイニシャライザーでのアドレスの可用性に疑問を持っています。