トップページ⇒tech
988コメント299KB

Boostを語れゴラァ part5

■ このスレッドは過去ログ倉庫に格納されています
0001BOOTS2007/10/18(木) 08:09:35
語って.はぁと part boost::mpl::int_<5>

過去スレ
part 4 http://pc11.2ch.net/test/read.cgi/tech/1175663346/
part 3 http://pc11.2ch.net/test/read.cgi/tech/1158991211/
part 2 http://pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 http://pc8.2ch.net/test/read.cgi/tech/1091198276/

■関連サイト■
Boost C++ Libraries
http://www.boost.org/

Boost 翻訳プロジェクト
http://boost.cppll.jp/HEAD/

Let's Boost
http://www.kmonos.net/alang/boost/

boost info
http://shinh.skr.jp/boost/
0002デフォルトの名無しさん2007/10/18(木) 08:10:02
■関連書籍■
Boost C++ Libraryプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4798007862/

Beyond The C++ Standard Library
http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/

C++ Template Metaprogramming
http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/

The Boost Graph Library
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/

■関連スレ■
C++相談室 part58
http://pc11.2ch.net/test/read.cgi/tech/1190745673/

【C++】STL(Standard Template Library)相談室 7
http://pc11.2ch.net/test/read.cgi/tech/1185986999/
0003デフォルトの名無しさん2007/10/18(木) 08:10:07

Loki
http://sourceforge.net/projects/loki-lib/

JTC1/SC22/WG21 - The C++ Standards Committee
http://www.open-std.org/jtc1/sc22/wg21/

POCO, the C++ Portable Components
http://www.appinf.com/poco/info/
http://sourceforge.net/projects/poco/

The unofficial BCB Boost patches
http://bcbboost.sourceforge.net/
0004デフォルトの名無しさん2007/10/18(木) 12:31:01
>>1乙
0005デフォルトの名無しさん2007/10/18(木) 19:28:37
 ,、ヽl |l | l| l || l| l |   ビ ク ッ
