問題タブ [storage-class-specifier]

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

c - static ストレージ クラスと register ストレージ クラスを一緒に使用できないのはなぜですか?

次の方法で変数を定義する場合:

エラーが発生します:

このエラーの根本的な理由はありますか? 変数をレジスタに格納することも、起動時/最初の呼び出し時にのみ初期化することもできないのはなぜですか? register ストレージ クラスをグローバル変数にアタッチすることができます。<-編集:そうではありません

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

constants - 不変メンバー関数と const メンバー関数の違いは何ですか?

D プログラミング言語リファレンスでは、宣言型修飾子のセクションに 2 つの例が示されているため、どちらも可能です。

ドキュメントから:

const メンバー関数は、メンバー関数の this 参照を通じてオブジェクトのどの部分も変更できない関数です。

と:

不変メンバー関数は、オブジェクトと this 参照によって参照されるものはすべて不変であることが保証されています。

私はこの質問を見つけましたが、すべての回答はストレージ クラスではなく、データ型に関するものです。同じことがD const FAQにも当てはまりますが、興味深い読み物です。

では、上記の 2 つの定義の違いは何でしょうか? //const stuffを置き換えて合法であるがそうではない表現はあり//immutable stuffますか?

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

c++ - 可変指定子が修飾子ではなく、ストレージ クラス指定子に分類されるのはなぜですか?

指定子が非静的データ メンバーの宣言で使用される場合mutable、オブジェクトの残りの部分が const として扱われるかどうかに関係なく、データは変更可能です。この事実により、指定子は修飾子mutableと同じ種類のものであるという印象を簡単に持つことができますが、これは正しくないことがわかります。const実際、言語はmutable指定子をストレージ クラス指定子として分類します。mutableは保存期間を指定しないため、これは非常に直感に反します。

この設計上の決定の背後にある理論的根拠は何ですか?

mutable修飾子の 場合よりも論理的でない理由は何ですか?

それをストレージ クラス指定子にする利点は何ですか?

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

c++ - constexpr 静的テンプレート関数: g++ エラーは clang の警告です

次のスニペットを検討してください。

このコードは、g++ と clang の両方で適切にコンパイルされます。非常に素晴らしい。static次に、テンプレート関数の特殊化に追加します。

次に、g++ 6.1 はエラーで反応します。

11 : エラー: 明示的なテンプレートの特殊化は、ストレージ クラスを持つことはできません

そしてclang 3.8も:

11 : エラー: 明示的な特殊化に無関係で一貫性のないストレージクラス 'static' があります

彼らは一致しているように見えます。とても素敵です。staticここで、テンプレート関数の一般的なケースにもキーワードを追加します。

g++ 6.1:

11 : エラー: 明示的なテンプレートの特殊化は、ストレージ クラスを持つことはできません

clang 3.8 は警告付きでコンパイルされます。

11 : 警告: 明示的な特殊化はストレージ クラスを持つことはできません

そしてclangの結果は正しい答えを返します。

これはclangのバグですか?そうでない場合、どのような場合にエラーをスローしないことが理にかなっていますか?

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

c - 登録対自動ストレージクラス?

ここでストレージクラスについて学んでいます。そして、彼は auto ストレージ クラスと register ストレージ クラスについて同じことを説明しているようです。彼がこの 2 つを区別した唯一の点は、レジスタ ストレージ クラスが CPU レジスタに格納されていることです。これらのストレージ クラスの間に違いはありますか? register ストレージ クラスの用途はありますか? 一部の C コンパイラでは、Register キーワードがデフォルトで指定されていますか?

0 投票する
0 に答える
500 参照

c++ - C++ の明示的なテンプレートのインスタンス化ストレージ クラスは許可されますが、無視されます

ストレージ クラス指定子をテンプレートのインスタンス化に配置でき、コンパイル エラーが発生しないことに気付きました。ストレージ クラスはテンプレート デザインで使用でき、特殊化では使用できないことはわかっていますが、インスタンス化でコンパイラによって拒否されないのはなぜだろうと思っていました。さまざまな組み合わせを試しましたが、リンクには影響がないようです。何か不足していますか?

編集:スニペットでは明確ではありませんが、テンプレートのインスタンスを(リンクをテストするために)使用されている場所とは別の.cppに配置していることに注意してください。

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

c - cのグローバル変数の代替

静的変数はグローバル変数の代替ですか? いいえの場合は、C言語でのグローバル変数の代替は何ですか私はあなたの答えを楽しみにしています Thx u for Advance