問題タブ [construction]

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 投票する
9 に答える
26328 参照

c++ - C ++でのシングルトンのスレッドセーフな遅延構築

次のような C++ でシングルトン オブジェクトを実装する方法はありますか。

  1. スレッド セーフな方法で遅延構築します (2 つのスレッドが同時にシングルトンの最初のユーザーになる可能性がありますが、構築は 1 回だけにする必要があります)。
  2. 事前に構築されている静的変数に依存しません (そのため、静的変数の構築中にシングルトン オブジェクト自体を安全に使用できます)。

(私は自分の C++ を十分に理解していませんが、コードが実行される前に整数および定数の静的変数が初期化される場合 (つまり、静的コンストラクターが実行される前であっても - それらの値はプログラムで既に「初期化」されている可能性があります)もしそうなら - おそらくこれは、シングルトンミューテックスを実装するために悪用される可能性があります - これは、実際のシングルトンの作成を保護するために使用できます..)


すばらしい、私は今、いくつかの良い答えを持っているようです (残念ながら、2 つまたは 3 つを答えとしてマークすることはできません)。2 つの大まかな解決策があるようです。

  1. POD 静的変数の静的初期化 (動的初期化ではなく) を使用し、組み込みのアトミック命令を使用して独自のミューテックスを実装します。これは私の質問でほのめかしていた解決策のタイプであり、私はすでに知っていたと思います.
  2. pthread_onceboost::call_onceなどの他のライブラリ関数を使用します。これらは確かに知りませんでした-そして、投稿された回答に非常に感謝しています.
0 投票する
10 に答える
7324 参照

c++ - C++ オブジェクトを空にする

Empty次のようなコードを使用して内部状態をクリアするメソッドを C++ オブジェクトに追加することがよくあります。

これは、コンストラクターでコードを複製するよりも優れているようです*this = Foo()が、オブジェクトをクリアしたい場合に一般的なアプローチであるかどうか疑問に思いました。これが私を裏側で噛むのを待っていることに何か問題はありますか? この種のことを達成するための他のより良い方法はありますか?

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

java - Javaで配列を作成するときにオブジェクトコンストラクタが呼び出されますか?

Java では、配列はオブジェクトです。私の質問は...新しい配列が作成されているときに呼び出される Object コンストラクターですか? この事実を利用して、構築中の配列の長さをチェックする追加のバイトコードを Object コンストラクターに装備したいと考えています。それはうまくいくでしょうか?

0 投票する
9 に答える
16792 参照

java - Java を使用したプログラムによる HTMLDocument の生成

外部で文字列を生成し、HTMLEditorKit#read を使用して解析することなく、Java でプログラムによって HTMLDocument オブジェクトを生成する方法を知っている人はいますか? 私が尋ねる2つの理由:

まず、私の HTML 生成ルーチンは非常に高速である必要があり、文字列を内部モデルに解析することは、このモデルを直接構築するよりもコストがかかると思います。

第 2 に、オブジェクト指向のアプローチにより、よりクリーンなコードが得られる可能性があります。

また、ライセンス上の理由から、JVM に同梱されているもの以外のライブラリを使用することはできません。

ありがとう、トム

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

sql - linq から sql クエリに返すことができる列を指定する方法

linq から sql クエリへのいくつかの列のみを返そうとしていますが、そうすると例外がスローされます。

クエリでのエンティティ タイプ 'InVision.Data.Employee' の明示的な構築は許可されていません

コードは次のとおりです。

すべてを返すと、JavaScriptで使用するにはシリアル化する必要があるため、循環参照に関する例外がスローされるため、列を制限する必要があります...これを解決するために私に与えることができるヒントをありがとう。

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

c# - 別のクエリの同じフィールドを使用してLINQからオブジェクトを構築する

それは例です

SQL

LINQ

この状況はかなり頻繁に発生し、同じフィールドを使用して別のビューからオブジェクトを構築するためのトリッキーな方法があります。

C#側でこのような結合を行うと、パフォーマンスが低下したり、遅延読み込みの問題が発生したりします。とにかく、LINQは各詳細レコードをフェッチするために多くのクエリを発行しますが、パフォーマンスの観点からは受け入れられません。

明白な解決策があるに違いありません、私は誰も同じ問題に直面したとは信じられません。dc.Translateのようなすべての明白なソリューションはほとんど同じですが、私が必要としているものとは異なります。

感謝します。

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

javascript - Javascriptのオブジェクトはいつ構築されますか?

次のJavascript関数(1)について考えてみます。

この関数について私が気に入らないのは、関数が呼び出されるたびにまったく同じオブジェクトが作成されることです。オブジェクトは変更されないので、一度だけ作成したいと思います。したがって、次の調整を行うことができます(2)。

これで、スクリプトがロードされてに格納されるときに、オブジェクトが1回作成されdataObjectます。setDataしかし、それがたまにしか呼び出されないと仮定しましょう。ほとんどの場合、スクリプトがロードされると、関数は使用されません。その場合のこの関数について私が気に入らないのは、オブジェクトが常に作成されてメモリに保持されることです。これには、オブジェクトが使用されない場合も含まれます。私はあなたが理想的なバランスをとるためにこのようなことをすることができると思いました(3):

それは理にかなっていますか?インタプリタがいつオブジェクトを作成するかによって決まると思います。それは本当に条件を通過するまで待つの!dataObjectでしょうか、それとも関数に入り、賢くなり、事前に構築することを決定するのでしょうか?おそらく、Javascriptエンジンが異なれば、これに関してポリシーも異なりますか?

そしてもちろん、これらの最適化が実際に重要になるかどうかという問題があります。明らかに、これはオブジェクトのサイズ、エンジンの速度、利用可能なリソースの量などの要因に依存します。しかし、一般的に、どちらがより重要な最適化であると言えますか:(1)から(2)または(2)から(3)へ?

0 投票する
4 に答える
560 参照

windows - C++ 用の Windows.Forms のようなプログラムがないのはなぜですか (ありますか?)

VS Windows.Forms for C++ のようなプログラムはないと思います。「Windows.Forms」自体が C# の「もの」であることはわかっていますが、C++ Windows GUI 用の同様のグラフィカル構築インターフェイスを誰もまとめていない理由がわかりません。私はそれ/それらに気づいていないだけですか?

作ってみるべきですか (とにかく私にとっては挑戦ですが、なんと楽しいことでしょう!)? 私と一緒に作ることについて話したい人はいますか?

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

c++ - 構築中のオブジェクトを参照する C++

C++ では、その所有者を指すオブジェクトへの参照がありますが、構築が完了していないため、含まれているクラスの構築中にポインターを設定できません。だから私はこのようなことをしようとしています:

A が B へのポインタを保持することなく、B が常に A* で初期化されるようにする方法はありますか?

ありがとう

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

ruby - コードでサードパーティのrubyライブラリモジュールにアクセスしますか?これはWindowsで正しい方法ですか?

Windowsスタイルの.iniファイルからデータを読み取るための小さなスクリプトが必要でした。Windowsマシンを検索すると、次のパスにinifile.rbが見つかりました。

このパスをrubylibパスに直接追加するのは不自然に思えます。これは、必要な他の特別なユニットを追加する必要があることを意味するためです。

だから私のコードで私はこれを書いた:

これは機能しましたが、含めるのにエレガントではないようです。コードでこれを指定するためのより良い方法があるはずですか?