問題タブ [compile-time-constant]

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

c - コンパイル時に C 定数を定義 (および計算) する

私の C コードがRANGEMAXint. 私はそれを定義することができます:

マクロの前処理段階でこのような単純な計算を行うよりスマートな方法はありますか?

そして、これらは「単純な」計算であるため、私のような平均的な人がコードを読むだけで理解できるソリューションを好みます。

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

c++ - const と constexpr は最終的に同じものになりますか?

への回答を読んだだけです

変数の const と constexpr

そして、 C++11/14 機能に関するこの Google Tech Talk を見ています。その中で、関数に関して言えば、constexpr は将来的には必要なくなるかもしれないと言われています。コンパイラは進化して独自にそれを理解するからです。 . 最後に、Java コンパイラーと JVM は、構築後にクラス (または任意の変数) が不変であることを理解しようと懸命に努力していることを知っています。

それで、ここに質問があります: const と constexpr の運命は最終的に同じものになるのでしょうか? つまり、コンパイラが実行時の初期化などを行うことは保証されていませんが、最終的には可能な限り(基本的に)そうするのではないでしょうか? その場合、キーワードの 1 つが冗長になることはありませんか? (インラインになっているように、多分)?

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

java - 文字列リテラルにハードコーディングせずに、クラスの名前をコンパイル時の定数として取得できますか?

私は注釈プロセッサに取り組んでいます。このコードは次のようにコンパイルされます。

ただし、文字列定数「sand.Foo」には不満があります (この場合はそれほど多くはありませんが、将来的にはより一般的になります)。

名前を変更したり、別のパッケージに移動した場合Fooでも、このコードはコンパイルされますが、機能しません。

私は次のようなことをしたいと思います:

そうすれば、Foo の名前が変更された場合、コンパイルが失敗し、誰かがファイルを修正する必要があります。

しかし、 a は aClassではないため、これは機能しませんString。だから私は試しました:

しかし、コンパイラはこれを、このコンテキストで必要な定数式と見なさないため、これも機能しません。

コンパイル時にクラス リテラルをその名前に強制する方法はありますか?

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

c++ - C++でコンパイル時の定数を型のサイズに依存させる最良の方法は何ですか?

私はこれらのいずれかを考えていました:

また

また、2 番目の方法を使用してコンパイル時エラーをスローするにはどうすればよいですか?

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

f# - F# でリスト リテラルを作成できません

私は次のタイプを持っています

そして、次のようなコンパイル時エラーが発生します。

これは有効な定数式またはカスタム属性値ではありません

ここで何が問題なのか本当にわかりません。