12/05/20 00:31:14.34
>>930
本当にC++ですか?
932:デフォルトの名無しさん
12/05/20 07:07:29.09
>>930
C++/CLIはC++じゃありません
933:デフォルトの名無しさん
12/05/21 12:40:42.28
C++/CLIではthreadはうまく動かない
昔いろいろやってコンパイルだけはできるようになったけど、結局動くことはなかった
934:デフォルトの名無しさん
12/05/21 13:07:13.78
C++/CLIはスレッド出来る。.NETとおなじ機能。
C#でも不可能と言うことになる。
935:デフォルトの名無しさん
12/05/21 15:37:34.03
.NETのVMのスレッド用API機能とWin32のスレッド用API
混在してもまともに動く気がしない
936:デフォルトの名無しさん
12/05/21 15:43:05.54
>>934
933の言っているのはboost threadの話。
boostスレだからboostは省いたんだろう。
937:デフォルトの名無しさん
12/05/25 18:04:12.87
spirit::qiで質問なんですが、Attributeを捨てることって出来ないんでしょうか?
stringを返すruleを使うと、一番上までstringを返さないと存在しないAttribute(string)にアクセスしようとして
不正落ちしてしまいます。
パース中に使用し終わって、解析後にまで残す必要ないものなので捨てたいんですが・・・
あとついでに
>>757
URLリンク(www.boost.org)
このディレクティブを使えばiterator_rangeを受け取れるようです
938:デフォルトの名無しさん
12/06/03 09:10:19.76
VisualStudio 2010 でboost::filesystem::directory_iterator の leaf() を使いたいんですが
Version 1.36 では使えません、どのバージョンなら使えますか。
もしかして、まだ、未対応ですか?
939:デフォルトの名無しさん
12/06/03 09:14:06.80
2年前に1.42で使ってたきがした。
少なくてもその辺以降なら使えるんじゃないだろうか。
後は詳しい人よろしく
940:デフォルトの名無しさん
12/06/03 09:26:54.17
leafって名前変わらなかったっけ?
941:デフォルトの名無しさん
12/06/03 10:10:51.40
>>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:デフォルトの名無しさん
12/06/03 10:26:23.13
自己解決しました
マクロできってやるだけで、V2使えました。
943:デフォルトの名無しさん
12/06/11 18:33:25.03
leafはpathに名前変わった
ってもう見てないよね
944:デフォルトの名無しさん
12/06/11 23:13:13.00
path().filename() だろ
945:デフォルトの名無しさん
12/06/14 00:15:07.24
boost.intrusive
でコンテナに同じ要素を2つ以上登録するのってできないの?
lets boostの例で同じ要素追加しようとしたらエラーになった
lst.push_back(*pa);
lst.push_back(b);
lst.push_back(c);
lst.push_back(*pa); ここでおかしくなる
946:デフォルトの名無しさん
12/06/14 11:28:56.17
auto d = *pa;
lst.push_back(d);
しよう
947:デフォルトの名無しさん
12/06/14 11:38:00.10
>>945
できない。仕組み考えればわかるだろ
class hoge
{
hoge *prev;
hoge *next;
int value;
}
みたいな構造でprevやnextに自分自身のポインタを入れてリンクの終端を探して探索すれば無限ループになる
948:デフォルトの名無しさん
12/06/14 21:50:25.15
boost::interprocess::shared_ptrってプロセス間通信用の名前空間に入ってるけど、
DLLの入出力なんかに使ったら、常にexeとdllで同じバージョンに保っとかないと
クラッシュするよね。なんで:interprocessの中に入ってんの?
949:デフォルトの名無しさん
12/06/14 23:31:39.75
>>948
?
それをいうならshared_ptrに限らず異なる領域にあるモジュール間の通信に使うものは
双方のモジュールで互換性のあるものを使わないと問題がでるけど。
(必ずしも同じバージョンの同じライブラリを使う必要はない。そのほうが単純に楽で確実性が高いだけ)
それとBoost.'Interprocess'は名前どおりのプロセス間通信用に限定されたものでなくスレッド間通信用のライブラリでもある。
950:デフォルトの名無しさん
12/06/15 22:18:05.21
>>949
やっぱダメなんやね。
外から見るとテンプレートで型安全。
内部ではvoid* で保持。
実装ははpimplでDLLに配置ってな感じで
自前でスマポ作らないと安全な仕様は無理か。
951:デフォルトの名無しさん
12/06/15 22:45:31.07
両方自前ならknown/rquest versionのやり取りするだけじゃん?