問題タブ [compile-time]
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.
templates - Dで「テンプレートコンストラクター」を使用するには?
Dのテンプレート ドキュメントには、「テンプレート コンストラクター」と呼ばれる小さなセクションが含まれています。そのセクションには、例や詳細なドキュメントはありません。
私はその機能を使用しようとしています (「静的コンストラクター」を使用できることはわかっていますが、テンプレート コンストラクターを好む理由があります)。
特に、コンパイル時にいくつかのハッシュを生成しようとしています。これが私の試みです:
これは DMD 2.053 ではコンパイルできません:
最初のコンストラクターについて文句を言います。それを削除した後:
私が使用する構文が MyHash がテンプレート構造である場合と同じであることを考えると、これはかなり論理的です。
それで、「テンプレートコンストラクター」を宣言して呼び出す方法を知っている人はいますか?
d - コンパイル時の評価
私が書くなら
文字列はコンパイル時に連結されますか? そうなると思います。これを文字列リテラルまたは CTFE 関数に置き換えた場合、大きなパフォーマンスの違いを測定することはできません (1 億回呼び出しても)。enum を const に置き換えると違いがあります。このように書くのは効率が悪いと言われました。便利だなと思いましたし、非効率さはわかりません。(ところで、この行は再帰的に呼び出される関数にあります)。
完全なコード (基数が異なる数値システムに変換)
編集:コメントに応じて更新されたコード、質問には関係ありません
iphone - 実行時とコンパイル時のiPhoneバージョンチェック
[[UIDevice currentDevice] systemVersion]
実行時(例)とコンパイル時(例:__IPHONE_OS_VERSION_MIN_REQUIRED
チェック)の違いは何ですか?いつあなたはお互いを重ねるべきですか?
__IPHONE_OS_VERSION_MIN_REQUIRED
ビルド設定で設定された変数だけですか?
特定のiPhoneバージョンをターゲットにする方法の回答を読みましたか?および以下にリストされているその他の関連する質問。
しかし、Xcode 4を使用してiPhone(4.3.1)でビルドおよび実行すると、気づきました__IPHONE_OS_VERSION_MIN_REQUIRED = 30200
。なぜですか?
あなたがあなたのコードをアップルに提出するとき、彼らは存在するiPhoneのバージョンごとにそれのバージョンをコンパイルし、それに__IPHONE_OS_VERSION_MIN_REQUIRED
応じて設定しますか?
そうすれば__IPHONE_OS_VERSION_MIN_REQUIRED
、コードを実行しているiOSのバージョンを調べて知ることができます。
関連する質問:
haskell - GHC Haskell によるコンパイル時のアサーション?
C++ から来た私は、単純な形式のコンパイル時アサーションを作成することに慣れていました。テンプレート メタを使用していくつかの単純な条件 (単純な代数式など) が満たされない場合、コンパイル中に警告またはエラーを発生させることができました。 -プログラミングおよび/またはcpp(1)
Int
たとえば、少なくとも特定のminBound
/範囲がある場合にのみプログラムがコンパイルされるようにしたい場合、または現在のコンパイルターゲットでからへmaxBound
の損失のない (可逆的な) 変換が可能である場合。GHC Haskell拡張機能でこれは可能ですか? 私の最初の推測は、THを使用することでした。この目的のために悪用できる GHC 施設は他にありますか?Int64
Int
ios - コンパイル時の情報は実行時に利用できますか?
iOS では、アプリの「リリース日」が記載されたアバウト ページが便利です。手動で更新する必要はありません。アプリがコンパイルされた日付を収集する方法はありますか? プリプロセッサ、またはアプリの検査、または私が考えられない何か?
c++ - コンパイル時に文字列リテラルを暗号化/難読化する
コンパイル時に元の文字列がコンパイルされた実行可能ファイルに表示されないように、文字列を暗号化/エンコードしたいと思います。
いくつかの例を見てきましたが、引数として文字列リテラルを使用することはできません。次の例を参照してください。
私は、各キャラクターを個別に提供したくありません。私の目標は、次のような文字列リテラルを渡すことです。
このような例もいくつかあります。
ただし、文字列のサイズが制限されます。
私が望むことを達成する方法はありますか?
c# - C#の固定文字列長-コンパイル時のチェック
特定の長さの文字列のみを許可するC#値型を宣言したいと思います。上記の長さは、コンパイル時に検証する必要があります。これはDelphiで次のように実行できます。
そして、私が言ったtyoeを次のように使用する場合:
私が理解しているように、固定長のC#で文字列型を宣言することはできません。私が見たさまざまなソリューションでは、C#のコンパイル時チェックが提供されていません。私は自分のC#値型構造体を宣言する準備ができているので、これは私が達成できるもの.Format()
ですか?
すべてのヘルプとポインタは大歓迎です。
PS。文字列の長さの割り当てのコンパイル時チェックを本当に実現したいので、「Why are you ....?」は使用しないでください。
c++ - 初期化値はコンパイル時または実行時に計算されますか?
関数を初期化値として使用するrand()
関数がある場合、その値はプログラムのコンパイル時または関数の実行時に検出されますか?
いう:
コンパイル時に見つかった場合、初期化を動的にするにはどうすればよいですか? 私は初期化値として使用すると思いますが、とNULL
の違いはどのようにわかりますか?NULL
init = 0
java - プログラムはコンパイル中にライブラリに依存できますが、実行時に依存できませんか?
実行時とコンパイル時の違いと、この2つを区別する方法は理解していますが、コンパイル時と実行時の依存関係を区別する必要はありません。
私が窒息しているのはこれです:プログラムがコンパイル中に依存していた実行時に何かに依存しないようにするにはどうすればよいですか?私のJavaアプリがlog4jを使用している場合、コンパイル(log4j内からメンバーメソッドと統合して呼び出すコード)とランタイム(私のコードはlog4j内のコードで何が起こるかを完全に制御できません)のためにlog4j.jarファイルが必要です.jarが実行されます)。
IvyやMavenなどの依存関係解決ツールについて読んでいますが、これらのツールは、これら2つのタイプの依存関係を明確に区別しています。私はそれの必要性を理解していません。
誰かが簡単な「王の英語」タイプの説明を、できれば私のような貧しい樹液でも理解できる実際の例で説明できますか?
c++ - ヘッダーファイルを複数インクルードすると、コンパイル時間が長くなりますか?
同じヘッダーファイルを複数回インクルードすると、コンパイル時間が長くなりますか?
たとえば、プロジェクト内のすべてのファイルがとを使用する<iostream>
<string>
<vector>
とし<algorithm>
ます。また、ソースコードに多くのファイルを含めると、コンパイル時間が長くなりますか?
ガードヘッダーは二重定義を回避するという重要な目的を果たしていると常に思っていましたが、副産物として二重コードも排除されています。
実際、私が知っている誰かが、そのような複数の包含を削除するためのいくつかのアイデアを提案しました。ただし、これらはC++の優れた設計手法に完全に反していると思います。しかし、彼が変更を提案する理由は何でしょうか?