ミ   お っ 立 も __ノ   _,.ヘ     _,,... -- ─--「::「 {i:.:.:`'、_/:.:.:.:.:.[/-...,,_   ソ ,'  い
Ξ   っ あ て っ )  /::7ヽ、ヘ,.-ァ'^ヽ∠ヽ,/L__`|:::|/}!.:.:.:.:r7=-:.:.:.:.!7::::::::::::`ヽ. ッ  i   け
ニ  立 ぁ な  も   !::::!´ア「>'‐''"´    `"'<LL_,'i>:'へ、:.:.:.:.:.:.r/::::::::::::::::::::::':., .|.  な
Ξ   て ん い う   /´\「>'"            ァ':::::::::::::::\__」}:::::::::::::::::::::::::::::ヽ.!  い
三  ち  ・  っ 糞  ,'  _」ア´  /  /!    !  /!   / ;'::::!:::::::';:::';::::::::ヽ::::::':;::::::::::::::、::::!  子
=    ゃ  ・  て ス   i 'ヽ!   / 7, 'イハ /! メ、,!__ハ, 'i::::::ト,::::::!::::i::::i:::::::':;:::::';:::::::::::::::ヽ;|  ね
三  ぁ  ら 約  レ   ', .,'  / /!,!-'、:レ' |/ァ' レ   ヽ!::!:::! ':;:::|ー!-ハ::::::::i:::::::!::::::::':;:::::::ヽ:
=  ら  め 束 は   !/  ;' ,ヘ!i. i,.ハ    、,_    !!::!:;ハ ヽ,jァr-;、!_ハ」:::::;':::::::::::::ヽ,::::::::;ゝ、.,__
ニ  め  っ  っ ・   ノへ,/レヘ, ! ゝ' ....::::::... '  ̄´゚o'レヘjソ :::.. 」_r!`> 7__/:::::i::::::::::::::
三   ぇ   ・   ・  ・   !  ノ; ./7''"///     /// !/.   !      '"'",':::::::!::::::i:::::::::::i   変
=   ぇ   も  ・  ・   ノ;  / ,'  ゝ、   ( ヽ  u (  ) ハ        !:::::;'::::::::':;::::::!.   態
三  ぇ  う   ・  あ  〈,へレ'〈ジi/ミ>.、..,,____  ,. イ   ( )`ヽ. ̄フ    !:::/i_;;::;;_:::::<   さ
≡,  ぇ  糞 は ぁ     i `:、レ'"´  !_r'"レ'/:::::::::>ァ、/|ヘ ヽ,__,..,.-''" ̄`ヽ、_ヽ:::':;!    ん
Ξ,   ぇ .ス  ぁ っ     ':,  `ヽ、 ,r;く:::::::!/::::::::::::/」;'  `ヽ. _>'"        Yヽ:::::!.   ?
 彡 !  レ  ん っ     ヽ、   ,.kヘ_!::::ム:::::::/]/ ,ァ-'‐''"´ ヽ!、_        〉:.!.  
0006デフォルトの名無しさん2007/10/19(金) 11:59:31
>>1乙
0007デフォルトの名無しさん2007/10/19(金) 20:36:20
>>5 乙
0008停止しますた2007/10/24(水) 12:55:39
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
0009デフォルトの名無しさん2007/10/24(水) 12:56:17
?
0010デフォルトの名無しさん2007/10/26(金) 11:37:43
来たよ!
0011停止しますた2007/10/26(金) 11:38:17
偽・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
0012デフォルトの名無しさん2007/10/27(土) 03:28:33
12
00137452007/10/27(土) 03:54:01
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#define BOOST_MEM_FN_ENABLE_STDCALL
#define BOOST_BIND_ENABLE_STDCALL
#include <boost/bind.hpp>

struct F
{
  int __stdcall f(int) { return 0; }
};

int main(void) {
  namespace bll = boost::lambda;
  F f;
  boost::bind( &F::f, &f, bll::_1 )(1);
  // bll::bind<int>( &F::f, &f, bll::_1 )(1); <- error!!
}

__stdcallの関数はboost::lambda::bindでは呼びだせないんでしょうか?
boost.usersで次のような古い記事を見付けたのですが
ttp://tinyurl.com/34cv9e
この通りに戻り値を明示的に指定しても無駄なようです
0014デフォルトの名無しさん2007/10/27(土) 06:25:20
boostにLokiのディスパッチャのような物はありますか?
0015デフォルトの名無しさん2007/10/27(土) 19:41:25
           _」, -─  .:. :. :. :.::::::::::::::::::::::::.:.`ヽ
          〈  ,.'"´ ̄      ̄`ヽ、.:::::::.:.:./
           V´ .::l:|:.  `、ヽミミヽ、  ヾ:./    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
              / .::l::从ト、   `ヾ_ミミヽ、  ヽ  <  君さぁこんなスレッド立てるから
          l/l.:l.:リ仁リニトト、仁≧ミヽ:::ト、 .:::|    |  厨房って言われちゃうんだよ
           `Y::{fトッソ ``ト。ッソ` 1:l:|::`、:::::!    \______________
            |.::l´¨ 、  ´ ̄  /::リ::::::::V
             ヽ:ヽ、  ー     , タ::l:;:::::::/     , -‐─‐‐- 、
            , -─-、 __ , イ/.::j:|:::/l/  , ィ"´  ‐f ‐    \
           /.,    `トい、_,/^i.:l:|/  .//  ,  -──‐- 、`ヽ\
          /.:::/  .:i   {{i^Y^YYy'l/  〈 〃 ,ィ´  .:.:.:.:.::.:::::i::l:.\j ト、
          /.:.::::/  .:.::|   k1 |:l ,ム;、ハ、  V__/:::l/::::/:/.::::,イ.:::ハ!:l::::::.:V /  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        L.::::厂ヽ .:.:::::|  / {j! ーイ:介;l/ ,ハ /ハ!::/l:::/:/.::;ィイ/:::ハ:::|:::i.:.::{/ < おまえのことを必要としてる奴なんて
         {7 / \::::! /  jfl  |:1j! |:|{ Vi l:1ホ{:::l:i;:ィニー 、//-十1:,'.:.:,リ   | いないんだからさっさと回線切って首吊れ
       //   ,.イ:::l/  jf|  l;」jl j:」| |::H:|  {::l:iイヒリソヽ  イヒッソl/, イ/    \_________________
    /´ ̄    /::::|:;:;.\  kiL,  H  fj 〉; |:ト、_,{::ト.、_' ' '  '   ̄ / /i
    _>ーー-  ,.イヽ、::l;;;:;:;:;(:::/タ^Tニム、_ ,';{:/ |:|:::Y´「 ̄`ハ、 `´ , .イ _j/::|
   /。 ̄`¨`ヽ_ソ  `1>‐-ヽ{:::::/><!::::::7  |i::ノ {  /.::`K T.::::/ /.:::|
  ,/。     /      〉ニ三云\:.ヽ<ノ::::::」ヽ. Y  ,レ'´.::::::::::.〉ハコ``Y::.ヽ
 /     /       /¨´ ̄ ̄`ヽ、三三ミ<::::| | //.:::::::::::::::://´j}ト、 _」::::::|
0016デフォルトの名無しさん2007/10/27(土) 19:47:44
>>15
不覚にも噴いた
0017デフォルトの名無しさん2007/10/27(土) 22:54:09
>>14
boost::type
boost::bool_
boost::int_
boost::integral_c
あたりをどうぞ。これもFAQ気味だな。
00187452007/10/27(土) 22:59:46
そういう用途ならboost vaultにdispatcherという名前からしてそのものズバリのがあります
これを適当にカスタマイズして使うのがよろしいんじゃないでしょうか?
0019142007/10/28(日) 08:11:33
レスありがとうございます。

>>17
すみません説明不足でした。
多重ディスパッチによるマルチメソッドです。(Loki::BasicDispatcherとか)

>>18
boost vaultは初めて知りました。(よくみたらLet's Boostにもリンクはってありますね)
ソース見たところ、Lokiの物よりかなり機能が弱く感じます。
Lokiを使うのがいいのかもしれません。
0020デフォルトの名無しさん2007/10/28(日) 18:48:54
boost/type.hppって何に使うんでしょうか?
  // Just a simple "type envelope". Useful in various contexts, mostly to work
  // around some MSVC deficiencies.
ファイルには上記のように書いてありますがどういうこと?
0021デフォルトの名無しさん2007/10/28(日) 20:11:24
template<class T> T f();

を

f<int>();

と呼べない場合があるので

template<class T> T g(boost::type<T>);

を

g(boost::type<int>());

と呼ぶ
0022デフォルトの名無しさん2007/10/29(月) 14:56:29
>>20
ディスパッチのユーティリティとして使うとか。
boost/type_traits/detail/wrap.hpp とかもあるね。

template <class T> struct type {};

template <class T>
struct tester {
 template <class U> static char (&test(U*))[1];
 template <class U> static char (&test(type<U>*))[2];
 template <class U> static char (&test(...))[3];

 template <class U> static size_t f1(const U&) {
  return sizeof(test<T>(static_cast<U*>(0)));
 }
 template <class U> static size_t f2(const U&) {
  return sizeof(test<T>(static_cast<type<U>*>(0)));
 }
};

struct X {};
struct XX : X {};

tester<X>::f1(X()); // => 1
tester<X>::f1(XX()); // => 1

tester<X>::f2(X()); // => 2
tester<X>::f2(XX()); // => 3
0023デフォルトの名無しさん2007/10/30(火) 23:24:10
struct char_p_less : std::binary_function<const char*, const char*, bool>{
        bool operator()(const char* left, const char* right) const{
            return std::strcmp(left, right) < 0;
        }
}

typedef std::map<const char*, std::string, char_p_less> QueryMap;

これをLambdaを使って実現したいんですが、Lambda式で書いた結果は関数オブジェクトの値であって、型ではないので
typedef std::map<const char*, std::string, (bind(std::strcmp, _1, _2) < 0) > QueryMap;
このようなことが出来ないです。

typedef std::map<const char*, std::string, function2<bool, const char*, const char*> > QueryMap;
boost::function2<bool, const char*, const char*> compare = (bind(std::strcmp, _1, _2) < 0);
こうしてから使うときに
QueryMap foo(compare);
するしかないですか?
0024デフォルトの名無しさん2007/10/30(火) 23:28:50
いいえ、他の方法があります。

template<class T>
void use_query_map(const T&){
typedef std::map<const char*, std::string, T> QueryMap;
QueryMap foo;

// fooを使う
}

これで、この関数内では使い放題です。
0025デフォルトの名無しさん2007/10/30(火) 23:30:05
use_query_map(bind(std::strcmp, _1, _2) < 0);

を書くのを忘れていました。
0026デフォルトの名無しさん2007/11/02(金) 00:21:10
boost.testのBOOST_PARAM_TEST_CASEマクロの第一引数に
boost::function1のオブジェクトを指定することはできないんでしょうか?
>error C2660: 'boost::unit_test::make_test_case' : 関数に 4 個の引数を指定できません。
のような具合にどうにも通らないようです

#include <boost/test/unit_test.hpp>
#include <boost/test/parameterized_test.hpp>
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <list>
void test_mask (int, int){}
struct sub_test_suite : public boost::unit_test::test_suite {
  sub_test_suite() : test_suite("sub_test_suite") {
    BOOST_PARAM_TEST_CASE(
      (boost::function1<void,int>(boost::bind(&test_mask, _1, 0x80)))
     , params.begin(), params.end());
  }
private:
  std::list<int> params;
};

using boost::unit_test::test_suite;

test_suite*
init_unit_test_suite( int, char* [] ) {
  test_suite* test = BOOST_TEST_SUITE( "Parameterized boost::function based test case" );
  // add test cases to test_suite
  test->add( new sub_test_suite );
  return test;
}

0027デフォルトの名無しさん2007/11/02(金) 07:55:35
boost::functionからboost::unit_test::callback1への変換が上手くいかないだけのようなので、
このように直接callback1のテンポラリを作って渡してやれば一応コンパイルはできました
boost::functionに対する依存も減りますし、この方法使ってればいいんでしょうかね…

#include <boost/test/unit_test.hpp>
#include <boost/test/parameterized_test.hpp>
#include <boost/bind.hpp>
#include <list>
// user definition test function
void test_mask (int, int) {}
// user definition test class
std::list<int> params;

using boost::unit_test::test_suite;
test_suite* init_unit_test_suite(int, char* []) {
  test_suite* test = BOOST_TEST_SUITE("test");
  BOOST_PARAM_TEST_CASE(
    (boost::unit_test::callback1<int>(boost::bind(&test_mask, _1, 0x80)))
   , params.begin()
   , params.end()
  );
  return test;
}
0028デフォルトの名無しさん2007/11/07(水) 23:22:17
VC++7.1でboost1.33.1ですが
std::wstring sNumber = L"2007";
unsigned short wValue = boost::lexical_cast<unsigned short>(sNumber);
でbad_lexical_castが投げられてしまいます。
unsigned short以外の型では問題は無いのですが。
見あたらなかったのですが既知の問題ですか?
0029デフォルトの名無しさん2007/11/08(木) 00:28:59
コンパイルオプションの
wchar_t をビルトイン型として扱う (/Zc:wchar_t)
じゃない?
0030デフォルトの名無しさん2007/11/09(金) 12:53:53
emacs + gtags
でboostのコード閲覧がvisula studioみたいにできるけど
debugで変数の動きとか追いかけるのもemacsでVisualStudioみたいに
できる方法ないのかな
0031デフォルトの名無しさん2007/11/09(金) 13:20:49
VisualStudioほど便利じゃないと思うけど、gdbで↓

ttp://www.coins.tsukuba.ac.jp/~yas/coins/compsys-2000/gdb-4.17-doc/gdb_6.html#SEC30
ttp://www.coins.tsukuba.ac.jp/~yas/coins/compsys-2000/gdb-4.17-doc/gdb_9.html#SEC57
0032デフォルトの名無しさん2007/11/09(金) 13:25:53
.NET Frameworkでvisual Studioの操作を外部プロセスから行う事が出来るから
それをEmacsから操作できるようにするってのがまぁ妥当な方法かも
ただし無駄に面倒だから恐らくやってる人は極少数
なんでVSにはコマンドラインデバッガが無いんだろうね…
0033デフォルトの名無しさん2007/11/09(金) 14:46:43
Visual Studio は統合開発環境で、ホスト・アプリケーションだから。
0034デフォルトの名無しさん2007/11/09(金) 16:27:52
むしろ Visual Studio にプロファイラがついていないことが疑問。
gprof みたいなやつって Windows だとなに?
0035デフォルトの名無しさん2007/11/09(金) 16:54:25
2005から、ガイド付き最適化(GPO)ができた

けど、使いにくいと個人的には思う
0036デフォルトの名無しさん2007/11/09(金) 17:04:00
悔しい、2003なら無料のdevpartnerが使えるのに…!!
0037282007/11/09(金) 21:01:15
>>29
ありがとうございます、その通りでした。
もう一度、そこら辺のドキュメントがないか見てみます。。。
0038デフォルトの名無しさん2007/11/10(土) 12:01:39
以前のサイト移動しただけだったみたい
ttp://syrinx.q.t.u-tokyo.ac.jp/hashimoto/graph/
0039デフォルトの名無しさん2007/11/10(土) 17:07:41
>>34
>むしろ Visual Studio にプロファイラがついていないことが疑問。
Team Editionの一部にはついてるよ。
0040デフォルトの名無しさん2007/11/10(土) 17:25:43
VTune + プロファイラー が intel からでていますよね?
結局それ以外使い物にならないのでは?
0041デフォルトの名無しさん2007/11/10(土) 17:28:41
VTUNEはAMDのCPUでは使えないのだよ…
0042デフォルトの名無しさん2007/11/10(土) 18:24:14
CodeAnalystでいいじゃん
0043デフォルトの名無しさん2007/11/11(日) 18:05:23
bjam ver3.1.15-1経由でcl.exeのメッセージやワイド文字をコンソールに出力するアプリケーションでワイド文字を表示したら悉く???????と表示され、
いかにもロケール設定できてませんよって事態になります。
bjamを使わずに直接cl.exeやワイド文字を使うアプリを起動して表示すればちゃんと表示されのにも関わらずです。
以前のバージョンなら確かにcmd.exe以外のターミナルだろうが、cygwinのbashやzsh上だろうがNTemacsの中のシェルだろうが、
ちゃんと表示されてたんですが、皆様の環境ではどうでしょう?
0044432007/11/11(日) 18:53:03
もろbjamの問題でした
適当なリビジョンのやつを落としてビルドしたバージョン3.1.14だとこの件に関しては正常に動作しました
0045デフォルトの名無しさん2007/11/13(火) 03:50:17
boost 1331ではboot.pythonでnumpy使えないないのかね
コンパイルは通るけど実行時にエラーでる
0046デフォルトの名無しさん2007/11/14(水) 02:02:53
最新のstableの1.34.1もしくはSVN Headで試してみればどうでしょうか?
0047デフォルトの名無しさん2007/11/14(水) 16:41:47
centosなのでpythonを2.4から2.5にあげるとシステムに不具合でるのです
どうやら
boost1.33.1 python2.4の組み合わせでしか動かないみたいです
0048デフォルトの名無しさん2007/11/21(水) 19:49:45
boost::formatの逆のような処理を行うライブラリはありますか?

try {
 unsigned short us = 0;
 int i = 0;

 (format("%1%, %2%") %us %i) = "0xABCD, -1234";

 BOOST_CHECK_EQUAL(0xABCD, us);
 BOOST_CHECK_EQUAL(-1234, i);
}
catch(const format_error& e) {
}
見たいな感じが理想です
0049デフォルトの名無しさん2007/11/21(水) 19:50:48
それは正規表現の仕事だな
強いて挙げるならregexとかxpressiveか
0050デフォルトの名無しさん2007/11/21(水) 19:52:29
>>48
要するにscanf()のboost版が欲しいわけだ
一言で言えば、無いよ
0051482007/11/21(水) 20:07:58
了解しますた
xpressive->lexical_cast戦法でいきます
0052デフォルトの名無しさん2007/11/21(水) 20:10:20
なんでlexical_castなんぞ使うんだ?
0053デフォルトの名無しさん2007/11/21(水) 21:08:07
intとかに変換したいからでしょ?
悪かないと思うが。
0054デフォルトの名無しさん2007/11/21(水) 23:15:23
xpressiveを使うならそこはSemantic Actionだろ。
ちょうどいいサンプルもあることだし。
ttp://boost-sandbox.sourceforge.net/libs/xpressive/doc/html/boost_xpressive/user_s_guide/semantic_actions_and_user_defined_assertions.html
0055482007/11/22(木) 16:09:45
>>54
こんなのあったのかー すごい・・・
でもasのなかでも呼ばれてるlexical_castが16進数とかを良きに計らってくれなくて俺涙目w
0056デフォルトの名無しさん2007/11/22(木) 19:04:45
>>55
spirit と bind に触発されて昔作ったもの。
sprintf や sscanf みたいなことを spirit っぽく静的に記述する。

string strA, strB;
sprint( strA, "1 " % !_x[6] % "/" % _s, 10, "aaaa" );
sprint( strB, "2 " % (!_0x[6]) % "/" %_s, 10, "aaaa" );
cout << strA << endl; // 1 0xa/aaaa
cout << strB << endl; // 2 0x000a/aaaa

int xA, xB;
string yA, yB;
sscan( strA, "1 " % _ws % _x % "/" % _s, xA, yA );
sscan( strB, "2 " % _x % "/" % _s[3], xB, yB );

print( cout, "xA = " % _d % "\nyA = " % _s % _endl, xA, yA );
print( cout, "xB = " % _d % "\nyB = " % _s % _endl, xB, yB );

// xA = 10
// yA = aaaa
// xB = 10
// yB = aaa

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5317.zip

0057デフォルトの名無しさん2007/11/22(木) 23:37:26
notizキターw
0058デフォルトの名無しさん2007/11/22(木) 23:48:11
notizと聞くと某ゴーストとか火狐のテーマとかを思い出す俺は異端かな
0059デフォルトの名無しさん2007/11/22(木) 23:49:16
tupleをsinkやsourceにしてそれに対するfilterにしたらとても面白いかも・・・
でも今の僕にはその技術はありませんでしたというオチ
0060デフォルトの名無しさん2007/11/23(金) 14:17:00
MFCやCLIを基本として、BoostだのLokiだのSTLだのATLだのWTLだのを
覚えなきゃならないなんて、C++は大変だな。
おまけにXMLやるならXML用のライブラリ、SQLやるならSQL用のライブラリと
キリがない。
C++もういいよ。終了。
0061デフォルトの名無しさん2007/11/23(金) 14:19:41
>>60
頭おかしいのかお前。

例えば、何の言語を使えば
MLやるのにXML用のライブラリを覚えなくていいのか
SQLやるのにSQL用のライブラリを覚えなくていいのか言ってみろ。
0062デフォルトの名無しさん2007/11/23(金) 14:19:58
そうだね、プロテインだね。
0063デフォルトの名無しさん2007/11/23(金) 14:21:20
そこはだがそれがいいと返すべき
0064デフォルトの名無しさん2007/11/23(金) 14:23:27
全部言語仕様に入れたプログラミング言語作ろうぜ。
俺は見てるから。
0065デフォルトの名無しさん2007/11/23(金) 14:23:54
Java厨乙が適切だと思う。そういう俺はD言語厨。
0066デフォルトの名無しさん2007/11/23(金) 14:25:38
どんなにいいライブラリがあっても使いこなせない低脳さん乙と言ってあげるべき
0067デフォルトの名無しさん2007/11/23(金) 14:26:08
MFCが基本と言ってる時点で(ry
0068デフォルトの名無しさん2007/11/23(金) 14:29:11
大体基本って何だよ。
MFCはライブラリで、CLIは実行環境ジャン。
0069デフォルトの名無しさん2007/11/23(金) 14:48:17
最近プロテインをプロティン(どちらかというとプロチン)と発音しているCMを見たんだけどこれって正しい?
0070デフォルトの名無しさん2007/11/23(金) 14:48:25
俺は凡人だから、ちょっと頑張れば>>60が挙げたようなものは片っ端から使えるけど、
並外れて悪い頭を持って生まれてきた人には厳しいかもね。
0071デフォルトの名無しさん2007/11/23(金) 15:17:29
ここはいい釣堀ですね
0072デフォルトの名無しさん2007/11/23(金) 15:23:36
↑はいはーい、いつもの「カレ」のご登場でーす。パチパチ
0073デフォルトの名無しさん2007/11/23(金) 15:35:05
恥かいた時のために、いつでも釣り竿を用意してます

「あ、ヤバ!」と思った時、どれだけ自然に「さっきから竿を構えていた」かのように振る舞えるかがコツ
0074デフォルトの名無しさん2007/11/24(土) 03:07:55
>>73
後から釣りでしたって言った奴の負けだと思いますぅ〜♪
0075デフォルトの名無しさん2007/11/24(土) 04:46:35
相手して付き合ってしまってる時点で負けだろ
わざわざ同じレベルに堕ちる必要はあるまいて
0076デフォルトの名無しさん2007/11/24(土) 15:52:12
>>75
おまえもな
0077デフォルトの名無しさん2007/11/25(日) 17:16:34
おまえら、しょうがないなぁ

unit nYakuso = 7; //薬草1個の値段
unit nFukuro[10]; //持ち物を入れる袋
wstring strIppai(L"持ち物が\nいっぱいです><") ;

という文字列を以下のように変換するプログラムを30秒以内で記述できるか?

unit、nYakuso、=、7、;、unit、nFukuro、[、10、]、;、wstring、strIppai、
(、L、"、持ち物が\nいっぱいです><、"、)、;
0078デフォルトの名無しさん2007/11/25(日) 17:39:14
変数名の前に n とか str とか、自分は低脳ですって言ってるようなもんですよ
0079デフォルトの名無しさん2007/11/25(日) 17:43:33
こういうのはperlとか使った方がよさそう
0080デフォルトの名無しさん2007/11/25(日) 17:55:10
>>77
//以下の文字列を無視するのと
クォーテーション文字で囲まれた文字列内で
エスケープ文字を無視するのは標準Boostでは無理。
0081デフォルトの名無しさん2007/11/25(日) 18:02:10
spiritなら頑張れるかも
30秒以内は無理そうだが
xpressiveは知らない
0082デフォルトの名無しさん2007/11/25(日) 18:26:59
ノcomment_p( )
0083デフォルトの名無しさん2007/11/25(日) 19:04:27
>>82
だな
0084デフォルトの名無しさん2007/11/26(月) 05:43:59
30秒以内に記述してもコンパイルに30秒以上かかるんだよ・・・・
0085デフォルトの名無しさん2007/11/26(月) 14:51:55
boost.pythonでboostとpythonのバージョン違いに悩まされるより
swigの方がいいと思った
swigと比べたboost.pythonの利点って何?
0086デフォルトの名無しさん2007/11/26(月) 17:25:04
python コード呼び出すのがらくなことじゃねーの?
0087デフォルトの名無しさん2007/11/26(月) 18:27:45
cmathの関数群とbindについて教えてください。

double x = 25;
cout << bind(sqrt, _1)(x) << endl;

このコードは、VC++2005では実行できるのですが、
g++ 4.0.0 (boost 1.34) だと以下のように明示的に
キャストしないとコンパイルできません。

cout << bind(static_cast<double (*)double>(sqrt), _1)(x) << endl;

これはg++用boostライブラリ固有の制限なんでしょうか?
0088デフォルトの名無しさん2007/11/26(月) 18:44:44
std::cout << boost::bind<double>(&std::sqrt,_1)(x) << std::endl;
bindがオーバーロード解決に失敗するときは戻り値の型をテンプレート引数で明示的に指定してやればいいらしいです
0089デフォルトの名無しさん2007/11/26(月) 18:48:02
あごめん、やっぱ無理っぽい
0090デフォルトの名無しさん2007/11/26(月) 18:49:07
>>87
もしかしたら、VCにはcmathのfloat版関数の宣言がないのではないか?
■ このスレッドは過去ログ倉庫に格納されています