タグ付けされた質問 「c++」

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。


3
コピーコンストラクタを無効にする
私はクラスを持っています: class SymbolIndexer { protected: SymbolIndexer ( ) { } public: static inline SymbolIndexer & GetUniqueInstance ( ) { static SymbolIndexer uniqueinstance_ ; return uniqueinstance_ ; } }; 次のようなコードを無効にするにはどうすればよいですか? SymbolIndexer symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( ); 次のようなコードのみを許可します: SymbolIndexer & ref_symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( );

13
libpng警告:iCCP:既知の不正なsRGBプロファイル
SDLを使用してPNG画像を読み込もうとしていますが、プログラムが機能せず、このエラーがコンソールに表示されます libpng警告:iCCP:既知の不正なsRGBプロファイル この警告が表示されるのはなぜですか?この問題を解決するにはどうすればよいですか?
173 c++  warnings  sdl  rgb  libpng 

12
GoでC ++を使用する方法
新しいGo言語でC ++コードを呼び出すにはどうすればよいですか?つまり、C ++クラスをラップしてGoで使用するにはどうすればよいですか?
173 c++  wrapper  go 

2
配列へのshared_ptr:使用する必要がありますか?
に関する小さなクエリshared_ptr。 shared_ptr配列を指すことを使用するのは良い習慣ですか?例えば、 shared_ptr<int> sp(new int[10]); そうでない場合、なぜそうではないのですか?私がすでに認識している理由の1つは、を増減できないことshared_ptrです。したがって、配列への通常のポインタのように使用することはできません。
172 c++  c++11  shared-ptr 

13
インライン仮想関数は本当にナンセンスですか?
この質問は、仮想関数をインラインにする必要がないというコードレビューコメントを受け取ったときに受けました。 インライン仮想関数は、関数がオブジェクトで直接呼び出されるシナリオで役立つと思いました。しかし、反論が私の頭に浮かびました-なぜ仮想を定義し、次にオブジェクトを使用してメソッドを呼び出す必要があるのでしょうか? とにかく展開されることがほとんどないので、インライン仮想関数を使用しないのが最善でしょうか? 分析に使用したコードスニペット: class Temp { public: virtual ~Temp() { } virtual void myVirtualFunction() const { cout<<"Temp::myVirtualFunction"<<endl; } }; class TempDerived : public Temp { public: void myVirtualFunction() const { cout<<"TempDerived::myVirtualFunction"<<endl; } }; int main(void) { TempDerived aDerivedObj; //Compiler thinks it's safe to expand the virtual functions aDerivedObj.myVirtualFunction(); //type …

10
C ++を使用して複数の変数を1行で宣言および定義するにはどうすればよいですか?
私はいつもこれらの3つの変数を宣言した場合、それらはすべて値0になることを int column, row, index = 0; しかし、インデックスだけがゼロに等しく、他は844553や2423445のようにジャンクであることがわかりました。 新しい行で各変数を宣言せずに、これらのすべての変数をゼロに初期化するにはどうすればよいですか?
172 c++ 

11
G ++を使用して複数の.cppおよび.hファイルをコンパイルする
メイン関数と他の関数の束を含む1つのcppファイルで不十分に記述されたC ++コードを継承しました。.hクラスとその関数定義を含むファイルもあります。 これまでは、プログラムはコマンドを使用してコンパイルされていましたg++ main.cpp。クラス.hと.cppファイルを分離したので、メイクファイルを使用する必要がありg++ main.cppますか、それともコマンドを使用できますか?

3
std :: atomicとは正確には何ですか?
私はそれstd::atomic<>がアトミックオブジェクトであることを理解しています。しかし、どの程度アトミックですか?私の理解では、操作はアトミックである可能性があります。オブジェクトをアトミックにすることは正確にはどういう意味ですか?たとえば、次のコードを同時に実行する2つのスレッドがあるとします。 a = a + 12; 次に、操作全体(たとえばadd_twelve_to(int))はアトミックですか?または、変数atomic(so operator=())に変更が加えられていますか?

4
GCC 5.4.0での高価なジャンプ
私は次のような関数を持っています(重要な部分のみを示しています): double CompareShifted(const std::vector<uint16_t>& l, const std::vector<uint16_t> &curr, int shift, int shiftY) { ... for(std::size_t i=std::max(0,-shift);i<max;i++) { if ((curr[i] < 479) && (l[i + shift] < 479)) { nontopOverlap++; } ... } ... } このように書かれた場合、関数は私のマシンで最大34msかかりました。条件をブール乗算に変更した後(コードは次のようになります): double CompareShifted(const std::vector<uint16_t>& l, const std::vector<uint16_t> &curr, int shift, int shiftY) { ... for(std::size_t i=std::max(0,-shift);i<max;i++) …
171 c++  gcc 


7
Objective-CとC ++の違いは何ですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 構文、機能、パラダイム、フレームワーク、ライブラリの点で、Objective-CとC ++の主な違いは何ですか? *重要:私の目標は、2つの言語間でパフォーマンス戦争を始めることではありません。本当の難しい事実だけが欲しい。実際、私の質問はパフォーマンスとは関係ありません!主観的に見える可能性のある情報源を教えてください。
171 c++  objective-c 


2
なぜラムダは単純な関数よりもコンパイラによって最適化できるのですか?
彼の本の中でThe C++ Standard Library (Second Edition)Nicolai Josuttisは、ラムダは単純な関数よりもコンパイラによってより最適化できると述べています。 さらに、C ++コンパイラは、通常の関数よりもラムダを最適化します。(213ページ) 何故ですか? インライン化に関しては、これ以上何の違いもないはずだと思いました。私が考えることができる唯一の理由は、コンパイラーがラムダを使用したより良いローカルコンテキストを持っている可能性があり、そのようなことがより多くの仮定を行い、より多くの最適化を実行できるためです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.