問題タブ [language-lawyer]

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 に答える
214 参照

c - lvalueは評価後にオブジェクトを指定しませんか?

C99[セクション6.3.2.1/1]は言う

左辺値は、オブジェクトタイプまたはvoid以外の不完全なタイプの式です。 左辺値が評価時にオブジェクトを指定しない場合、動作は定義されていません。

太字の部分はどういう意味ですか?誰かが例を挙げて説明してもらえますか?

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

c++ - テンプレート関数の検索に失敗する

次の例を検討してください。

g++ 4.3.0 を使用してこれをコンパイルすると、次のコンパイル エラーがスローされます。

どうすればよいですか (C++ 標準からの参照が可能な場合)? なぜそれが起こっているのですか、どうすれば修正できますか?

編集

修正は、で正しいタイプを作成することですfoo

しかし、疑問は依然として残っています: なぜ自動的に作成されないのでしょうか?

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

c++ - i = i ++の動作は本当に未定義ですか?

重複の可能性:
これらの未定義の動作を誰かが説明できますか(i = i ++ + ++ i、i = i ++など…)

C ++標準によると、

未定義の動作になります。

複数の結果につながる可能性がある場合は、「未定義動作」という用語を使用します。しかし、ここでは、i評価の順序に関係なく、の最終的な値は4になるので、これは実際には「不特定の動作」と呼ばれるべきではありませんか?

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

c++ - これら 2 つの C++ 初期化子構文はセマンティクスが異なりますか?

次のコードは、適切にコンパイルされる有効なコードであり、型名であり、変数の名前であると仮定しTますx

構文 1:

構文 2:

これら 2 つの式の正確なセマンティクスは異なりますか? もしそうなら、どのような状況で?

これらの 2 つの式が異なるセマンティクスを持っている場合、標準のどの部分がこれについて話しているかについても非常に興味があります。

また、T がスカラー型の名前 (別名、、、、など) である特殊なケースがある場合、T がintスカラーlongdoubleと非スカラー型の違いは何ですか?

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

c++ - C++ コンパイラは const bool & value が変更されないと想定できますか?

C++ コンパイラは、「const bool &」の値が変更されないと想定できますか?

たとえば、次のクラスがあるとします。

そして、私はそれを次のように使用します:

_test の値が変更されないとコンパイラが想定することは、標準で許可されていますか。

私はそうは思いませんが、ただ確信したいだけです。

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

c - memcpy(0,0,0) を実行しても安全であることが保証されていますか?

私はC標準に精通していないので、ご容赦ください。

memcpy(0,0,0)安全であることが標準で保証されているかどうかを知りたいです。

私が見つけた唯一の制限は、メモリ領域が重複している場合、動作が未定義であることです...

しかし、ここでメモリ領域が重複していると考えてよいでしょうか?

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

c++ - Qt は適合する C++ 実装ですか?

C++ 標準では、MOC のような言語拡張を暗黙的または明示的に許可していますか (または、好きな他の用語を使用します)。

つまり、技術的に Qt (MOC を含む) を適合する C++ 実装と呼ぶことができますか?

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

c++ - 標準ライブラリ アロケータ ポインタ型の要件

四分木疎行列クラスを作成しようとしています。つまり、aquadtree_matrix<T>はゼロ行列または の 4 倍(ne, nw, se, sw)ですquadtree_matrix<T>

これはおそらく線形代数演算のパフォーマンスに影響を与えるため、最終的にはさまざまな割り当てスキームをテストしたいと思います。quadtree_matrixしたがって、既存のアロケーターを再利用できるように、標準のアロケーターの型もテンプレート化します。

2 つの異なる種類のデータを割り当てる必要があります: a T、または a のいずれかで、 node4 つのポインター (T またはノードへの) を含みます。私が検討するすべてのアルゴリズムについて、アルゴリズムの任意の時点で直面している部分行列のサイズが何であるかを知っているため、どのような種類のデータが期待されるかを確実に知っています (これらのサイズを保存する必要さえありません)。

もちろん、2 つの異なるアロケーターを使用します。アロケーターの型はテンプレートとテンプレートのコピー コンストラクターを提供するため(標準コンテナーのメンバーがコピーを返すことで提案するrebindように、値の型として使用することを意図しています)、これで問題ありません。get_allocator

問題は、アロケーター メンバー関数が特定のpointer型を使用することです。これはバニラ ポインターである必要はありません。一部のアロケータ (ブースト インタープロセス アロケータ) は、この機能を広範に使用します。

アロケーター ポインターの型がさまざまなポインターである場合、問題はありません。少なくとも、ポインターを使用して void を指定し、それらを正しい型 ( または のいずれnode*T*) に再解釈_キャストすることができます。ユニオンを使用することもできます(おそらくより良いでしょう)。

私の知る限り、allocator::pointer型の PODness に関する要件はありません。これらは、ランダム アクセス イテレータである必要があるだけです。

さて、私の質問は次のとおりです。

アロケータ クラス テンプレートA<T>(またはそれに相当するものA::rebind<T>::other) が与えられた場合、次のことが保証されますか。

  1. 提供された静的キャストの機能A<T>::pointerは、 ?のアクセス可能なベースです。A<U>::pointerUT
  2. 提供された静的キャストの機能A<T>::pointerはアクセス可能なベースであり、キャストの「ランタイム型」(このコンテキストでこれが意味するものは何でも) は?A<U>::pointerTUU
  3. タイプA<void>::pointer(これが理にかなっている場合)?

それとも、私が考えもしなかった問題の解決策はありますか?

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

java - 準拠した Java 実装にすべての標準ライブラリが含まれていない可能性はありますか?

私は、JavaScript で JVM の実装を作成する作業を行っています。つまり、標準ライブラリのネイティブ コードをJavaScript で大量に作成しています。ただし、標準ライブラリには少数のプログラムでしか使用されない膨大な数のクラスがあり、ネイティブに実装されたネイティブ実装が必要な部分を取得しようとするのは面倒であり、あまりやりがいがありません。

有効な Java 実装にすべての標準ライブラリ クラスの実装が含まれているという要件は実際にありますか? それとも、コア Java ライブラリ (たとえば、java.lang.* とそれが参照するすべてのもの) を動作させてから、実装されていない機能を参照するコードに対して VerifyErrors をスローする可能性がある準拠の Java 実装があると主張することはできますか?

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

c++ - C++標準ライブラリはC++言語の一部ですか?

C++標準ライブラリはC++言語の一部ですか?「標準」ではなく「言語」に注意してください。もちろん、どちらも標準の一部です)。

もしそうなら、なぜですか?そうでない場合は、なぜですか?

この質問に対する答えは、C ++ 98、C ++ 03、およびC++0xで異なる場合があります。

関連する規格文書の文言/要件から推測できるため、主観的ではありません。