問題タブ [temporary]
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.
delphi - 以前に登録したアクションをショートカットで上書きする方法はありますか?
多くのアクションを持つユニットがあり、一部のアクションにはショートカットがあり、一部のアクションには同じショートカットさえあります。これは、それらがアプリケーション内の異なるモジュールに属しており、同時にコンテキストにないためです。
これで、いつでもどこでも開始できるグローバルな非モーダル ダイアログ (objectinspector と呼ばれる) ができました。モジュール内の他の場所と同じショートカットを持ついくつかのアクションがあります。
そのため、objectinspector がアクティブなときに同等のショートカットを共有するアクションを一時的にオーバーライドし、非アクティブ化されたときに解放したいと考えています。
objectinspectors の OnActivate イベントに次のコードがあります。
- ClientActions は、アクションを含むユニットです。
- RegisterAction は、イベントをアクションに接続するメソッドです。
- actObjectInspectorNewWindow が実際のアクションです。
- ShowNewObject は、アクションが実行されたときに呼び出されるイベントです。
したがって、すべてのモジュールとモーダルレス ダイアログには、上記の方法で登録されるいくつかのアクションがあります。問題は、2 つのアクションが同じショートカットを共有している場合に発生します。ユーザーがショートカットを押すと、最初に登録されたアクションが勝ち、実行されるようです。そのショートカットにアクションを登録する最後のアクションが実行されることを好みました。
これはどのように行うことができますか?
よろしく
mod-rewrite - すべてのトラフィック (新しいサイト) を一時的に他のドメインにルーティングしますか? ベストプラクティス?
クライアントの場合、トラフィックを一時的に自分のサブドメインにルーティングする必要があります。ホスト (共有ホスト) は、サイトが機能するように再構成する必要がありますが、クライアントはサイトをできるだけ早くオンラインにすることを望んでいます (他に何が新しいか ;-)
次の点を考慮してください。
- 新しいサイト/新しいドメインなので、従来の SEO トラフィックはありません。
- できれば、クライアントのドメインを訪問者のブラウザのアドレスバーに残しておきたい
- 私のサブドメインでは、すべてのトラフィックが mod_rewrite でフロント コントローラー パターンに従ってルーティングされます (つまり、http: //example.com/some-seo-url/ は index.php によって処理されます) 。
- 自分のホストも共有ホストであるため、仮想ホストの定義にアクセスできません。
しばらくの間、すべてのトラフィックを自分のサブドメインにルーティングするベスト プラクティスは何ですか?
これを実現する最善の方法についてアドバイスをお願いします。
c++ - C++で一時的な構造体を値で渡す簡単な方法は?
一時オブジェクトを関数に渡したいとします。構造体を使用して、1行のコードと2行のコードでそれを行う方法はありますか?
クラスを使用すると、次のことができます。
与えられた:
さて、構造体でそれを行うにはどうすればよいですか?私が持っている最も近いものは次のとおりです。
与えられた:
オブジェクトはより単純ですが、構造体にコンストラクターを与えずに、関数呼び出しに沿って構造体メンバーの初期化を行う方法があるかどうか疑問に思います。(コンストラクターは必要ありません。私が構造体を使用している理由は、この孤立したケースで定型的な get/set クラス規則を回避するためです。)
php - 一時オブジェクトのメソッドを呼び出す PHP 構文
最初にオブジェクトを変数に割り当てることを強制せずに、一時的に宣言されたオブジェクトでメソッドを呼び出す方法はありますか?
下記参照:
c++ - C++で一時オブジェクトを誤って作成する方法は?
何年も前、私は C は C++ に比べて完全に純粋であると信じていました。なぜなら、コンパイラは予測できないコードを生成することができなかったからです。私は今、反例にはvolatile
キーワードとメモリバリアが含まれていると信じています (マルチプロセッサプログラミングまたはメモリマップされたハードウェアデバイスのデバイスドライバで、プレーンなアセンブリ言語は C コンパイラの最適化よりもさらに純粋です)。
現時点では、C++ コンパイラが実行できる予測不可能なことを列挙しようとしています。C++ について私の心に残る主な不満は、コンパイラが暗黙的に一時オブジェクトをインスタンス化するということですが、これらのケースはすべて予想できると思います。私が考えているケースは次のとおりです。
explicit
キーワードを使用せずに、クラスがそれ自体以外の型のコピー コンストラクターを定義する場合- クラスがオーバーロードされた変換演算子を定義する場合:
operator ()
- 関数が参照ではなく値でオブジェクトを受け入れる場合
- 関数が参照ではなく値でオブジェクトを返す場合
他にもありますか?
c++ - ベクトルを*一時的に*ソートする良い方法は何ですか?
std :: vectorがあります。これは、特定の操作で選択したアルゴリズムで並べ替える必要がありますが、それ以外の時間は元の状態(たとえば、入力されたときに並べ替えられたアイテム)を維持します。
明らかに、std :: copyを使用して一時的なベクトルを作成し、それを並べ替えることができますが、入力されたアイテムにタイムスタンプを付けるなど、より良い方法があるかどうか疑問に思っています。
乾杯
c++ - C++ での一時オブジェクトの正確な破棄時刻に関する質問
次のコードセーフです(DEBUGで動作します):
それで - それは安全ですか?それを忘れて、明示的な tmp でコードを使用する必要がありますか?
とにかく-オプティマイザーがこの呼び出しから戻る前に一時的なものを強制終了できるかどうか、私はまだ興味があります:
編集:ありがとうございました!残念ながら、関数「takesPointer」(ライブラリの一部です)を変更することはできません。関数「takesReference」でラップすることしかできませんでした。これはtakePointerを呼び出します-これによりコピーが削除されるか、コンパイラは引き続き作成できますかコピー(「タイプ」はint-3x3-Matrixなので、それほど悪くはありませんが、それでも...)?
破壊の時期について:「takesPointer」が戻った後、または呼び出された後に破壊されますか?
c++ - 単一のステートメントで一時的な stringstream を c_str() に変換する
次の関数を検討してください。
stringstream を使用して文字列を生成し、それをこの関数に渡したいとします。1 つのステートメントでそれを実行したい場合は、次のようにします。
これによりエラーが発生します: 'str()' は 'basic_ostream' のメンバーではありません。では、operator<< は ostringstream ではなく ostream を返します。ostringstream にキャストして戻すのはどうですか?
1) このキャストは安全ですか?
これで、operator<<("Value: ") 呼び出しが判明しました。実際には、ostream の operator<<(void*) を呼び出して、16 進アドレスを出力しています。これは間違っています。テキストが必要です。
2) 一時的な std::ostringstream() の operator<< が ostream 演算子を呼び出すのはなぜですか? 確かに、一時には「ostream」ではなく「ostringstream」のタイプがありますか?
一時的にキャストして、正しいオペレーター呼び出しを強制することもできます!
これは機能しているようで、「Value: 5」を f() に渡します。
3) 現在、未定義の動作に依存していますか? キャストは珍しいようです。
最良の代替手段は次のようなものであることは承知しています。
...しかし、私はそれを1行で行う動作に興味があります。誰かが (疑わしい) マクロを作りたいとします:
これは期待どおりに機能しますか?
c++ - C++0x 右辺値参照と一時変数
(comp.std.c++ でこの質問のバリエーションを尋ねましたが、回答が得られませんでした。)
f(arg)
このコードの への呼び出しが の const ref オーバーロードを呼び出すのはなぜf
ですか?
私の直感は、f(string &&)
オーバーロードを選択する必要があることを示しています。なぜならarg
、一時的なものに変換する必要があり、一時的なものは左辺値の参照よりも右辺値の参照によく一致するからです。
これはGCC とMSVC では発生しません (編集: Sumant に感謝: GCC 4.3-4.5 では発生しません)。少なくともG++ とMSVC では、作成された中間の一時変数がある場合でも、左辺値は右辺値参照引数にバインドされません。実際、const ref オーバーロードが存在しない場合、コンパイラはエラーを診断します。f(arg + 0)
ただし、 orを書くと、期待どおりに右辺値参照のオーバーロードf(std::string(arg))
が選択されます。
f(string &&)
C++0x 標準を読んだところ、const lvalue ref 引数を渡すときと同様に、実行可能かどうかを検討するときに、const char * から文字列への暗黙的な変換を考慮する必要があるようです。セクション 13.3 (オーバーロードの解決) では、あまりにも多くの場所で右辺値参照と const 参照を区別していません。また、中間の一時がある場合、左辺値が右辺値参照 (13.3.3.1.4/3) にバインドされないようにする規則は適用されないようです。結局のところ、一時から移動することは完全に安全です。
これは:
- 実装された動作が意図された動作である標準を誤解/誤解していますが、私の例がそのように動作する正当な理由がありますか?
- コンパイラベンダーが何らかの形で犯した間違いですか? それとも、一般的な実装戦略に基づく間違いですか? または、他のベンダーによってコピーされた、たとえば GCC (この左辺値/右辺値参照バインディング規則が最初に実装された場所) の間違いですか?
- 標準の欠陥、または意図しない結果、または明確にする必要があるものはありますか?
編集: 関連する追加の質問があります: C++0x 右辺値参照 - 左辺値-右辺値バインディング