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

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

12
ユーザー定義リテラルがC ++に追加する新機能は何ですか?
C ++ 11を導入するユーザ定義リテラル既存のリテラルに基づいて新たなリテラル構文(の導入を可能にするint、hex、string、float任意のタイプのリテラルプレゼンテーションを持つことができるであろうように)。 例: // imaginary numbers std::complex<long double> operator "" _i(long double d) // cooked form { return std::complex<long double>(0, d); } auto val = 3.14_i; // val = complex<long double>(0, 3.14) // binary values int operator "" _B(const char*); // raw form int answer = 101010_B; // answer …


4
プライベートタイプでautoを使用できるのはなぜですか?
次のコードがコンパイルされて実行されることになんとなく驚いた(vc2012&gcc4.7.2) class Foo { struct Bar { int i; }; public: Bar Baz() { return Bar(); } }; int main() { Foo f; // Foo::Bar b = f.Baz(); // error auto b = f.Baz(); // ok std::cout << b.i; } このコードが正常にコンパイルされることは正しいですか?そして、なぜそれが正しいのですか?auto名前を(期待どおり)使用できないのに、プライベートタイプで使用できるのはなぜですか?

3
効果的なC ++はまだ効果的ですか?
この投稿で目にしたことから、私は本「Effective C ++」を読み始めることにしました。 しかし、C ++ 11のために多くの新機能があり、いくつかの良い習慣が変わった今、それが実際に良いアイデアであるかどうかはわかりません。C ++ 11の登場により、Effective C ++に含まれるアドバイスが廃止されましたか?その場合、どのトピックを避けるべきですか?

30
java.lang.ClassNotFoundException:パス上のクラスが見つかりませんでした:dexpathlist
私は現在、純粋にネイティブのndkを使用する必要があるプロジェクトに取り組んでいます。Irrlichtエンジンのソースからhelloworldの例を実行しようとするとうまくいきました。次に、その例と同じ形式に従ってプロジェクトで使用してみます。しかし、私は得ました: 03-14 01:40:05.308: E/AndroidRuntime(799): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.irrlicht.example1/android.app.POMActivity}: java.lang.ClassNotFoundException: Didn't find class "android.app.POMActivity" on path: DexPathList[[zip file "/data/app/com.irrlicht.example1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.irrlicht.example1-2, /system/lib]] プロジェクトの実行中。 ここに私のmain.cppファイルがあります: #include <android/log.h> #include <jni.h> #include <android_native_app_glue.h> #include "android_tools.h" #ifdef _IRR_ANDROID_PLATFORM_ void android_main(android_app* app) { __android_log_print(4 , "pom" , "nothing"); } #endif Android.mk: LOCAL_PATH := $(call my-dir)/.. IRRLICHT_PROJECT_PATH …
139 java  android  c++  android-ndk 

2
CMake:単体テストを含むプロジェクト構造
プロダクションソース(srcサブフォルダー内)とテスト(サブフォルダー内)を含めるようにプロジェクトを構成しようとしていtestます。これを構築するためにCMakeを使用しています。最小限の例として、以下のファイルを用意しています。 CMakeLists.txt: cmake_minimum_required (VERSION 2.8) project (TEST) add_subdirectory (src) add_subdirectory (test) src / CMakeLists.txt: add_executable (demo main.cpp sqr.cpp) src / sqr.h #ifndef SQR_H #define SQR_H double sqr(double); #endif // SQR_H src / sqr.cpp #include "sqr.h" double sqr(double x) { return x*x; } src / main.cpp-sqrを使用しますが、問題にはなりません test / CMakeLists.txt: find_package(Boost COMPONENTS …


