問題タブ [tr1]

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

c++ - std::tr1::array と boost::array の違い

std::tr1::array は、範囲外のインデックスにアクセスすると例外がスローされるという点で、boost::array と同じであるという印象を受けました。実際、ヘッダーをのぞいてみたところ、そのように見えます。次のコードがバス エラー (gcc バージョン 4.0.1 (Apple Inc. ビルド 5465)) と gcc 4.1.2 での segfault になる理由を誰か説明できますか?

ありがとう。

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

c++ - cstdintとtr1/cstdintの違い

<cstdint>との違いは何<tr1/cstdint>ですか?(それとは別に、1つは名前空間std::に、もう1つはに配置しますstd::tr1::

これはまだ標準ではないので、コンパイラ固有だと思うので、gccについて話します。tr1以外でコンパイルするには、でコンパイルする必要-std=c++0xがありますが、tr1を使用する場合はそのような制限はありません。

std::おそらく答えはありませんが、標準がない限り、物事を追加することはできません。したがって、c ++ 0xが標準化されるまでは、を使用してエラーを発行する必要がありますが、名前空間<cstdint>に追加するときに心配する必要はありません。tr1::それともこれにもっとありますか?

ありがとう。

ps-私がそうするように、あなたが標準として「std」を読むならば、私はこのQの単語の乱用をお詫びします。

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

c++ - GCC で shared_ptr を使用するポータブルな方法

GCC 4.1 は<tr1/memory>ヘッダーを使用し、GCC 4.3 はヘッダーを使用します。GCC 4.3.2 および GCC 4.2.1 で<memory>使用するポータブルな方法が必要です。GCC バージョン マクロをチェックしたり、Boost などの外部ライブラリを使用したりせずにそれを行う方法はありますか?shared_ptr

0 投票する
7 に答える
11311 参照

c++ - std :: tr1::functionおよびstd::tr1 :: bind

C ++クラスで非常に複雑なC関数を使用する際に問題が発生しました(C関数の書き換えはオプションではありません)。C関数:

自分で型のvoid関数を指定する必要がありintegrand、adapt_integrateはn次元の積分を計算します。calcTripleIntegralスタンドアロン関数の場合、(以下の)コードはスタンドアロン関数としてfunc機能します。(非静的!)クラスメンバー関数を被積分関数として渡したいのですが、これは簡単にオーバーロードされる可能性があるためです...

GCC 4.4.5(プレリリース)では、これにより次のことがわかります。

エラー:変数'std :: tr1 :: function func'には初期化子がありますが、型が不完全です

編集:私のコードのエラーは何ですか?GCC 4.4、4.5、および4.6でコンパイルしようとしましたが、すべて同じエラーが発生しました。これについては何も行われていないか、何か間違ったことをしました/ EDIT

どうもありがとうございました!よくわからない場合は、喜んで詳しく説明します。

PS:myIntegrator.cppのどこかで定義された関数への関数ポインターを使用して、tr1を使わずにこれを回避できますか?

最終更新:わかりました。TR1がこれに対して1行または2行のソリューションを提供していると誤解しました。残念。クラスを名前空間に「変換」し、関数宣言をコピーして貼り付けています。必要なのは、インターフェイスを再実装した1つの基本クラスと1つのサブクラスだけです。C関数ポインタ+C++クラス=私にとって悪いニュース。とにかくすべての答えをありがとう、あなたは私にC ++のいくつかの暗いコーナーを見せてくれました;)

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

c++ - VS10でweak_ptrを注文できません

VS10 を使用して、weak_ptr 用にコンパイルする「operator <」を取得できません。#include または #using がありませんか?

ドキュメントのコード サンプルでさえ、私には機能しません。 http://msdn.microsoft.com/en-us/library/bb982759.aspx

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

c++ - std::array の初期化について

テンプレート クラスの c++0x std::array メンバーがあり、いくつかの反復子を受け取るコンストラクターを使用してそれを初期化するとします。

ストレージのサイズと一致する範囲を提供していると仮定すると、コンストラクター初期化子で std::array を初期化し、ストレージ内の Tps の余分なデフォルト コンストラクターを回避することは可能ですか? この場合、 std::initializer_list<> を悪用することは可能ですか?

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

c++ - クレイジーC++ベクトルイテレータ

私は宣言する:

その後:

と:

の戻り値mList.size()は0ですが、イテレータを使用すると、空のベクトルを反復処理します。これが私がイテレータを使用する方法です:

「」を実行してsomeMethod()から、セグメンテーション違反をスローします。イテレータは空のベクトルでどのように反復していますか????

詳しくは

私はGTKを使用しているので、これがメインオブジェクトを渡す方法です。

これthis はClassB自体です。

そして、私はそれを次のように受け取ります:

mList私が引用したように宣言されています。他の属性にアクセスすると、それdata->xxxが機能し、問題がない場合、問題はでのみ発生しmList、この属性は動的に割り当てられません。

*dataとのメモリアドレスを確認しましたthisが、同じアドレスです。

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

c++ - std :: tr1::mem_fnリターンタイプ

私はこれの結果を置きたいです:

変数の内部では、この変数のタイプは何ですか?

これは次のようになります。

また、結果のタイプはstd::tr1::bind何ですか?

ありがとうございました !

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

c++ - ネイティブ VS 2010 (VC10) tr1 ライブラリを Boost.TR1 に置き換える

私は VS 2005 (VC8) を std::tr1 名前空間の Boost.TR1 と共に使用しており、ここで説明されているように、VS のインクルード ディレクトリを設定してブースト tr1 ヘッダーを優先させています

現在、VS 2010 (VC10) に移行していますが、同じインクルード メソッドを使用するとコンパイル エラーが発生するようです。

インクルード ディレクトリは次のように設定されています。

  1. [ブーストルート]\boost\tr1\tr1
  2. [ブーストルート]
  3. VC 標準インクルード ディレクトリ

サンプルコード:

ビルド出力:

ブーストの代わりに VC10 の tr1 ヘッダーを使用しているようです。VS に Boost.TR1 を代わりに使用させる正しい方法は何ですか?

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

c++ - BoostまたはVC10のTR1-どちらが良いですか?

現在、Visual Studio 2008から2010に移行しています。私のソフトウェアは、BoostとそのTR1機能を多用しています。VC10には独自のTR1実装があるため、多くのコンパイラエラーが発生します。

_HAS_CPP0Xスイッチを使用してMicrosoftのTR1実装を無効にできることは知っていますが(ここを参照)、これによって将来興味深い可能性のある他の機能も無効になるかどうかはわかりません。

それで、私はTR1のより良い実装がどちらであるか疑問に思っています:BoostからのものかMicrosoftからのものですか?何か違いはありますか?Microsoftの実装を無効にすることには不利な点がありますか?