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

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

6
[]演算子がSTLマップのconstではないのはなぜですか?
質問のために考案された例: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } []演算子は非定数であるため、これはコンパイルされません。 []構文は非常にきれいに見えるので、これは残念です。代わりに、私は次のようなことをしなければなりません: void MyClass::MyFunction( int x ) const { MyMap iter = m_map.find(x); std::cout << iter->second << std::endl } これはいつも私を悩ませてきました。[]演算子が非定数なのはなぜですか?
89 c++  const 

3
const voidとは何ですか?
の説明はstd::is_void次のように述べています。 Tがタイプvoid、const void、volatile void、またはconst volatile voidの場合、trueに等しいメンバー定数値を提供します。 それでは、、const voidまたはvolatile void? この回答は、const void戻り値の型が無効になることを示しています(ただし、VC ++ 2015でコンパイルされます) const void foo() { } 標準でconst void無効な場合(VCが間違っている)-それでは何const voidですか?
89 c++  c++11  c++14 

3
shared_ptrマジック:)
リドストローム氏と私は議論をしました:) Lidström氏の主張は、構成shared_ptr<Base> p(new Derived);はBaseに仮想デストラクタを必要としないというものです。 Armen Tsirunyan:「本当に?shared_ptrは正しくクリーンアップされますか?この場合、その効果をどのように実装できるかを示していただけませんか?」 DanielLidström:「shared_ptrは独自のデストラクタを使用してConcreteインスタンスを削除します。これはC ++コミュニティではRAIIと呼ばれます。RAIIについてできる限りのことを学ぶことをお勧めします。これにより、C ++コーディングが非常に簡単になります。あらゆる状況でのRAII。」 Armen Tsirunyan:「RAIIについて知っています。また、pnが0に達すると、最終的にshared_ptrデストラクタが保存されたpxを削除する可能性があることも知っています。しかし、pxに静的型ポインタBaseと動的型ポインタがあるDerived場合Base、仮想デストラクタがない限り、これは未定義の動作になります。間違っている場合は修正してください。」 DanielLidström:「shared_ptrは静的型がConcreteであることを知っています。コンストラクターに渡したので、これを知っています。魔法のように見えますが、設計によるものであり、非常に優れていると確信できます。」 だから、私たちを判断してください。ポリモーフィッククラスに仮想デストラクタを持たせることなく、shared_ptrを実装することはどのように可能ですか?前もって感謝します

4
可変個引数テンプレートの引数を保存する方法は?
後で使用するためにパラメータパックを何らかの方法で保存することは可能ですか? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible } } その後、: void main(){ Action<int,int> add([](int x, int y){std::cout << (x+y);}, 3, …




1
保証されたコピーの省略はどのように機能しますか?
2016年のOuluISO C ++標準会議で、標準化委員会によって、簡略化された値のカテゴリによる保証されたコピーの省略と呼ばれる提案がC ++ 17に投票されました。 保証されたコピーの省略はどの程度正確に機能しますか?コピーの省略がすでに許可されているいくつかのケースをカバーしていますか、それともコピーの省略を保証するためにコードの変更が必要ですか?

2
一言で言えば、COM(コンポーネントオブジェクトモデル)とは何ですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 7年前に閉鎖されました。 この質問を改善する COMオブジェクトは、OSによって管理される汎用オブジェクトのようです。オブジェクトは厳密なインターフェイスに従い、オブジェクトにクエリを実行して情報を決定できます。これはCOMオブジェクトとは何ですか?
89 c++  com 

4
関数テンプレートを部分的に特殊化できないのはなぜですか?
言語仕様が関数テンプレートの部分的な特殊化を禁止していることを私は知っています。 なぜそれが禁止されているのか、その理由を知りたいのですが?それらは役に立ちませんか? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void f<T, int>() {} //not allowed!

3
OpenGLでglOrtho()を使用する方法は?
の使い方がわかりませんglOrtho。誰かがそれが何のために使われるのか説明できますか? xy座標とz座標の範囲の制限を設定するために使用されますか? glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); これは、x、y、zの範囲が-1から1であることを意味しますか?
89 c++  c  opengl 

8
vector <struct>のC ++ 11 emplace_back?
次のプログラムを検討してください。 #include &lt;string&gt; #include &lt;vector&gt; using namespace std; struct T { int a; double b; string c; }; vector&lt;T&gt; V; int main() { V.emplace_back(42, 3.14, "foo"); } それは機能しません: $ g++ -std=gnu++11 ./test.cpp In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:0, from /usr/include/c++/4.7/bits/allocator.h:48, from /usr/include/c++/4.7/string:43, from ./test.cpp:1: /usr/include/c++/4.7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator&lt;_Tp&gt;::construct(_Up*, _Args&amp;&amp; …
89 c++  c++11 


5
SwiftのC ++クラスとの対話
私はC ++で書かれたクラスの重要なライブラリを持っています。私はそれらをSwiftコードとして書き直すのではなく、Swift内のある種のブリッジを介してそれらを利用しようとしています。主な動機は、C ++コードが複数のプラットフォームで使用されるコアライブラリを表すことです。事実上、私はSwiftベースのUIを作成して、コア機能がOSXで機能できるようにしています。 「SwiftからC ++関数を呼び出すにはどうすればよいですか」という質問が他にもあります。これは私の質問ではありません。C ++関数にブリッジするには、以下が正常に機能します。 「C」を介してブリッジヘッダーを定義します #ifndef ImageReader_hpp #define ImageReader_hpp #ifdef __cplusplus extern "C" { #endif const char *hexdump(char *filename); const char *imageType(char *filename); #ifdef __cplusplus } #endif #endif /* ImageReader_hpp */ Swiftコードで関数を直接呼び出すことができるようになりました let type = String.fromCString(imageType(filename)) let dump = String.fromCString(hexdump(filename)) 私の質問はより具体的です。Swift内からC ++クラスをインスタンス化して操作するにはどうすればよいですか?これについては何も公開されていないようです。
89 c++  swift 

3
std :: stringをファイルに書き込む方法は?
std::string受け入れている変数をユーザーからファイルに書き込みたい。このwrite()方法を試してみたところ、ファイルに書き込まれました。しかし、ファイルを開くと、文字列の代わりにボックスが表示されます。 文字列は可変長の単一単語のみです。であるstd::string。このために適しまたは私は文字配列か何かを使用する必要があります。 ofstream write; std::string studentName, roll, studentPassword, filename; public: void studentRegister() { cout&lt;&lt;"Enter roll number"&lt;&lt;endl; cin&gt;&gt;roll; cout&lt;&lt;"Enter your name"&lt;&lt;endl; cin&gt;&gt;studentName; cout&lt;&lt;"Enter password"&lt;&lt;endl; cin&gt;&gt;studentPassword; filename = roll + ".txt"; write.open(filename.c_str(), ios::out | ios::binary); write.put(ch); write.seekp(3, ios::beg); write.write((char *)&amp;studentPassword, sizeof(std::string)); write.close();` }
89 c++ 

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