問題タブ [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++ - デフォルトのインライン関数について C++ 標準を無視するコンパイラはありますか?
C++ ISO 標準は、「クラス定義内で定義された関数はインライン関数です」と述べています。*
このルールを無視するコンパイラを知っていますか?
その「インライン提案」をそこに置かないコンパイラについて知っていますか?
(インラインについての理論を繰り返さないでください。私はそれを認識しています-実用的な答えが必要です)
jquery - 独自の CSS 属性を作成することは合法ですか?
私は私のウェブサイトのウィンドウアプリケーションに取り組んでいます。現在、サイトの本文に個々のウィンドウを として設定しています。body 要素の最後に文字通り適切なコードを追加して新しいウィンドウを追加し、その div を削除してウィンドウを削除します。(基礎となる JavaScript アーキテクチャに jQuery を使用しています。)
ウィンドウごとに、直接使用されない値を保存できるようにしたいことがわかりました。ウィンドウを最大化すると、元の位置とサイズを保存して、最大化を解除すると、ランダムな場所だけでなく元の位置に戻るとします。ここでの私の本当の質問は、このような情報を div ごとに保持することだけを目的としてカスタム CSS 属性を作成すること (ブラウザーがそれらを無視することを十分に認識している) は合法でしょうか? または、これは違法であり、別の代替手段を検討する必要がありますか?
システムが盲目的に実行できるように、これらすべてを配列に保持する方法には確かに精通していますが、それは素晴らしいことであり、エラーや物事が発生しやすく、それでも操作が少し難しいでしょう。
ありがとう
html - 従来の「HTML はコンテンツ専用」という考え方は、動的フォーマットをどのように処理しますか?
長い間、私は Web 開発に関する次の真実を読み、理解してきました。
- HTMLはコンテンツ用です
- CSSはプレゼンテーション用です
- JavaScript は振る舞いのためのものです。
.cssこれは通常、すべて問題なく良好であり、これらのガイドラインに厳密に従い、外部ファイルと.jsファイルを使用すると、サイト全体がはるかに管理しやすくなることがわかりました. しかし、私はこの考えを破る状況を見つけたと思います。
自分のサイトの 1 つ用に構築したカスタム フォーラム システムがあります。このようなシステムの通常の書式設定 (リンク、画像、太字の斜体、下線など) に加えて、ユーザーがテキストの書式設定 (色、フォント ファミリー、サイズなど) を設定できるようにしました。これらはすべて、フォーラム メッセージのデータベースによってフォーマット コードとして保存され、ページが表示されるときに対応する HTML に変換されます。(少し非効率的です。技術的には、保存する前に翻訳する必要がありますが、この方法でシステムをライブで作業できます。)
このシステムや他の同様のシステムの性質上、結果の HTML コードの周りにたくさんのタグが浮かんでしまいます。これは、フォーマットに CSS を使用することになっているため、非公式に非推奨になっていると思います。これは、HTML にフォーマット情報を含めるべきではなく、代わりにその情報を CSS ドキュメントに配置することを優先するというルール 1 と 2 に違反しています。
マークアップにその情報を含めずに、CSS で動的フォーマットを実現する方法はありますか? 苦労する価値はありますか?または、適切なコードの暗黙の制限を考慮して、コードをフォーマットする「正しい」方法に従うためにユーザーができることを制限する必要がありますか?
unit-testing - HTTP適合性テストスイート
優れたHTTP適合性テストスイートはありますか?
私はいくつかの既存のコードを標準準拠についてテストする必要があり、車輪の再発明をしてさまざまなコーナーケースにぶつかりたくありません。
使用する言語を指定していません。私は、スイートが私のニーズに適応するのに十分な汎用性を備えていることを期待しています。
unit-testing - URL 解析テスト スイート
RFC 3986に準拠するために、既存の http://URL 解析コードをテストする必要があります。
車輪を再発明したり、さまざまなコーナーケースにぶつかったりしたくありません。
そのための既存の包括的なテストスイートはありますか?
使用する言語は指定しません。テスト スイートは汎用性が高く、順応性があると考えているからです。私は正気なら何でも解決します。
xml - WSDL への準拠とパフォーマンスを考慮して、gsoap で配列を実行する最良の方法
私は gsoap を使用して XML SOAP パーサーと WSDL 文法を生成していますが、解析が高速で、すべての検証テスト (Eclipse WSDL Validator など) に合格する対応する WSDL を生成する静的配列を表現するための推奨される方法を知りたいまたは NetBeans Validate XML)。
この入力を gsoap に使用すると、次のようになります。
この結果の WSDL を取得します (definitions/types/schema タグ内):
これを NetBeans の「Validate XML」で実行すると、次のエラーが発生します。
- エラー: src-resolve: 名前 'SOAP-ENC:Array' を (n) 'type definition' コンポーネントに解決できません。
Eclipse WSDL Validator は、次の 2 つのエラーを返します。
- WS-I: (BP2108) Array 宣言で soapenc:Array 型が使用 (制限または拡張) されているか、wsdl:arrayType 属性が型宣言で使用されています。
- WS-I: (BP2122) wsdl:types 要素に、XML スキーマ定義ではないデータ型定義が含まれていました。
gsoap コードを変更して動的配列を次のように定義することで、これらのエラーをクリーンアップできます。
(対応する WSDL を使用:)
しかし、静的配列を使用することによるパフォーマンスの向上を失ってしまいました。コンプライアンスを維持しながらパフォーマンスを維持する別の方法はありますか?
.net - 標準に準拠した方法で .NET の DateTime オブジェクトをシリアル化する方法
私の目標は、(C# で) .NET DateTime オブジェクトを使用し、標準に準拠した方法で (XML で使用するために) 文字列にシリアル化および解析することです。私が念頭に置いている特定の標準は、日付と時刻を表すための ISO 8601 標準です。
フォーマットの連結バージョンとの間で変換する使いやすいソリューション (できれば、それぞれの方法で 1 つのメソッド呼び出し) が必要です。また、ローカル タイム ゾーン情報も保持したいと考えています。
取得したい文字列の種類の例を次に示します。
2009-04-15T10:55:03.0174-05:00
対象の .NET バージョンは 3.5 です。
数年前に、カスタム形式と DateTime.ToString(string) メソッドを含むこの問題の解決策を実際に見つけました。より単純な標準準拠のソリューションが存在しないことに驚きました。カスタムフォーマット文字列を使用して、標準に準拠した方法でシリアル化および解析することは、私には少し臭いです。
css - 優れた CSS デザインと IE6 / IE7 のサポートは相互に排他的ですか?
すべての Web 開発者と同じように、私は通常、少なくとも週に 1 回は IE6 の作成者を不愉快で早すぎる死で呪います。それでも私の会社は、最も嫌われているブラウザをサポートし続けることを私に要求しています。
今日の問題は、最初に CSS でワイルドカードを使用してから、代わりに「継承」プロパティを使用しようとすることです。どちらも IE7 以降ではサポートされていません。
私は本当に、よく構造化された、適切に継承された優れた CSS (流行語が好きなら、オブジェクト指向 CSS) を本当に本当に望んでいますが、遅かれ早かれ、それは私の胃の穴に沈むような感覚を持っています。カスタム目的およびロケーションベースのクラスになります。
これは疑問を投げかけます: IE が多くの CSS 概念を処理するのがいかにひどいものであるかを考えると、適切に構造化された CSS ドキュメントを持つと同時に、このブラウザーを適切にサポートすることは不可能でしょうか?
明確にするために: IE6 と 7 で見つかったバグや欠点を回避する方法はたくさんあります (正当な方法もあれば、そうでない方法もあります)。 、適切に継承された適切に作成されたスタイルシート、それとすべてのブラウザーで一貫した外観のどちらかを選択する必要がありますか?". それが理にかなっていることを願っています。
言い換えれば、私は自分の原則に固執して適切なスタイル シートをコーディングするべきでしょうか、それとも IE6 がまだ恐ろしく高い市場シェア (最終集計で 20%) を享受していることを受け入れて、それをサポートするようになるべきでしょうか? それとも、HTML と CSS でフランケンシュタイン手術を最小限に抑えながら、IE でそれなりの結果を達成できる幸せな媒体はありますか?
c++ - コンパイル時定数配列自体へのコンパイル時定数インデックスはコンパイル時定数ですか?
コンパイル時に C++ コンパイラが定数文字列のハッシュ値を合成する派手なゲームをプレイしようとしています。これにより、文字列を単一の識別子に置き換えることができ、コードのサイズと複雑さを大幅に節約できます。
プログラミングをわかりやすく簡単にするために、コンパイル時定数文字へのコンパイル時定数ポインターである "Hello" のような単純なインライン文字列を使用して、コンパイル時に調べて計算できれば最高です。
コンパイル時にこれらにインデックスを付けることができれば、テンプレート メタプログラムを作成して、自分のやりたいことを実行できます。しかし、C++ 標準が ct-constant 配列の ct-constant インデックスをそれ自体で ct-constant として扱うかどうかは不明です。
別の言い方をすると、
非常に有効な C++ (および C) です。しかし、値 va はコンパイル時定数ですか?
私はすでに答えはノーだと信じていますが、実際には一部のコンパイラは警告さえもせずにそれを受け入れ、エラーははるかに少なくなります。たとえば、次のコードは、Intel の C++ コンパイラからの警告が 1 つも表示されずにコンパイルおよび実行されます。
ただし、Microsoft のコンパイラはまったくコンパイルせず、内部リンケージを持つオブジェクトでテンプレートを使用することについて、合理的に一貫したエラー メッセージを表示します。
私の質問に対する答えは、「いいえ、定数インデックスを持つ定数配列への配列参照であっても、コンパイル時に定数であると想定することはできません」だと思います。これは、インテル コンパイラーの正常な実行がインテル コンパイラーのバグであることを意味しますか?
c++ - delete[] は、変更された new-ed ポインターを提供しました。未定義の動作?
ピア コード レビュー セッション中に、次のようなコードを見ました。
まず、標準 C++ では、配列サイズの 1 つ前を指すことは問題ありませんが、アクセスすると未定義の動作が発生することを知っています。だから、最後の行*s++='\0'は大丈夫だと思います。しかし、私の記憶が正しければ、C++ 標準では、返さdeleteれたのと同じポインターを提供する必要があると規定されています。new
これは、返されたポインターが改ざんされてはならないことを意味すると私は信じています。new使用する可能性のある返されたアドレスの前にハウスキーピング情報を保持する可能性があるためだと思いdeleteます。new'd ポインターを移動すると、これにアクセスできなくなる可能性があります。
それは未定義の動作ですか、それとも実装定義または未指定ですか? 誰でもこれを確認できますか?できれば、C++ 標準の正しい場所を指すことによって。
ドラフト C++ 標準 (Draft_SC22-N-4411.pdf) の自由に利用できるドラフト バージョンでは、セクション 5.3.5 に詳細が記載されています。Bjarneさんのホームページから頂きました。