問題タブ [qualified-name]
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.
haskell - 関数セットの Haskell *qualified* インポート
Haskell では、次のように、その名前またはショートカット名で修飾されたモジュールをインポートできます。
次のように、モジュールから関数の選択セットのみをインポートしたり、選択セット以外のすべての関数をインポートしたりすることもできます。
import Data.List (sort, intersperse)
上記の例のようList.sort
に、関数の特定のセットをインポートすることはできList.intersperse
ますか?
これは機能しませんが、私が求めているのはその精神です。
多分
c++ - using ディレクティブによるあいまいな名前の検索
同じ名前の名前空間とクラスを 1 つの宣言領域に入れることは許可されていません。
形式が正しくありません (§3.3.1 /4 を参照)。ただし、using ディレクティブを介していずれかの名前を導入できます。
このコードは形式が正しくありませんか? VC++はClangと同様にそう考えています:
ただし、GCC はそれを受け入れます。
誰が正しいですか?
entity-framework - EF 6 でエンティティを修飾する方法
私の問題は、WebPages、Entity Framework 6.1.3、c#、および SQL CE データベースを使用する Web サイトにあります。「データベース優先」で生成されたエンティティ型の 1 つは、system.TimeZone クラスとまったく同じ名前ですが、Intellisense と IDE は名前の競合を正しく検出/処理していません。
私の質問は、システム クラスとの名前の競合を防ぐために、コード内のエンティティ名を完全に修飾する方法 (EF 6.1.3、エンティティ コンテキストを使用) です。
既存の db テーブルの EF 実装があります。テーブルには「TimeZones」という名前が付けられました。エンティティ モデルは、データベース ファースト アプローチを使用して生成されました。
EF の複数形化規則により、テーブル名が "TimeZone" という名前のエンティティに変換されました。
問題は、「TimeZone」エンティティを新しくしようとすると、新しい TimeZOne インスタンスへのすべてのドット参照が System.TimeZone のプロパティとメソッドであるため、「System.TimeZone」クラスを新しくしようとしていると IntelliSense が判断することです。クラス。エンティティ モデルの TimeZOne エンティティのプロパティが表示されることを期待していました。
TimeZone エンティティを名前空間で完全に修飾するか、コードの先頭にある using ステートメントにモデルの名前空間を含めることができると期待しています。ただし、EF 6.1.3 モデル プロパティが提供する「名前空間」は、真の名前空間ではないようです。EF は既存のデータベースから生成されました。
c++ - C++ 宣言の明示的な修飾
次の名前空間定義は、最初の宣言がコメント アウトされているとコンパイルに失敗します。の最初の宣言foo
がコメント解除されている場合、問題なくコンパイルされます。
標準の関連部分 (§8.3¶1) は次のように述べています。
declarator-id が修飾されている場合、宣言は以前に宣言されたメンバーを参照するものとします
この規則により、他の名前空間への名前の導入が防止されることを理解しています。そのルールを緩和して、現在の名前空間を参照する修飾された idを許可できるかどうか疑問に思います。
node.js - Node.js で非修飾名をインポートする
Python では、モジュール内の名前を修飾されたものとしてインポートできます
または無資格
Node.jsでは、修飾されたものとしてインポートできます
修飾されていない名前をインポートする方法はありますか?
c++ - 修飾名のオーバーロード解決
次の関数呼び出しを検討してください。
11.3.1.1.1、パラグラフ 3 [over.call.func] ( N4778 ) は、このケースをカバーしています。
修飾されていない関数呼び出しでは、名前は
->
or.
演算子によって修飾されず、より一般的な形式のprimary-expressionを持ちます。名前は、関数呼び出しでの名前検索の通常のルールに従って、関数呼び出しのコンテキストで検索されます...
ここで、は、またはによって修飾されていないという意味で、修飾されていfoo::bar
ない名前です。したがって、この段落が適用されます。ここで、「~のコンテキストで検索された」というフレーズの意味は、6.4、パラグラフ 2 [basic.lookup] で説明されています。->
.
「式のコンテキストで検索された」名前は、その式が見つかったスコープで非修飾名として検索されます。
ただし、 name lookup の領域ではfoo::bar
修飾名です。つまり、この段落の組み合わせは基本的に、修飾名は非修飾名検索の規則によって検索されるということを示しています。しかし、修飾されていない名前のルックアップがより狭いスコープ、つまりtoに再帰的に入ることができるとは思いません。これは欠陥ですか?foo::bar
foo
bar