5
いつstd :: thread :: detachを使用すればよいですか?
std::threadアプリケーションを高速化するために使用する必要がある場合があります。join()スレッドが完了するまで待機することも知っています。これは理解しやすいですが、detach()呼び出すことと呼び出さないことの違いは何ですか? なしdetach()では、スレッドのメソッドはスレッドを独立して使用して動作すると思いました。 切り離さない: void Someclass::Somefunction() { //... std::thread t([ ] { printf("thread called without detach"); }); //some code here } デタッチして呼び出す: void Someclass::Somefunction() { //... std::thread t([ ] { printf("thread called with detach"); }); t.detach(); //some code here }
139 c++  c++11  stdthread 

1
C ++:変数 'std :: ifstream ifs'に初期化子がありますが、型が不完全です
これがかなりうるさい場合は申し訳ありませんが、私はC ++にかなり慣れていません。私はファイルを開いてそれを使ってそれを読み込もうとしていますifstream: vector<string> load_f(string file) { vector<string> text; ifstream ifs(file); string buffer, str_line; int brackets = 0; str_line = ""; while ( getline(ifs, buffer) ) { buffer = Trim( buffer ); size_t s = buffer.find_first_of("()"); if (s == string::npos) str_line += "" + buffer; else { while ( s != …
139 c++  fstream  return-type 

3
size_tとstd :: size_tの違い
違いは何ですかsize_tとstd::size_t、彼らが使用しなければならないとき、宣言し、他の差別化機能している場所の面では?
139 c++  size-t 

5
ポイントを別のポイントを中心に回転(2D)
私はカードがファンアウトするカードゲームを作ろうとしています。現在、機能を備えたAllegro APIを使用してそれを表示します。 al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X ,Y,DEGREES_TO_ROTATE_IN_RADIANS); これでファンのエフェクトを簡単に作ることができます。問題は、マウスの下にあるカードを知ることです。これを行うには、ポリゴンの衝突テストを行うことを考えました。カードの4点を回転させてポリゴンを作成する方法がわかりません。基本的にはアレグロと同じ操作が必要です。 たとえば、カードの4つのポイントは次のとおりです。 card.x card.y card.x + card.width card.y + card.height 私は次のような機能が必要です: POINT rotate_point(float cx,float cy,float angle,POINT p) { } ありがとう
139 c++  algorithm 


11
「for」ループを使用してC ++ベクトルを反復処理する
C ++言語は初めてです。私はベクトルを使い始めており、インデックスを介してベクトルを反復処理するすべてのコードで、forループの最初のパラメーターは常にベクトルに基づくものであることに気づきました。Javaでは、ArrayListを使用して次のようなことを行う場合があります。 for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); } C ++でこれが表示されない理由はありますか?それは悪い習慣ですか?

2
移動したオブジェクトで何ができますか?
規格は、オブジェクトが移動された後でオブジェクトに対して何ができるかを正確に定義していますか?移動元オブジェクトでできることはそれを破壊することだけだと思っていましたが、それだけでは不十分です。 たとえばswap、標準ライブラリで定義されている関数テンプレートを使用します。 template <typename T> void swap(T& a, T& b) { T c = std::move(a); // line 1 a = std::move(b); // line 2: assignment to moved-from object! b = std::move(c); // line 3: assignment to moved-from object! } 明らかに、移動元のオブジェクトに割り当てることが可能でなければなりません。そうしないと、2行目と3行目が失敗します。では、移動元オブジェクトで他に何ができるでしょうか?これらの詳細を規格のどこに正確に見つけることができますか? (ちなみに、なぜ1行目ではT c = std::move(a);なくなのT c(std::move(a));ですか?)

10
メンバーデータでポインターまたは参照を優先する必要がありますか?
これは質問を説明するための単純化された例です: class A {}; class B { B(A& a) : a(a) {} A& a; }; class C { C() : b(a) {} A a; B b; }; したがって、BはCの一部を更新する責任があります。私はlintを介してコードを実行し、それは参照メンバーlint#1725を使用していました。これは、十分に公正なデフォルトのコピーと割り当てを処理することについて話しますが、デフォルトのコピーと割り当てもポインターに関して悪いので、そこにはほとんど利点がありません。 ネイキッドポインターは誰がそのポインターを削除する責任があるかについて不確実に導入するため、私は常に可能な限り参照を使用するようにしています。オブジェクトを値で埋め込むことを好みますが、ポインターが必要な場合は、ポインターを所有するクラスのメンバーデータでauto_ptrを使用し、オブジェクトを参照として渡します。 通常、メンバーデータでポインターを使用するのは、ポインターがnullになるか変更される可能性がある場合のみです。データメンバーの参照よりもポインターを優先する他の理由はありますか? 一度初期化されたリファレンスは変更されるべきではないので、リファレンスを含むオブジェクトは割り当て可能であるべきではないというのは本当ですか?

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