問題タブ [noncopyable]

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 投票する
6 に答える
2599 参照

c++ - コピー可能なブースト::シグナルを作成するには?

コピーできない理由はわかりますが (シグナルのコピーには明確な意味がないためです)、ある種のコピー ctor (ノーオペレーションまたはすべての接続をコピーするもののいずれか) をboost::signal提供するバージョンが必要です。

私がこれを必要とする理由は、私のプロジェクトでは多くのオブジェクトが特徴的なシグナルのおかげでコピー不可になり、それらを快適な値のセマンティクス (shared_ptrs はそれほど快適ではありません) で扱うために、DRY に違反して手動で copy-ctors を提供する必要があるためです。明らかに、ある種の準コピー可能シグナルは、ここでの C++ の醜さに対する良い回避策です。

頭に浮かぶ最初の解決策はsignal、派生クラスでコピー ctor を継承して提供することですが、signal には仮想 dtor がないため、それはできません。

考え?

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

c++ - コピー不可能な要素のコンテナを作成する方法

コピーできない要素でSTLコンテナを使用する方法はありますか?

このようなもの:

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

c++ - ブースト用の仮想デストラクタ:コピー不可能なクラス?

次のコードについて質問があります。

私の考えでは、MyClassは構築または割り当てを使用してコピーすることはできません。サポートしたくないMyClassからのクラスの派生をサポートしたい場合は、仮想デストラクタを使用する必要があります。このクラスへのポインタを作成して渡すつもりはありません。

シングルトンは必要ありません。仮想デストラクタを削除することのマイナス面はわかりません。

コピーできないクラスの仮想デストラクタを削除すると、潜在的な問題が発生しますか?シングルトンである必要はないクラスを処理するためのより良い方法はありますが、別のクラスの1つのインスタンスのみが必要であり、継承はサポートされていませんか?

0 投票する
10 に答える
66446 参照

c++ - このC++オブジェクトをコピー不可にするにはどうすればよいですか?

タイトルを参照してください。

私は持っています:

Fooをコピーできないようにするには、ここから何をする必要がありますか?

ありがとう!

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

c++ - 一般的に重量クラスをコピー不可にするのは良い習慣ですか?

潜在的に多くの頂点を含む Shape クラスがあり、重いクラスの偶発的な不必要なコピー (たとえば、参照ではなく値による受け渡し) を防ぐために、copy-constructor/copy-assignment を非公開にすることを考えていました。

Shape のコピーを作成するには、意図的に "clone" または "duplicate" メソッドを呼び出す必要があります。

これは良い習慣ですか?STL コンテナーがこのアプローチを使用しないのはなぜでしょうか。値渡しはほとんどしたくないからです。

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

html - コピー時にテキストの一部を除外する方法

一部のテキストをコピー不可にしようとしています。私の目的は、人々が私のWebサイトからテキストをコピーするのを阻止することではなく、使いやすくすることです。ファイルサイズのファイルのリストがありますが、ファイル名のみをコピーし、ファイルサイズはコピーしたくありません。

これまでにいくつかの異なる方法を試しましたが、うまくいきませんでした。CSSユーザー選択でテキストを選択できなくなりましたが、2行以上を選択してもファイルサイズをコピーできます。

コピーを防ぐためにボタンを使ってみましたが、うまくいきませんでしたが、何かアイデアはありますか?

ターゲットブラウザはMacのSafariであるため、最新のSafariで動作する実験的なCSS3またはHTML5コマンドで問題ありません。

(提案されたタイトルと1つの解決策をmvdsに感謝します)

0 投票する
10 に答える
9907 参照

c++ - C++ でコンテナーに挿入するときにコピーできないオブジェクトを処理する方法

コピー不可能なオブジェクトを扱うベストプラクティスを探しています。

明らかにコピーできないミューテックスクラスがあります。それを強制するために、プライベートコピーコンストラクターを追加しました。

それはコードを壊しました-いくつかの場所は単に修正する必要がありましたが、データメンバーとして、または継承によってミューテックスを使用するクラスがコンテナーに挿入されているという一般的な問題があります。

これは通常、コンテナーの初期化中に発生するため、ミューテックスはまだ初期化されていないため問題ありませんが、コピー コンストラクターがないと機能しません。ポインターを含むようにコンテナーを変更することはできません。

何かアドバイスはありますか?

0 投票する
2 に答える
2343 参照

c++ - booster :: noncopyableのユースケースは何ですか?

最初に:それはboost::noncopyableまたはbooster::noncopyableですか。私は両方を別の場所で見ました。

クラスをコピー不可にしたいのはなぜですか?サンプルのユースケースをいくつか挙げていただけますか?

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

input - SFML 入力システムの問題

そのため、ゲーム エンジンを SDL から SFML に移植していましたが、入力システムに問題が発生しました。入力.h

入力.cpp

これからこれらのエラーが発生します:

C:\c++\sdl\bullwhip\lib\Bullwhip\/Input.h:15: エラー: 'bc_Input::App' は定数式に表示できません C:\c++\sdl\bullwhip\lib\Bullwhip\/Input .h:15: エラー: '.' 定数式 C:\c++\sdl\bullwhip\lib\Bullwhip\/Input.h:15: エラー: 関数呼び出しを定数式 C:\c++\sdl\bullwhip\lib\ に含めることはできませんBullwhip\/Input.h:15: エラー: ISO C++ はメンバー 'input' の初期化を禁止しています C:\c++\sdl\bullwhip\lib\Bullwhip\/Input.h:15: エラー: 'input' を静的にしています C:\ c++\sdl\bullwhip\lib\Bullwhip\/Input.h:15: エラー: 非整数型 'sf::Input&' の静的データ メンバーの無効なクラス内初期化

c:\program files (x86)\codeblocks\mingw\bin../lib/gcc/mingw32/4.4.0/../../../../include/SFML/System/NonCopyable.hpp:57 : エラー: 'sf::NonCopyable::NonCopyable(const sf::NonCopyable&)' はプライベートです c:\program files (x86)\codeblocks\mingw\bin../lib/gcc/mingw32/4.4.0/.. /../../../include/SFML/Window/Window.hpp:56: エラー: このコンテキスト内

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

c++ - C++ const 左辺値参照

私が持っていると仮定します:

  • コピー不可のクラスA
  • メンバーとして const A& a を持つクラス B (コンストラクターで A を受け取り、初期化リストに設定します)
  • 機能A GenerateA();

これは、 B(GenerateA()) を行うことが有効であることを意味しますか?

つまり、const ref は、generateA() が返す A のコピーが行われないことを意味しますか? そして、返されたテンポラリのスコープは、B が存在する限り拡張されるということですか?

編集: コメントからのアドオンの質問: lvalue が const A& の場合、A& を GenerateA() からローカル A に返すことは許容されますか?

ありがとう!