[過去ログ] Boostを語れゴラァ part4 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
836: デフォルトの名無しさん [sage] 2007/10/06(土) 12:18:52 AAS
要らないなぁ
837: デフォルトの名無しさん [sage] 2007/10/06(土) 13:31:44 AAS
言語仕様に変更が必要な割にはメリットが薄いなぁ
838: デフォルトの名無しさん [sage] 2007/10/06(土) 13:35:39 AAS
Propertyそのものはいらないな。
やっぱりtemplateで。
839: 833 [] 2007/10/06(土) 16:50:14 AAS
>>834
無理なんだ...ショボーン
840: デフォルトの名無しさん [sage] 2007/10/06(土) 17:14:02 AAS
getだのsetだの関数にしなくても
コピー代入演算子あたりのオーバーロードを駆使すれば
VB的なプロパティは実現できるではないだろうか
841: デフォルトの名無しさん [sage] 2007/10/06(土) 17:20:46 AAS
メンバが全部ユーザ定義型ならそれっぽくできるだろうけど・・・
842: デフォルトの名無しさん [sage] 2007/10/06(土) 17:25:34 AAS
組み込み型から派生したクラスが作れればいいのに
843: デフォルトの名無しさん [sage] 2007/10/06(土) 17:29:10 AAS
schemeがcontinuationをfirst class objectにしたみたいに、
C++もreference/dereferenceを扱えるようにすればいいのじゃ。
844: デフォルトの名無しさん [] 2007/10/06(土) 20:33:13 AAS
>>833
http://www.comeaucomputing.com/techtalk/templates/#stringliteral を参考にして、
template<const char* S>
struct Z { static const int value = S[0]; } ;
とか
template<int N, const char S[N]>
struct Z { static const int value = S[0]; } ;
とか試してみたが、コンパイル通らんね。
どうにかならんのかなこれ。
845(1): デフォルトの名無しさん [sage] 2007/10/06(土) 20:43:06 AAS
template<char C1, char C2 = '\0', char C3 = '\0', char C4 = '\0'>
struct Z
Z::<'a', 'b', 'c'>::value
または、全てのコンパイラでいけるのかしらんけど
template<unsigned int C>
struct Z
Z<'abc'>::value
846(1): 833 [] 2007/10/06(土) 20:46:08 AAS
template<const char* S>
struct Z { static const int value; } ;
template<const char* S>
const int Z<S>::value = S;[0]
char hoge[] = "aaa";
int main() {
return Z<hoge>::value;
}
はどうもコンパイルできるっぽいです。ありがとうござました。
847: デフォルトの名無しさん [sage] 2007/10/06(土) 20:53:55 AAS
template<char const *STR> struct Test
{
char const *p;
Test(void) : p(STR) { }
void Print(void) { std::cout << STR << std::endl; }
void Print2(void) { std::cout << p << std::endl; }
};
extern char const STR[] = "Hello.";
int main(int argc, char *argv[])
{
Test<STR> test;
test.Print();
test.Print2();
}
内部リンケージがあるからダメって怒られたから
externつけたらいけちまった。なんてこった…。
848: 833 [] 2007/10/06(土) 21:14:28 AAS
>>846
だー
クラス外で初期化するんじゃ、全然コンパイル時の計算にならんですね。orz。
849: デフォルトの名無しさん [sage] 2007/10/06(土) 21:50:30 AAS
つーかな
enum{
AAA = "a"[0]
};
をコンパイルしたら分かると思うけど
"a"[0] という式がもうコンパイル時定数式とならないからムリなの。
850(1): デフォルトの名無しさん [] 2007/10/06(土) 22:03:13 AAS
おっしゃるとおりで。
C++0xでは何か変化あります?
851: デフォルトの名無しさん [sage] 2007/10/06(土) 23:34:58 AAS
おまいらDに負けそうですよ
852(3): デフォルトの名無しさん [sage] 2007/10/06(土) 23:58:02 AAS
namespace po = boost::program_options ;
po::options_description desc("options") ;
desc.add_options()
("hage", po::wvalue< std::wstring >()->default_value("Bjarne Stroustrup") , "hage")
;
このコードをコンパイルしようとすると、std::wstringからstd::stringへ、lexical_castしようとしてエラーになるのですが、
あきらめるしかないのでしょうか?
853: デフォルトの名無しさん [] 2007/10/07(日) 00:01:44 AAS
脊髄で答えるけど、禿かビャーネスポスポのどちらかor両方にLをつけてないからじゃないの?
L"hage" な。
854: デフォルトの名無しさん [sage] 2007/10/07(日) 00:05:43 AAS
書き間違えてました。
ちなみに、
Lを付けないと、default_valueはstd::wstringを引数に取るのでコンパイルエラー
Lを付けると前述の通り。
855: デフォルトの名無しさん [sage] 2007/10/07(日) 00:26:09 AAS
>>852
> Throughout this document "Unicode support" is a synonym for "char to wchar_t conversion" support
856: 852 [sage] 2007/10/07(日) 00:52:03 AAS
今日3時に書いた自分のブログの愚痴が、もうgoogleに拾われて、しかも上位に来るとか、何のギャグですか。
857: デフォルトの名無しさん [sage] 2007/10/07(日) 00:56:47 AAS
虫さんか。
まぁ、po使ってる奴が少ないんだろうさ。
858: デフォルトの名無しさん [sage] 2007/10/07(日) 01:24:32 AAS
調べ者してたらgoogleの三番目に出てきたページが
過去に自分がこの板で質問した内容だった時の脱力感
859: デフォルトの名無しさん [sage] 2007/10/07(日) 01:27:07 AAS
Boost使いなどみんなそんなもんだ。
>>826 でいうと大体いなくなったからな。
860: デフォルトの名無しさん [sage] 2007/10/07(日) 03:58:10 AAS
最近boostを知ったんだけどかなり使えそうだね
これ知らずにC++やってた(/д\;)ハズカシ
861: 852 [sage] 2007/10/07(日) 04:10:44 AAS
自分で書き換えてやろうかとおもったら、
なんか意外とあっさりできてしまった。
boost/program_options/value_semantic.hppに
#include <boost/program_options/detail/convert.hpp>
を付け加えて、
typed_valueのプライマリテンプレートの下に、次のメンバ特殊化を付け加えればいい。
template<>
typed_value<std::wstring, wchar_t> *
typed_value<std::wstring, wchar_t>::default_value(std::wstring const & v)
{
m_default_value = boost::any(v);
m_default_value_as_text = boost::to_utf8(v);
return this;
}
メンバ特殊化って便利だね。
862(2): デフォルトの名無しさん [] 2007/10/07(日) 04:40:00 AAS
C++相談室part56のこれ相当のものって、Boostに入ってますか?
template<typename T, size_t N> char (&lengthof_helper_char_array(T (&a)[N]))[N];
#define lengthof(a) (sizeof(lengthof_helper_char_array(a)))
Rangeのsize()はちょっと違うよね。
863: 862 [] 2007/10/07(日) 05:33:37 AAS
http://www.ddj.com/cpp/197800525?pgno=7 の方法で長さを出す奴でもかまいません。
// a struct defined such that sizeof(Size<N>::Type) == N
template<int N>
struct Size
{
typedef char Type[N];
};
// returns an object whose size is the number of
// elements in the passed array
template<typename T, int N>
typename Size<N>::Type& count(const T(&array)[N]);
で、sizeof(count(a)) という。
864(1): デフォルトの名無しさん [sage] 2007/10/07(日) 10:47:01 AAS
>850
既に規格draft に入ってる
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2369.pdf
見てる限りでは "a"[0] も constant expression になりそうな気がする。
あるいは、直接は無理でも
constexpr char A[] = "a";
としておいて、A[0] だったら通るのかな?
これだと結局単純には template では使えなくて、>845 の上みたいなことをする必要があるかもしれないけど。
>862
コンパイル時定数として使えるものというのなら TypeTraits の extent が使えそうな気がする。
865: デフォルトの名無しさん [] 2007/10/07(日) 11:28:18 AAS
http://www.boost.org/doc/html/boost_typetraits/reference.html#boost_typetraits.extent
ですか?
866(1): デフォルトの名無しさん [sage] 2007/10/07(日) 11:39:34 AAS
>>864
extentだと変数ではなく型を渡す羽目になるような。
typeofがあることを前提とするなら問題ないけど。
867: デフォルトの名無しさん [] 2007/10/07(日) 19:30:20 AAS
>>866
VC8って結局boostのtypeofは使えるの?つかえ内の?
868(5): デフォルトの名無しさん [] 2007/10/07(日) 21:38:48 AAS
今朝Boostを知った新参者です。
コンパイラはVC++6を使ってます。
質問ですがBoostのmatrixを使って、
複素数の行列の計算は可能でしょうか。
実数行列matrix<double>
複素行列matrix<complex>
のような感じにしたいのですが。
complexは標準ライブラリのを使おうと思ってます。
(他に推奨ありますか?)
よろしくお願いします。
869(1): デフォルトの名無しさん [sage] 2007/10/07(日) 21:47:48 AAS
VC6か……
stlportでもいれないとな…
870(1): デフォルトの名無しさん [sage] 2007/10/07(日) 21:50:17 AAS
VC6か・・・・
871(1): デフォルトの名無しさん [sage] 2007/10/07(日) 21:51:11 AAS
vc6か。。。。
872(1): 868 [sage] 2007/10/07(日) 21:53:03 AAS
ええっ
VC6の時点で試合終了ですか
873(1): デフォルトの名無しさん [sage] 2007/10/07(日) 21:58:55 AAS
まだサポートしてたっけ
VS2005にすれば
874(1): デフォルトの名無しさん [sage] 2007/10/07(日) 22:00:35 AAS
諦めたらそこで試合終了だy・・・VC6か・・・諦めたら?
875: デフォルトの名無しさん [sage] 2007/10/07(日) 22:01:05 AAS
vc2005EE + WTL で無料でwinアプリ作れちゃうよ
876: デフォルトの名無しさん [sage] 2007/10/07(日) 22:03:32 AAS
微笑ましいなw
877: 868 [sage] 2007/10/07(日) 22:06:33 AAS
とりあえずstlportを入れてみました。
これで何とかなりますか?
878(1): 868 [] 2007/10/08(月) 00:14:19 AAS
何かもう駄目っぽい気がしたので、とりあえずcomplexは保留します。
(できれば知りたいですが)
実数行列だけ考えることにして、ためしに
http://www.page.sannet.ne.jp/d_takahashi/boost/ublas/index.html#SEC4
↑ここにある
連立方程式を解く
の例にあるコードを、そのままコピーして
ビルドしようとしましたが
\boost_1_32_0\boost\numeric\ublas\lu.hpp(131) : error C2780:
'const class boost::numeric::ublas::matrix_indirect<M,class
boost::numeric::ublas::indirect_array<A> > __cdecl boost::n
umeric::ublas::project(const class boost::numeric::ublas::matri
x_indirect<M,class boost::numeric::ublas::indirect_array<A> >
&,const class boost::numeric::ublas::indirect_array<A> &,const cl
ass boost::numeric::ublas::indirect_array<A> &)' : 3 引数が必要で
す - 2 が設定されます。
↑こんな感じのエラーが大量に発生してやばいです。
よろしければ、この解決策を教えていただけないでしょうか。
879: デフォルトの名無しさん [sage] 2007/10/08(月) 00:18:45 AAS
VC2005を入れろ
880: デフォルトの名無しさん [sage] 2007/10/08(月) 01:25:39 AAS
素直にVS2005のEEでも、入れろよ。
みたところATLやMFCが必要だとは思えんし。
881: 868 [] 2007/10/08(月) 03:41:01 AAS
VC2005入れたらエラーも発生せずできました。
3時間くらい悩んだりしていた甲斐があったと思います。
これは行列の固有値計算もできるんですか?
882: 868 [sage] 2007/10/08(月) 03:56:05 AAS
アッー!
matrix<complex<double>>
もできた。
さっきはできなかったのに
なんかもう、色々許せない。VC6は許せない。
883: デフォルトの名無しさん [sage] 2007/10/08(月) 04:01:14 AAS
>>869-874 を噛みしめておけw
884(1): デフォルトの名無しさん [sage] 2007/10/08(月) 10:16:03 AAS
boost::regexでsmatch 使うとそれ以降でインテリセンスが死んじゃうみたいなんだけど
回避策ありませんか?
VC2005EEです
885: デフォルトの名無しさん [sage] 2007/10/08(月) 10:40:24 AAS
インテリセンスは死ぬためにあるのです
886: デフォルトの名無しさん [sage] 2007/10/08(月) 10:47:41 AAS
boostとインテリセンスは千日戦争に突入しているので、見守ってあげてください
887(1): デフォルトの名無しさん [sage] 2007/10/08(月) 10:50:54 AAS
インテリセンスで不具合がおきている人は日本語版VisualStudio使っているのかな?
888(1): デフォルトの名無しさん [] 2007/10/08(月) 11:15:56 AAS
>>887
お、そこには思いが至らなかった。
英語版の Visual Studio 2005 では死なないのかな?
でも boost の ml などを見てると結構死んでる人もいるみたい。
>>884
なんか typedef が多重にかかると追い切れないのかもね。
boost/regex/v4/match_results.hpp の 49 行あたりにある
typedef typename vector_type::const_iterator const_iterator;
を vector_type を使わずに生のまま書くと IntelliSense は死なないみたい。
typedef typename std::vector<sub_match<BidiIterator Allocator>::const_iterator const_iterator;
ところで、こういう宣言文での typename って必須?
IntelliSense を殺してしまうようなヘッダファイルは Boost の
そこかしこにあるんだけど、自分で使うヘッダファイルについては
すべて修正してます。filesystem, mpl, optional, regex あたりが
その代表かなぁ。
889(1): デフォルトの名無しさん [sage] 2007/10/08(月) 11:26:14 AAS
>vector_type を使わずに生のまま
なんのこと?生?
>ところで、こういう宣言文での typename って必須?
必須
890: デフォルトの名無しさん [sage] 2007/10/08(月) 11:29:14 AAS
英語版VisualStudioだと問題ないなあ。問題といっている
ヘッダファイル使っているんだけどね。
891(2): デフォルトの名無しさん [sage] 2007/10/08(月) 11:39:10 AAS
>>888
どうもです
書き直してみたけどやっぱり駄目みたい
便利な物は失うと辛いな(´Д`;)
892(1): デフォルトの名無しさん [] 2007/10/08(月) 11:42:25 AAS
>>889
「生」ってのは、その直前に
typedef std::vector<sub_match<BidiIterator Allocator> vector_type;
っていう宣言文があって、そこで宣言した vector_type を使わずに、
っていう意味で使った。
typename が必要になるのってどういうケースなんだろう。
じつは typename よくわかってない。テンプレート引数に
class って書いてたのが最近は typename って書くのが流行り?
って程度の認識。
893: デフォルトの名無しさん [sage] 2007/10/08(月) 11:43:52 AAS
>>891
え?だめ?おかしいなぁ。
Visual Studio 2005 Professional SP1 日本語版
boost 1.34.1 なんだけどなぁ。
894(1): デフォルトの名無しさん [sage] 2007/10/08(月) 11:51:46 AAS
>>892
std::vector<sub_match<BidiIterator Allocator>::const_iterator
ってあったら、これが型なのかそうじゃない(例えばstaticメンバ変数)のかコンパイラには分からん
だからtypenameで明示しない限り型じゃないとみなすことになってる
895: デフォルトの名無しさん [sage] 2007/10/08(月) 12:00:09 AAS
>>894 なるほど、クラスメンバと混同するからか。
typedef std::vector<sub_match<BidiIterator Allocator> vector_type;
それでこの場合には typename がなかったのか。
896(1): デフォルトの名無しさん [sage] 2007/10/08(月) 12:03:44 AAS
>>891
ncb ファイルを一度削除しないとだめかもね。
Visual Studio が起動している間に削除してもだめだよ。
ちゃんと終了してから削除しないと。
897: デフォルトの名無しさん [sage] 2007/10/08(月) 12:37:17 AAS
試しにvector_typeを全部「生」にしてみたけど駄目だった
やり方がどこか違うのかな・・・
残念
898(1): デフォルトの名無しさん [sage] 2007/10/08(月) 16:46:59 AAS
2005だが、
インテリセンスが混乱したら
キャッシュ(ncbファイルだっけ)を削除したら一時的に直る。
899: デフォルトの名無しさん [sage] 2007/10/09(火) 00:08:10 AAS
>>896>>898
ありがとうございます
遅レスですがncb消しても駄目ですた
もう駄目ぽ
900: デフォルトの名無しさん [sage] 2007/10/09(火) 02:46:42 AAS
基本的にboost使う奴が悪いんだから、このさいインテリセンスは諦めましょう。
901(1): デフォルトの名無しさん [sage] 2007/10/09(火) 03:07:14 AAS
特定のライブラリのみビルドする方法は用意されているのでしょうか?
902: デフォルトの名無しさん [sage] 2007/10/09(火) 03:34:13 AAS
>>901
どーだろ。でも、ライブラリ別に.soとか.aができるから、必要な奴だけリンクすることは可能。
だから部分ビルドできるかはあまり関係ない気もするんだが。
903(1): デフォルトの名無しさん [sage] 2007/10/09(火) 04:30:10 AAS
ところで C++0x ではクロージャの機能は入るんですか?
904(1): 903 [sage] 2007/10/09(火) 04:31:35 AAS
すんません、ラムダ式が使えるんですね。
http://ja.wikipedia.org/wiki/C++0x#.E3.83.A9.E3.83.A0.E3.83.80.E9.96.A2.E6.95.B0.E3.81.A8.E3.83.A9.E3.83.A0.E3.83.80.E5.BC.8F
905: デフォルトの名無しさん [sage] 2007/10/09(火) 10:06:11 AAS
>>904
その Wikipedia の記事は、どういう新機能が会議で提案されてるかをかいてるので、どれが実際に C++0x に入りそうかは別個の話だよ。
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2389.html
をみたかぎりではλ式は間に合わなさそう。
これ以上はスレ違いなので C++0x スレで。
906: デフォルトの名無しさん [sage] 2007/10/09(火) 10:09:41 AAS
と思って書き込んでからちゃんとよんでみたら、なんとかなりそうなのかな。よくわかりません。失礼しました
907(4): デフォルトの名無しさん [sage] 2007/10/09(火) 17:43:57 AAS
VC++2005EEの環境で>>878のコードをビルドしてみたんですが、リンクエラーが出てしまいます。
ランタイムライブラリをMT,MTd,MD,MDdのそれぞれ1回ずつ、バッチビルドでDebugとReleaseの両方をビルドしてみたんですが、どれもリンクエラーが出ました。
↓はMDdでビルドしたときのエラーです。
------ ビルド開始: プロジェクト: aa, 構成: Release Win32 ------
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> >
(class std::basic_ostream<char,struct std::char_traits<char> > &,char)"
(__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z)" は未解決です。
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) private: static char const * __cdecl std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >::_Nullstr(void)"
(__imp_?_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ)" は未解決です。
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) char const `private: static char const * __cdecl std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >::_Nullstr(void)'::`2'::_C"
(__imp_?_C@?1??_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ@4DB)" は未解決です。
aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> >
(class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)"
(__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z)" は未解決です。
908: デフォルトの名無しさん [sage] 2007/10/09(火) 17:46:46 AAS
907の続き
Debugのエラーはあまりにも長いので、とりあえずReleaseだけにしておきます。
どこか設定が間違っているのでしょうか?
お願いします。
909(2): デフォルトの名無しさん [sage] 2007/10/09(火) 18:13:43 AAS
>>907
2005、Boost1.34だが、
31->33行目はoperator()で書き直せば通ったけど?
A[0][0]=1.0; -> A(0,0)=1.0;
910(3): 907 [sage] 2007/10/09(火) 19:49:15 AAS
>>909
A[0][0]=1.0; -> A(0,0)=1.0;に書き換えてみましたが、同じエラーが出てしまいます。
ちなみにboost1.34.0だと、
c:\library\boost_1_34_0\boost\numeric\ublas\detail\config.hpp(174)
: fatal error C1189: #error : Your compiler is unsupported by this verions of uBLAS. Boost 1.32.0 includes uBLAS with support for many old compilers.
というエラーが出てしまうので、1.32.0を入れました。
リンクエラーの意味がわからないので、どうすればいいのかさっぱり・・・。
911(1): 909 [sage] 2007/10/09(火) 20:32:32 AAS
>>910
ランタイムライブラリは
マルチスレッド(デバッグ)?DLL
使わないとエラー大量に出るよ。
lib,includeディレクトリには1つのバージョンのみのBoostだけ入れてよ。
Boost1.34.1
これでもできないならなんか環境ファイルが壊れてるのかもしれん。
912(1): 907 [sage] 2007/10/09(火) 22:44:28 AAS
>>911
1.34.1入れてビルドしてみましたが、やはり>>910に書いたエラーが出てしまいます。
(このエラーが出るということは、コンパイラが1.34.1のublasに対応してないということですよね?)
1.32.0でビルドすれば、コンパイルは通るんですが、
どのラインタイムライブラリでやっても、>>907のリンクエラーかそれよりたくさんのリンクエラーが出てしまいます。
リンクエラーの内容がstd::basic_ostreamとかだったりするのは、
やはり環境変数がちゃんと設定できていないか、壊れているかそのあたりがあやしいですか?
913(1): デフォルトの名無しさん [sage] 2007/10/10(水) 01:38:03 AAS
boost::test::unit_test ってテスト終了時に
メモリリークの検出までやってくれるんだね。
どういう方法でリークを検出しているんだろう。
もしかしてメモリアロケータを標準のものから
置き換えてなにかやってるのかな?
914(1): デフォルトの名無しさん [sage] 2007/10/10(水) 02:44:06 AAS
>>912
通りすがりだけど・・・
#include <ublasのヘッダもろもろ>
int main()
{
// 何も書かない
return 0;
}
でコンパイル通る?
経験則から言うとVC7以上であればublasのバージョンは問題ないと思う
>>913
unit_testのメモリリーク検出良いよね
うっかりポインタ操作をミスしていたのを見つけてくれたことがあるよ
915: 907 [sage] 2007/10/10(水) 04:01:05 AAS
>>914
ヘッダだけのコードを1.32.0でビルドしたら成功しました。(1.34.1は、やはり>>910のエラー)
1.34.1でビルドするとboost/numeric/ublas/detail/config.hppの
// Version 6.0 and 7.0
#if BOOST_MSVC <= 1300
#define BOOST_UBLAS_UNSUPPORTED_COMPILER 1
#endif
の条件に該当してそうです。
コメントアウトでいろいろコードを削って試してみたら、どうもstd::coutを使うとリンクエラーが出るっぽいです。
原因がスレ違いで申し訳ないです。
あとは自分でなんとかします。
レスくれた方々、ありがとうございました。
916: デフォルトの名無しさん [sage] 2007/10/11(木) 02:58:54 AAS
unit_testの話題が出ているので...質問させてください
他のライブラリを使用したコードのテストをするため
unit_testを利用しようとしたところ、リンカで次のエラーを得ました
***.lib(main.obj) : error LNK2019: 未解決の外部シンボル _MAIN__ が関数 _main で参照されました。
unit_testがmain関数を横取りしていることあたりが原因だとは思うのですが
何とか上手く回避できないものでしょうか?
お心当たりのある方はご教示いただけると幸いです
917: デフォルトの名無しさん [sage] 2007/10/11(木) 03:31:31 AAS
unit_testを使わない
boostなんて無理してまでも使うもんじゃない。
918(1): デフォルトの名無しさん [sage] 2007/10/12(金) 07:06:33 AAS
お前ら、ステートマシンはどのライブラリを使っていますか?
Cで書いた糞自作ライブラリから乗り換えようと思ってるんですが。
919: デフォルトの名無しさん [sage] 2007/10/12(金) 07:29:57 AAS
糞自作ライブラリから乗り換えようと思った理由は?
920(1): デフォルトの名無しさん [sage] 2007/10/12(金) 09:11:09 AAS
http://www.boost.org/more/formal_review_schedule.html
Boost.FSM 10/21〜
921: デフォルトの名無しさん [sage] 2007/10/12(金) 09:15:29 AAS
FSMは昔GPGに載ってたAI用のやつをいじって使ってる
922: デフォルトの名無しさん [sage] 2007/10/12(金) 09:32:38 AAS
>>918
Cベースで、状態遷移時のコールバック関数へのポインタが
むき出しだったり、いやなことが多いのと、あのころの
自分を忘れたかったから。
>>920
お、レビューが始まるんですか。
ちょっと前に話題が出てた Property も?
と思ったらこれは Property Map か。。
http://www.boost.org/libs/statechart/doc/index.html
これと比べてどちらを使うべきかについてのアドバイスのような
ページがどっかにあったんだけど、以前読んだ時に結局
判断がつかなくてずっと自作ライブラリ使ってたんだけど、
もう嫌になったから・・・
923: デフォルトの名無しさん [sage] 2007/10/12(金) 20:21:25 AAS
typedef使えばいいような
924(3): デフォルトの名無しさん [sage] 2007/10/13(土) 14:37:13 AAS
テキストエディタ使ってコマンドラインからコンパイルしようとすると
boost関連のincludeが見つからないと怒られたので
vsvars32.batにboostのincludeとlibパスを追加してみたら
今度はfatal error LNK1120: 外部参照 1 が未解決です。と出る
どうしたら良いのでしょうか?
925: 924 [sage] 2007/10/13(土) 14:42:35 AAS
書き忘れ
VC2005EEです。。。
926: デフォルトの名無しさん [sage] 2007/10/13(土) 14:56:29 AAS
具体的に何が見付かりませんと表示されるだろう。
そっち見ないとわからない。たぶんスレ違いの気がするけれど。
927(1): 924 [sage] 2007/10/13(土) 15:02:11 AAS
error LNK2019: 未解決の外部シンボル
"void __cdecl boost::throw_exception(class std::exception const &)"
(?throw_exception@boost@@YAXABVexception@std@@@Z) が関数 "
int __cdecl boost::lexical_cast<int,class std::basic_string<char,struct
std::char_traits<charclass std::allocator<char> > >
(class std::basic_string<char,struct std::char_traits<charclass std::allocator<char> > const &)"
(??$lexical_cast@HV?$basic_string@DU?$char_traits@D@std@@V?
$allocator@D@2@@std@@@boost@@YAHABV?$basic_string@DU?$char_traits@D@std@@
V?$allocator@D@2@@std@@@Z) で参照されました。
boosttest.exe : fatal error LNK1120: 外部参照 1 が未解決です。
長いんでカットしてました
スレ違いならごめんなさい
928: デフォルトの名無しさん [sage] 2007/10/14(日) 19:34:47 AAS
うちはうまくうごいとるよ
929: デフォルトの名無しさん [sage] 2007/10/14(日) 20:12:48 AAS
boostでまだ使えないvc向けのものがあるね
930(1): デフォルトの名無しさん [sage] 2007/10/14(日) 23:32:14 AAS
>>927
VC のオプションの「C++ の例外を有効にする」がいいえになってるか
明示的に BOOST_NO_EXCEPTIONS を定義したのでは?
931: デフォルトの名無しさん [sage] 2007/10/15(月) 15:02:33 AAS
YAMLの実装はありますか?
932: 924 [sage] 2007/10/15(月) 18:11:46 AAS
>>930
遅レスですいません
ビンゴでした
/EHsc オプションつけたらコンパイル通った
ありがとうございました
でも、なにもした覚えはないんだけどな・・・
933: デフォルトの名無しさん [sage] 2007/10/15(月) 18:15:01 AAS
実行時型情報を使うのってあんまり気持ち良くないなぁ。
おまえらは全然抵抗ありませんか?
型に関するあれやこれやはコンパイル時に解決
されているのがC++のいいところだと思ってたんだけど。
あと、これは単なるコーディングスタイルなんだけど、
メンバ変数をアクセスするときに this-> を強制したいなぁ。
あくまで自分が間違えてメンバ変数と同じ名前のローカル変数を
作ってしまうことがあるバカ者だからなんだけどね。
まぁこれは命名規則をきっちり決めておけばいいんだろうけど。
934: デフォルトの名無しさん [sage] 2007/10/15(月) 18:56:28 AAS
boostと何の関係が?
935: デフォルトの名無しさん [sage] 2007/10/15(月) 19:11:01 AAS
RTTIをオフにすると、Boost のなかで使えない
ライブラリが出てくる。どのライブラリが
RTTIを要求するか、例外のサポートを要求するかについての
リストがあれば便利なケースもあるんじゃないかなぁ、とか思いながら。
さすがに組み込みで Boost の全ライブラリのサポートを
要求する人はいないと思うが、どれが使えてどれが使えないか
わかればいいなぁ。
上下前次1-新書関写板覧索設栞歴
あと 66 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s