問題タブ [standards-compliance]
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.
c++ - 名前のない名前空間でのシンボルのテンプレート アクセス
XL C/C++ コンパイラーを V8.0 から V10.1 にアップグレードしていますが、V8.0 でコンパイルされているにもかかわらず、エラーが発生するコードが見つかりました。最小限の例を次に示します。
test.h:
test.cpp:
V10.1 では、次のエラーが発生します。
g++ 3.3.2 と 4.3.2 の間にも同様の違いが見つかりました。g ++でも見つけまし#include "test.h"た。名前のない名前空間宣言の後に移動すると、コンパイルエラーがなくなります。
ここで私の質問です。標準はこれについて何と言っていますか? テンプレートがインスタンス化されるとき、そのインスタンスは、テンプレート自体が宣言された時点で宣言されていると見なされますか?それとも、この時点で標準はそれほど明確ではありませんか? n2461.pdf のドラフトを調べてみましたが、決定的なものは何も思いつきませんでした。
xhtml - 新しいウィンドウでページを開く
<a href="page.html" target="_blank">標準に準拠した XHTML を使用せずにページを開く方法はありますか?
フレームを使用していませんが、現在のウィンドウではなく新しいウィンドウで開きたいページがいくつかあります。
c - (size_t)((char *)0)が0に評価されないことはありますか?
「offsetof()でnullポインタを減算する理由」の回答によると (そして私のK&Rの読み方)、C標準はそれを必要としません(size_t)((char *)0) == 0。それでも、整数型へのnullポインターのキャストが他の何かに評価される状況を見たことがありません。
コンパイラまたはシナリオがある場合(size_t)((char *)0) != 0、それは何ですか?
c++ - C++ が動的に割り当てられない可変長配列を許可するのはなぜですか?
私はC ++に比較的慣れていません。最初から、次のようなことはできないと教えられてきました。
代わりに、動的メモリを使用する必要があります。ただし、最近、上記がコンパイルされることを発見しました(ただし、ISO C ++で禁止されているというペダンティックな警告が表示されます)。標準で許可されていない場合、それを行うのは明らかに悪い考えであることは知っていますが、以前はこれが可能であることさえ知りませんでした。
私の質問は、標準で許可されていない場合、動的に割り当てられない可変長配列を g++ が許可するのはなぜですか? また、コンパイラがそれを行うことが可能である場合、なぜそれが標準にないのですか?
gcc - 標準への準拠や機能に関して、MinGW は GCC とまったく同じですか?
ポートとして、GCC で完全に速度を維持するのは難しいと思います。それとも、標準への準拠や機能に関して違いはありますか?
c++ - MSVC9.0のC++標準への準拠への参照を求める
私は、MSVC9.0がC++ 2003(ISO / IEC 14882:2003)を実装していることを(願わくば)「知っています」。私はこの事実への参照を探しています。また、MSVC9.0がそのバージョンの標準にどの程度準拠しているかについて行われた調査も探しています。
私は、MSVCがC ++ 2003を実装するという効果について実際に何かを述べている、MicroSoftからの特定の参照を検索しましたが、見つけることができませんでした。 MSVC.NET2003のC++1997への準拠について言及する場合)。しかし、「MSVC 9.0は何とか実装している」というMSのドキュメントへのリンクと、MSVC9.0の準拠をテストした独立したグループへの別のリンクが必要です。
そのようなリンクを知っていますか?
css - CSS ラウンドコーナーを使用しても検証に合格することは可能ですか?
IIRC の状況では、IE は丸みを帯びた角をサポートしていませんが、他の一部のブラウザーではブラウザー固有の拡張機能が必要です... FF または web-kit のいずれかですが、思い出せません。
場合によってはそれを使用して、IE を四角いコーナーにフォールバックさせて喜んでいますが、ブラウザー拡張 CSS を使用すると検証が壊れます... サイトを検証して IE6 で動作させるのがとても好きです。
c++ - 奇妙なエラー:「int」から「ios_base::openmode」に変換できません
私はg++を使用していくつかのコードをコンパイルしています。私は次のスニペットを書きました:
そして、私はこれらのエラーを受け取ります...なぜですか?
エラー1:「int」から「std :: _ Ios_Openmode」への無効な変換<br>エラー2:「std :: basic_filebuf <_CharT、_Traits> * std :: basic_filebuf <_CharT、_Traits> :: open( const char *、std :: _ Ios_Openmode)[with _CharT = char、_Traits = std :: char_traits]'<p>
Google検索からわかる限り、g++は実際にここでC++標準を破っています。それらは一般的に非常に厳密に規格に準拠しているので、私は非常に驚くべきことだと思います。これは本当ですか?または私は何か間違ったことをしていますか?
標準の私のリファレンス:http ://www.cplusplus.com/reference/iostream/ofstream/open/
c++ - 配列へのbraced-init-listの割り当ては正しいですか?
標準では、5.17/9 の下で
- スカラーへの代入 [...] -
ユーザー定義の代入演算子によって定義された代入 [..]
GCC 4.5.1-pre9999 では、これをコンパイルできます (-std=gnu++0x ではなく、-std=c++0x を使用)
そしてそれは印刷し123456ます。ここでGCCは正しいですか?