[過去ログ] Boost総合スレ part9 (981レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
926: デフォルトの名無しさん [sage] 2012/04/27(金) 22:27:30.41 AAS
>>905905(2): 営利利用に関するLR審議中@詳細は自治スレへ [sage] 2012/04/11(水) 19:36:20.60 AAS
boost::optional<int> test () { return 1; }
void func {
if (auto i = test() && i.get() != -1) {
return ;
}
}
これコンパイル通らないけどどうして?
if (auto i = test() && i.get() != -1) {
↓
auto i = test() && i.get() != -1;
↓
auto n = test() && i.get() != -1;
auto i = n;
多少構文をばらしてみれば無理なの解るだろ
927: デフォルトの名無しさん [sage] 2012/04/27(金) 22:29:18.96 AAS
>>920920(3): デフォルトの名無しさん [sage] 2012/04/22(日) 02:06:07.47 AAS
JavaやFlashで使われている、イベント/リスナーをC++で実現したいのですが、
boostを使ってできますでしょうか?
boost::functionとboost::bindと、なんかブロードキャストするクラスか
なんかがあったから、それ組み合わせりゃ楽にできるよ
928: デフォルトの名無しさん [sage] 2012/04/27(金) 22:43:36.06 AAS
>>924924(1): 922 [sage] 2012/04/27(金) 14:45:37.73 AAS
>>923
ありがとうございます。参考にして見ます。
boostを使うだけでなく、boostの中身を理解して、自分でアロケーターだとか
イテレーターとか作ってみたいと思っているのですが、
やんやんさんのように高度に詳しくなるには、どういった書籍やサイトがお勧めでしょうか?
よろしければ教えてください。
興味があるところから入っていって、もっと知りたいと思ったら勝手に詳しくなるもの
929: デフォルトの名無しさん [sage] 2012/04/27(金) 23:47:34.23 AAS
>>920
boost::signals2はどうだろ
930(2): デフォルトの名無しさん [sage] 2012/05/20(日) 00:07:51.46 AAS
<boost/thread.hpp>をインクルードすると下記のエラーが出ます。
どうすればいいでしょうか?
開発環境はVC++ 2008/2010 WinXPです
ソースコードは
外部リンク[html]:metalphaeton.blogspot.jp
ここにあるものをそのまま使いました
1>c:\program files\boost\boost_1_47\boost\thread\win32\basic_timed_mutex.hpp(160) : warning C4793: boost::detail::basic_timed_mutex::unlock': ネイティブ関数としてコンパイルされました:
1> マネージ コードでサポートされていない組み込み型が見つかりました
1>c:\program files\boost\boost_1_47\boost\thread\win32\thread_primitives.hpp(314) : warning C4793: boost::detail::win32::interlocked_bit_test_and_set': ネイティブ関数としてコンパイルされました:
1> マネージ コードでサポートされていない組み込み型が見つかりました
1>main.obj : warning LNK4248: 未解決の typeref トークン (0100001F) ('boost.detail.win32._SECURITY_ATTRIBUTES') です。イメージを実行できません。
931: デフォルトの名無しさん [sage] 2012/05/20(日) 00:31:14.34 AAS
>>930
本当にC++ですか?
932: デフォルトの名無しさん [sage] 2012/05/20(日) 07:07:29.09 AAS
>>930
C++/CLIはC++じゃありません
933: デフォルトの名無しさん [sage] 2012/05/21(月) 12:40:42.28 AAS
C++/CLIではthreadはうまく動かない
昔いろいろやってコンパイルだけはできるようになったけど、結局動くことはなかった
934(1): デフォルトの名無しさん [sage] 2012/05/21(月) 13:07:13.78 AAS
C++/CLIはスレッド出来る。.NETとおなじ機能。
C#でも不可能と言うことになる。
935: デフォルトの名無しさん [sage] 2012/05/21(月) 15:37:34.03 AAS
.NETのVMのスレッド用API機能とWin32のスレッド用API
混在してもまともに動く気がしない
936: デフォルトの名無しさん [sage] 2012/05/21(月) 15:43:05.54 AAS
>>934
933の言っているのはboost threadの話。
boostスレだからboostは省いたんだろう。
937: デフォルトの名無しさん [] 2012/05/25(金) 18:04:12.87 AAS
spirit::qiで質問なんですが、Attributeを捨てることって出来ないんでしょうか?
stringを返すruleを使うと、一番上までstringを返さないと存在しないAttribute(string)にアクセスしようとして
不正落ちしてしまいます。
パース中に使用し終わって、解析後にまで残す必要ないものなので捨てたいんですが・・・
あとついでに
>>757757(1): デフォルトの名無しさん [sage] 2011/11/25(金) 22:45:17.23 AAS
boost.spirit.qiでセマンティックアクションから、
一致したruleのrangeを示すiteratorが欲しいのですがclassicを使うしか方法はないのでしょうか?
例えば、以下の様にしたいです。
void action(Iter first, Iter last){ ... }
//...
(char_('(') >> *char_('0') >> char_(')'))[action];
外部リンク[html]:www.boost.org
このディレクティブを使えばiterator_rangeを受け取れるようです
938(1): デフォルトの名無しさん [sage] 2012/06/03(日) 09:10:19.76 AAS
VisualStudio 2010 でboost::filesystem::directory_iterator の leaf() を使いたいんですが
Version 1.36 では使えません、どのバージョンなら使えますか。
もしかして、まだ、未対応ですか?
939: デフォルトの名無しさん [sage] 2012/06/03(日) 09:14:06.80 AAS
2年前に1.42で使ってたきがした。
少なくてもその辺以降なら使えるんじゃないだろうか。
後は詳しい人よろしく
940: デフォルトの名無しさん [sage] 2012/06/03(日) 09:26:54.17 AAS
leafって名前変わらなかったっけ?
941: デフォルトの名無しさん [sage] 2012/06/03(日) 10:10:51.40 AAS
>>938 です
thx です。
ごめんなさい、バージョンを間違えていました。
boost_1_46_1 でした。が、leaf() って使えないんですね?
<boost/filesystem/fstream.hpp> を調べると
#if BOOST_FILESYSTEM_VERSION == 2
# include <boost/filesystem/v2/fstream.hpp>
# else
Visual Studio 2010 ではundef になっています?
leaf() ってboost/filesystem/v2/fstream.hpp に入っているようなので
どうしたら使えますか?
942: デフォルトの名無しさん [sage] 2012/06/03(日) 10:26:23.13 AAS
自己解決しました
マクロできってやるだけで、V2使えました。
943: デフォルトの名無しさん [sage] 2012/06/11(月) 18:33:25.03 AAS
leafはpathに名前変わった
ってもう見てないよね
944: デフォルトの名無しさん [sage] 2012/06/11(月) 23:13:13.00 AAS
path().filename() だろ
945(1): デフォルトの名無しさん [sage] 2012/06/14(木) 00:15:07.24 AAS
boost.intrusive
でコンテナに同じ要素を2つ以上登録するのってできないの?
lets boostの例で同じ要素追加しようとしたらエラーになった
lst.push_back(*pa);
lst.push_back(b);
lst.push_back(c);
lst.push_back(*pa); ここでおかしくなる
946: デフォルトの名無しさん [sage] 2012/06/14(木) 11:28:56.17 AAS
auto d = *pa;
lst.push_back(d);
しよう
947: デフォルトの名無しさん [sage] 2012/06/14(木) 11:38:00.10 AAS
>>945
できない。仕組み考えればわかるだろ
class hoge
{
hoge *prev;
hoge *next;
int value;
}
みたいな構造でprevやnextに自分自身のポインタを入れてリンクの終端を探して探索すれば無限ループになる
948(1): デフォルトの名無しさん [sage] 2012/06/14(木) 21:50:25.15 AAS
boost::interprocess::shared_ptrってプロセス間通信用の名前空間に入ってるけど、
DLLの入出力なんかに使ったら、常にexeとdllで同じバージョンに保っとかないと
クラッシュするよね。なんで:interprocessの中に入ってんの?
949(1): デフォルトの名無しさん [sage] 2012/06/14(木) 23:31:39.75 AAS
>>948
?
それをいうならshared_ptrに限らず異なる領域にあるモジュール間の通信に使うものは
双方のモジュールで互換性のあるものを使わないと問題がでるけど。
(必ずしも同じバージョンの同じライブラリを使う必要はない。そのほうが単純に楽で確実性が高いだけ)
それとBoost.'Interprocess'は名前どおりのプロセス間通信用に限定されたものでなくスレッド間通信用のライブラリでもある。
950: デフォルトの名無しさん [sage] 2012/06/15(金) 22:18:05.21 AAS
>>949
やっぱダメなんやね。
外から見るとテンプレートで型安全。
内部ではvoid* で保持。
実装ははpimplでDLLに配置ってな感じで
自前でスマポ作らないと安全な仕様は無理か。
上下前次1-新書関写板覧索設栞歴
あと 31 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s