C/C++のライブラリ総合スレ
■ このスレッドは過去ログ倉庫に格納されています
便利で役立つライブラリを総合的に扱うスレがないので立てました 便利なライブラリをここに挙げてみたり やりたい事を実現できるライブラリを聞いてみたり ライブラリに関する雑談をするスレです C++で ソケットクラスのあるライブラリで もうこれ標準だろレベルのデファクトのは ありますか? APNG patch for libpng ttp://sourceforge.net/projects/libpng-apng/ P-Stade C++ Library http://p-stade.sourceforge.net/ この中のOvenは趣味全開のときに使う。Boost.Rangeをめっちゃ強化するライブラリ。 SmartWin smartwin-2.0.0_RC1-gcc3.4-2av.DevPak (拡張子がDevPak) devcpp-4.9.9.2_setup.exe の組合せ(gcc 3.4.2になります) C:\Dev-Cpp>gcc --version gcc (GCC) 3.4.2 (mingw-special) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. まず、MinGWがすでにインストールされていれば、アンインストールしておく。 次に、C:\Dev-Cppに、Dev-C++をインストールして、 DevPakをPackman.exeのアイコンにドラッグアンドドロップする(DevPakをダブルクリックでもできるとおもう) STLsoftまじ便利 ただしSTLに慣れている者に限る http://www.stlsoft.org/ だれかがIteratorで使用中でも追加削除が出来る配列がほしい >>22 使用中であれば破綻してしまう操作を「できる」とは言わないだろ vector<int>::iterator it = array.begin(); while(it != array.end()) { it = array.erase(it); } これじゃ駄目なのか? 文脈的にスマポ的なイテレータの話をしてると思ったんだが >>24 そのコードの前に vector<int>::iterator it1=array.begin(); とやっててerase後にit1にアクセスするとかって話だろ てか参照カウンタで解放をコントロールするコンテナつくればいいしゃん そんなに難しくはないだろ そういったrobust iteratorを使いたいときは、間違いなくそれ用に作られたcontainerが必要。 >>27 ツリーやリストでそれをやると悲劇 単純に前後要素のiteratorも抱えた新しいiteratorをでっち上げるがいい イテレータ自体が一時リストへのリファレンスを持って その一時リストは参照カウントで、begin、endなんかで毎度生成 って事? 少なくともerase呼んだ瞬間に、要素のデストラクタは動くべき OpenFrameworks http://www.openframeworks.cc/ MITライセンス Cinder http://libcinder.org/ Simplified BSD Licens Little CMS http://www.littlecms.com/ MIT LICENSE >>33 それはおかしな話だな。 erase後にsize()が減るかどうかは他のiteratorに捕まれてるかどうかに依存するということになる。 erase後に ++iter が使えればいいんだろう? erase後に *iter まで使える必要はないはず。 Cygwin (1.7系)で、標準のBoost(1.46)を入れて、 コンパイル時に-lboost-system-mtをつけてるのだが、 undefined reference to boost::system::get_generic_category がでる。何がおかしいのかな そういうのはBoost総合スレで聞いた方がいいだろ 最近こういうの全然追ってないんだけど 任意のデータ構造(なければ特定の)に使える パタ−ンマッチのライブラリってないかな >>41 C#のlinqみたいなことがやりたいってこと? Kinect for Windows SDK とOpenCV でC++使って 検出した骨格の座標データをファイルに保存するプログラム教えて欲しい〜 骨格の座標とるのは簡単なんだからファイル保存だけじゃないの? Kinectとかやる前にCの勉強したほうがいいよ fox-1.6.44.zip (STABLE) FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and effectively. http://www.fox-toolkit.org/ C++のライブラリを混て使うと、 クラスやメソッドの命名規則が一貫していないところが欝だな〜 ここで質問すべきなのか微妙ですが・・・ ライブラリをビルドする際のDebugやReleaseといった指定について、Debugビルドする際にはやはりDebugビルドしたライブラリを使用すべきなのでしょうか? >>48 デバッグビルドしたい、ってことはデバッグしたい、ってことなんだから それならライブラリもデバッグビルド版使った方がいい気はする winならそもそも標準ライブラリの設定が一緒になってないとリンク通らんけどな CppCMS ? C++ Web Development Framework http://cppcms.com/ LGPLv3 >>26 eraseの戻り値のiteを使えよ。それかite++をeraseに渡す。 コンテナはshared_ptrが最強なのでリストのなかに入れるオブジェクトはすべてshared_ptrにする。 これで寿命管理から開放される上に、ありとあらゆる任意の箇所から参照保持削除できるようになります。 STLのlistのeraseの戻り値は標準機能じゃないのか。ARMCでもとおってるが。 それ以外ではite++を渡してる C++11でも、モノによってはeraseするとiteがぶっ壊れるな。 Linux上のgccでVisual Studio用のバイナリってビルド出来る? >>63 VisualStudio用のバイナリというものは存在しないけど Windowsで動作するバイナリはコンパイル可能です 表現が全く不適切だった。改めて。 gccで、VC++のリンカで使えるスタティックリンクライブラリはビルド出来る? >>65 やったこともないし出来る保障も無いけど 理屈の上では出来る リモートURLの絶対パスと相対パスが与えられて、 絶対パスから相対パスをたどると、どんな絶対パスになるかを 求めるようなライブラリってないかな? addr2lineでシェアドライブラリの中のアドレスを解決したいんだけど やり方をおしえて カスタムアロケータすれば使える ただEigenの何が速いのか未だに分からない for文で書いた行列演算の方がよっぽど速い C/C++フル対応など、Windows Phone 8アプリにコア技術共有の効果 ttp://news.mynavi.jp/news/2012/06/21/104/ 売れたら作らないでもないけど、あんまり見込みないな。 Windows8自体が、かなり酷いし。 超コンパクトなポリゴンライブラリはありますか? 周辺が肥大化しててもOKですが、コアの部分がコンパクトなものが欲しいです。 パスをファイル名とディレクトリに分解したいんだけど libcでお勧めの関数ある? イベント駆動で、いらんイベントまでサポートしてたらでかくなるだろ あれみたいに 使う時だけでっかくなるような感じが一番だよね 質問ですが、double型の銀行丸め(JIS丸め)ってCまたはC++の標準ライブラリに無いですか もし無いなら、double型の銀行丸め(JIS丸め)を実装した定番でフリーのライブラリとか紹介いただけませんでしょうか (自力で書いた場合、数値的な安定性とか実行効率とかが気になるのでできれば実績のある実装を流用したい >>92 C99標準ライブラリの範疇だと、 fesetroundでFE_TONEARESTを指定すればできるはず。 コンパイラが対応していない場合で、x86系(x86-64含む)なら、 SSE2の_mm_cvtsd_si32/_mm_cvtss_si32(dobule/float→int)や SSE4の_mm_round_sd/_mm_round_ss(dobule/float→double/float)など。 (前者は別途丸めモードを設定しておく必要あり) あるいはインラインアセンブラでそれらかFPUを呼ぶ方法もある。 >>95 flwmのために作られた ウィジェットツールキットだっけ? サンプルについてきた test/sudoku にハマっている Git初心者です /.../foodirを、 git init --separate-git-dir=/sepadirで別のとこにリポジトリ情報保存していました。 ずっと前に気にせずにfoodirをpuyodirに変更したらしく、gitのコマンドが fatal: Could not switch to '/.../foodir': No such file or directory と出て使えなくなりました。 git configですら使えなくなり、どうやってディレクトリ名変更をgitに伝えればいいかわかりません。 /sepadir内のconfigファイルに worktree = /.../foodir とあったのですが、これを直接書き換えても大丈夫なんでしょうか・・・ どうかよろしくお願いします。 C++のライブラリでお勧めてあります? boostは互換性に問題がありそうなので。 >>103 何をするライブラリを探してるの? 何と何との互換性のことを心配しているの? なにを思ってもまずはboost もしboostすらうまく動かない環境では既存の汎用品はあきらめて どこかにコンパイラ込みで専用品・カスタマイズ品を開発してもらったほうがいい >>106 今boostを使っているのだが他に独自ライブラリとか色々使ってるので統一しようと思って聞いています。 >>107 なにを互換性の問題といってるのか分からない ちょっとわずかに言い方が誤用だっただけで揚げ足取りかよ… >>103 結局、boostの互換性の問題ってなんですか? 109は何に対して何を問題視してるか不明すぎだから無視しておけばいいんじゃねーの boostは処理系の差異を楽に吸収させるのにいいんじゃない? 使わない場合と比べて互換性の問題といわれるものはむしろ減るよな? >>112 ウザイなおまえケンカ売ってるのか? 本当につよいやつは強さを口で説明したりはしないからな 口で説明するくらいならおれは牙をむくだろうな おれパンチングマシンで100とか普通に出すし >>116 > おれパンチングマシンで100とか普通に出すし おまえ弱すぎだなww おれは105くらい余裕で出すぞ 突然だけど long long hoge[N][S][101]; fill(hoge[0][0], hoge[N][0], -1LL); ってどういうことか教えろください >>121 longlong型の3次元配列を定義 fillって関数の第一引数にhoge[0][0][0]のアドレスを、第二引数にhoge[N][0][0]のアドレス、第三引数にマイナス1を渡すって意味 お前の勝手なルールでこの場所に固執するのは勝手にすりゃいいけど、 総合的な場所よりは使って気づいている人が多そうなスレの方が まともな回答が得られる可能性が高いとは考えないのかな 叩いてるのが一人しかいないって? お気楽でいいね〜 FLTKのウェブサイトにアクセスできない Fast Light Toolkit FLTK Apps FLTK Library Forums Links Login [ Home | Articles & FAQs | Bugs & Features | Documentation | Download | Screenshots ] http://www.fltk.org/ のキャッシュです。 このページは 2013年4月18日 17:25:28 GMT (サーバーがぶっ壊れたからグーグルに)切り替えていく って事かな DirectXとかにある ビット演算子で↓のようになってるのは dwFlage = ○○|○○|○○; dwFlageに選択した3つの要素を入れるってことで良い? dwFlage = 1|2|3; dwFlage = 1|2|4; この違いが分かるならそれでよい ゲームのサウンドのライブラリを作るとして wavを読み込んで生成したチャンネルを 個別で解放する機能も必要だと思う? あと ストリーム再生出来ないとやっぱし困る? 静的再生だけじゃダメかな? DirectXで DDPRESENT_PARAMETERS d3dpp; d3dpp.Presentationlnterval = D3DPRESENT_INTERVAL_DEFAULT; の設定で映像が一定間隔で描画されるようになるけど その描画の間隔は1秒60フレームなの? 説明不足ですまん ライブラリからゲームを作成していて サウンド関係は静的再生のみ出来てて ストリーミング再生も実装する必要があるのか聞きたい 追加したほうが良いのは分かるけど サウンド以外にも作らなくちゃいけないものは山ほどあるから必須じゃないなら後回しにしたい スマホみたいにストレージが限られるプラットフォームもターゲットだったら必須 プライベート用なのか公開も視野に入れてるか知らんが、ぶっちゃけこの程度も判断できない人の 作ったライブラリなんて使いたくないな 既に出来てるならそのまま出せばいいじゃない つけてくれって言われてから考えればいい >>146 ないとゲームが作れない ってことがあるのか知りたいんだ インターネットラジオ連動型ゲームみたいにストリームで音鳴らすことが前提のゲーム ある、なし、で言えばあるに決まってるだろ ぶっちゃけ音なんて一切サポートしてなくてもたいていのゲームは作れる ターゲットなどを考えて優先順位つけりゃいんだよ わりとマジにおまえは頭悪そうだからプログラミング諦めたほうがいいぞ >>151 サンクス とりあえず ネット使わない昔ながらのゲームになるから しばらくは静的再生だけでいくよ 素直なやつだ わりとマジに早死しそうだからプログラミング諦めたほうがいいぞ ストリーミング無しとか話にならない。 音色データを全部メモリに乗せっぱなしか? 鳴らす時にファイルひとつ丸々読むのか? そんなクズライブラリ使うくらいなら毎回手で書いた方がマシ。 今、公開前提でゲームライブラリ作ってるんだが 公開用と埋め込み用でヘッダーファイルはどういう風に管理すればいいかな? 現状だと、includeディレクトリとimplディレクトリで分けて管理しているわけだが やっぱこんなもんか? >>143 BGMとなれば必須。 ストリーミングはデータの読み込み時間とメモリの節約。 効果音やらボイスならともかくBGMにそんな目くじら立てんでも そんなことぐらい自分で判断しやがれ ここで聞いても答えはでんだろ 他の人の意見を聞くならまだしも お前が信じるかどうかなんて知ったことじゃねえ PC88の頃から考えれば データがデカすぎるだけ。 C++で通信ライブラリのようなものを作ってます よかったらお試しください http://ichishino.nobody.jp/ /** * @FILEAME o72.h * @DESCRIPTION オナニーに使う動画、画像を射精管理する */ typedef int o72bool; struct o72 { int sex; int speed; long counter; int okazuflags; char okazuname; union { eropict okazuimage; erovideo okazudouga; }; }; extern o72bool okazujunbi(struct o72 * poni); extern o72bool o72start(struct o72 * poni); extern o72bool o72hand(struct o72 * poni, int maxspeed); extern o72bool o72page(struct o72 * poni, int pages); extern o72bool o72getframe(struct o72 * poni, BITMAPFILEHEADER *bmi, RGB24 *bmpor); extern o72bool o72dougactrl(struct o72 * poni, HWND parentWindow, unsigned long command); extern o72bool o72finish(struct o72 * poni, double pai, double theta, unsigned mse); extern o72bool o72destroy(struct o72 * poni); C++のBOOSTをインストールしたいんですが開発者コマンドプロンプトでフォルダを指定した後に bootstrapを実行すると 'cl'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません ってでてb2.exeとかができません Visual Studio 2012 Windows 7 Home Premium 関係あるか分かりませんが、bootstrap.batをダブルクリックして実行すると コンピューターにmspdb110.dllがないため、プログラムを開始できません。 とシステムエラーが出ます パソコンに関しては初心者ですので分かりやすく教えて下さい >>162 ですが boost_1_54_0をインストールしようとしていて VSはfor Desktopです 他のパソコンでは同じVSとBOOSTで正常にインストールできたのでパソコンの何かの設定が原因なのかなと思っています Visual Studioごと配布してるのかもな。ライセンス違反の臭いがする >>165 ふつうに公式からdownloadしただけなんですが >>164 boostから、環境の違いで開発環境が見えていないんだろ ところで、C++は初心者じゃないのね? 両方初心者だと茨の道だぞ >>167 C++はある程度分かるんですが PATHとかですか? >>168 自分の環境でないので、詳細はわからないが、エラーから考えると そうだろう。パスを設定している起動スクリプトが違うとか、 OS、32bit、64bitの違いとか、boostインストール時のパスの設定とか そのあたりじゃないのかい? ちなみにboostは専用スレがあるので、聞くならそっちの方が いいんじゃないか >>169 ありがとうございます 64bitにすべきだったみたいです お騒がせしました VC++2012でのauto_ptrの実装を見てたら以下のように書いてた auto_ptr(auto_ptr_ref<_Ty> _Right) _THROW0() { // construct by assuming pointer from _Right auto_ptr_ref _Ty *_Ptr = _Right._Ref; A _Right._Ref = 0; // release old _Myptr = _Ptr; // reset this } 「A」の行って何か意味あるの? auto_ptr()の呼び出し元が持ってるポインタを無効にしてるんじゃない? >>171 所有権の移動 これをやらないと2重delete発生 >>173 _Rightは参照じゃない auto_ptr_refはデストラクタで何もしない >>174 ああホントだ 脳内でコピーコンストラクタと思い込んでた スマソ ttp://blog-imgs-29-origin.fc2.com/s/h/a/shajiku/nodes_001.jpg こういうノードを使いたいんですが、ライブラリありますか? 本当に知りたいなら実装を自前のコードにコピーして、コード変えてデバッガで追ってみればいいんじゃないかな。 少なくとも._Refは参照先のポインタで意味がないとは思えないんだが。 vc++の実装見てたら shared_ptr<Ty>とweak_ptr<Ty>がTy*を持ちつつRef_count経由でもTy*を参照してる。 Ty*deleteはRef_countがやってるのはいいとして、値の取得は自分のTy*をみてる。 こうする理由ってあるのかな?自前のTy*いらないような気がするんだが。 自分でライブラリていどを作れない奴は無能という称号が相応しいよな 便利とか強請る気持ちは高等な概念構築の統合能力が無いだけだろ。 >>187 ライブラリのユーザは甘やかすべきだし、実際甘えてくる。 その覚悟があればどうぞ。 >>187 はゴミライブラリを作りまくっているようですね 実用的でないライブラリは、ゴミと同じ、容量の無駄 >>187 おまえはCPUから作れよ。 基板とかHDD、メモリもな。 回路図を描く為の紙の作成から始めると良い。 その次は鉛筆だろうな。 追いつくのに2万年くらいかかると思うから紙とペンとガラスの製造に成功したら 不老の薬を作るのもアリかもしれない。 速くて書きやすい行列計算ライブラリを探しています。 Eigenを使わせてもらっていますが、Eigenより速いものを求めています。 iOSやAndroidアプリ内の簡単な行列計算で使う予定です。よろしくお願いします。 両方で使うことを考えると結局Eigen使うことになるヨカーン 助言ありがとうございます。 ObjCのみであればAcceraleterを使おうかと思ったのですが、Androidに流用したかったので… cereal - A C++11 library for serialization BSD license. http://uscilab.github.io/cereal/index.html boost::serializationとどう違うん? Google Testについて質問なのですが、 Combineジェネレータを使ったとき、値パラメータの組み合わせそれぞれについて コンソールなりXMLなりにテスト状況を表示するのでテスト自体が遅くなったりして困るのですが Combineジェネレータを使ったテスト狙い撃ちで組み合わせごとの表示を無くす方法はありませんかね… イベントリスナーを置き換えて表示形式を変更をさせる方法のサンプルは本家のwikiに転がっていますが、(MinimalistPrinter) これだと全てのテストの表示に変更が及んでしまうという… 素人だけども一般的に自分書いたコードがどんなもんなのかきになる(´・ω・`) htps://github.com/sugawara5110/c-code/tree/master/neko-puzzle あっぷしてみましたのでご意見などいただけると勉強になります(´・ω・`) あーいらんかったってことですか(´・ω・`) たしかにソースだけあればよかったか・・ >>214 GitHubのマスコットキャラ 猫の姿でタコの足のキャラクタがGithubのあちこちにあるっしょ? オクトキャットっていうらしいよ あーいわれてみれば ここの住人はほとんど使ってるのかしら。 他の人のコードも見てみたい >>209 自動で最適な解を求める機能も 追加しろよ。 最短を求めるとなると私の頭では無理なので とりあえず自動で最後までそろえるってのだけを目標で・・・ 自動でパズルさせるのはなかなか難しい。 16ピース5回中3回くらいは途中停止する。最後まで行くときは2分くらいで終わる。 64ピースやってみたが6分くらいで行けそうなところ残り4ピースで途中停止した もう少し調整するかな。勉強になる htps://github.com/sugawara5110/c-code/blob/master/neko-puzzle/neko-puzzle.cpp あの・・最短距離ではないんだけども自動で完成させるプログラム追加しました よろしければコメントなどを・・・ >>222 なかなかやるな。ちゃんと解けるわ。 この後、何する? >>224 ありがたいお言葉(´・ω・`) 画像処理系に興味があるんだが一番適してるライブラリって何だろうね DXライブラリでやるとなるとGetPixelで色情報取ってどうにかするくらいしか 今のところ思い浮かばぬ >>224 画像処理系と言っても範囲が広いが photoshopみたいなのを作りたい のか? 最終的にそんなレベルまで行ければ最高だが まずは指定した範囲の色の変換くらいからやってみたいわ。 前に『C言語で学ぶ実践画像処理』とかいうやつを見たんだが さっぱりで、何かライブラリ使えばもう少し何とかならんかなと思ってね。 型推論が議論になってたからどんな難しいことやるのかと思ったら分かりきってることを書かなくて済むだけで 可読性は返ってあがるんじゃないかという物だった https://github.com/sugawara5110/c-code/tree/master/slide-puzzle 結局まだパズルいじってました。 よかったらご意見頂けると勉強になります。 出来たexeファイルとhkフォルダ,oggフォルダ,saveフォルダ,z_cam_ewc.bmpファイルと パズルにする動画(mpg,avi)か画像を同じとこにしていただくと動画像選べます(´・ω・`) webカメラ繋げると映った映像でできます。 >>236 保存しない。ほとんどの動的言語、スクリプト言語はmapが標準で使われる。 自作ライブラリをGithubに晒すも誰もクローンしてくれない ライブラリ製作者は宣伝もするべきか否か >>239 今ここで宣伝しろ。 面白いライブラリなら使うし、つまらなければ使わない。 コンテナやパーサがC++じゃなくて、Cで提供されてどうしろと。。。 さらにプロジェクトも大きいけど、、、 欲しいのはC++のクラスヘッダーで、使用法はインクルードするだけのインスタントに使える小さなヘッダーであって、、、 >>242 C++互換にしてインストールを簡単にしろってことかな というかREADMEにインストール方法書いてないね ごめんw書いておきます C++で使えるようにしても正直要らんから(文字列クラスは標準にあるしCSVパーサーも数十行で書ける) C言語だけで十分だと思うよ >>247 std::stringとは設計方針がちょっと違うんだけど、やっぱりそうなるか… >>248 じゃあ何が違ってどういうメリットがあるんだ?それをまずトップに書かないと。 一応言っておくけど追加できなくなったら何事も無かったかのように勝手に切り詰められるのはメリットとは思わないよ。 あとちらっとソース見たけどマクロとGenericでオーバーロードモドキか… _GenericはC++に無いからコンパイル通らない。(必要もないから将来的にも絶対入らない。) だから一生懸命extern "C"とか書かなくて大丈夫だよどの道使えないから。 >>249 > トップに書かないと 確かに。自動で伸縮しない所がメリットでありデメリットでもあると考えてます。 _Genericは…うーん、そうなんですよね。C++でコンパイル通らない。 だから仮にC++に対応させるなら__cplusplusでプリプロセス分岐させようかと思うんだけど。 というか、C言語で、CSVパース出来たとして、何の用とで使えと? ちょっと厳しすぎるだろ みんなが欲しがるようなライブラリなんて、いきなり作れるはずがない こういうのを作って経験して、もっといいものを公開するようになったり出来るようになるんだろう 他人に見せるライブラリって、何処まで丁寧にエラー処理すれば良いか悩む。 考えること。 ソースをライブラリ化するとき、 例えばライブラリフォルダに一式移動する 際、使う人あるかな、使用法わかるかな、とか考える。 もしくは、初めから使いたい人から要求されてライブラリになるな、 と確信してるときは、初めからライブラリフォルダにソースを置き、 始めはインターフェースはそれなりにしといて、中身空のメソッドだったりで、 使いながら育てる。 アプリケーションを実装する際にできたライブラリか 汎用なライブラリを作りたくてそれだけを作ったかで違ってくるよな 前者はなんかクソな設計で変更が難しいけど実際に動いてる実績があって 後者は延々と理想求めたりして実装がころころ変わったりして バグフィックスだけで良いのに使う側として常に追いかけなきゃならんとか >>253 理想はどんな場合でもハングしないでエラー返してくれることかなぁ。 外からメモリ壊してるとかは無理だけど。 csv パーサも固定長文字列も、必要になった時に、わざわざ検索してライブラリ探さないでしょ。 書いた方が早いし、自分の要求にフィットしたものが得られる。 誰も使ってくれないって当たり前でしょ。 このレベルの細かいものなら、コピペしてすぐ使えるレベルじゃないと。 >>252 親切にしてほしければヨソに行くべき。 >>255 あなたの言ってることは大事なことだ思うけど、 鍛冶屋が作ったナイフで鉛筆を削るか干し肉を削ぐかは使用者が決めることじゃないかなぁ。 >>258 「誰も使ってくれない」なんて言った覚えはないよ。 この程度の処理で大げさだってことですよね? うーん、それは確かにそうですね。難しいですねライブラリって。 誰も欲しがらないレベルなんだよな。 C++のプロジェクトにこのライブラリが入ってたら使ってるところとライブラリ全部削除して書き直すレベル 素直にC専用にしたほうがいいと思うがC11とかどれくらい使われてるやら >>259 おまえ馬鹿だな。 部品とそれを使うのがバッサリ分れてたのは第三世代言語まで。 開発時に結局部品も修正が必要となって、OOPで部品とその組み合わせとシームレスになったんじゃん。 >>260 流れ読んでないね。 C言語だと今使われるのはOSとか特殊用途。 メモリ保護とリアルタイム性を保障できるライブラリなら大げさであっても要るだろうけど、OSにCSVパーサーは要らないってこと。 アプリ用のCSVパーサーなら、今のアプリはOOP言語になってるから、C言語用は要らない。 >>264 なるほど。それじゃC++に移植したら少しは需要出るかな?つまりアプリ用途で。 Yes。 普通にググって、GPLじゃないことを確認したら、自分のソースのように使います。 といっても作者名を潰すわけでなく、超気に入った場合は作者のサイトのリンクファイルまでUPしておいたり。 C++のヘッダーだけだったら超OK、 CPPがある場合は自分で気に入らない部分を手直しできそうか目視チェック、 それを超えて大きい場合はサンプルを動かして費用対効果を考えます。 >>266 小回りの利いたライブラリも好まれるってことですよね。基本コピペで済むような。 CPPがある場合の手直しって何故するの?コンパイルの都合? 全然違う。 >小回りの利いたライブラリも好まれるってことですよね。基本コピペで済むような。 クラス派生とかで、簡単に処理を足したり引いたり出来ないと、困るみたいな。 コピペしたくないし、小回りとも違うんだけど。 >CPPがある場合の手直しって何故するの?コンパイルの都合? Hだと手直ししないって意味じゃなくて、Hだけだと全体を一瞬で読めて、手直しも一瞬って意味。 STLみたいのは手に負えないけど、費用対効果で使う。 >>265 需要ねえって何度も言ってるだろ・・・ >>266 ちゃんとライセンスに則って扱いましょうね。 GPLじゃなくてもお前のコードじゃないんだよ。 CSVパーサー(笑) そんな10分もあれば書けるようなものを わざわざ怪しげなソース引っ張ってくるバカいないから(笑) 需要ないのはわかったよ http://www.kasai.fm/wiki/rfc4180jp ここに書いてある仕様満たすのに10分かからないって本当? C++でライブラリ作るならboostにない機能にしろよ 個人や環境の差があるだろうが10分かからなくてもおかしくはない とはいえRFC4180をそのまま実装しておわりってことはまずなくて もっと簡便でいいかしっかり作り込むかで二極化してると思うんだよな 10分の節約にしかならないなら需要もない訳か JavaのOrangeSignal CSVとかは作りこんでるライブラリだよね C11だからなぁ 完全に満たしてようが趣味で使えるレベルであろうがちょいと厳しいものがある まあ停滞してたスレにいい風吹いたんでないの >>271 それは真っ赤なウソ、というか現実知らな杉。 毎年(常時)莫大な初心者プログラマが発生し、ググるでCSVパーサーを探し続ける、のが現実wwwww 燃料投下。 boostと被ると要らない、といった意見には、このような現実の反論もあります。 ttp://d.hatena.ne.jp/yus_iri/20120328/1332888387 csvパーサなんて、この程度がブログに載っててコピペで使う、くらいで丁度いい。 241 のはメインメモリに全部読まないからメモリにやさしいかもしれないが、メモリ消費量を気にするくらい大きな csv を扱うのは疑問だ。 それにカラムに改行が入ってはならないという制限を付けるだけで、簡単に行単位で扱えるようになり、メモリ消費量が最大の一行分になる。 // " を含んだままカラムと扱う。 // 閉じてない " は最後まで 1 カラム。 const char * endOfCsvColumn( const char * p, const char * end ) { const char delimiter[] = ",\r\n"; if ( *p != '"' ) return std::find_first_of( p, end, delimiter, delimiter+sizeof(delimiter) ); while ( p != end ) { p = std::find( ++p, end, '"' ); if ( p != end && (++p == end || *p != '"') ) break; // quatation closed. } return p; } そういう俺csvが乱立していたからRFCが出されたのに。 そんな状態でCSVなんかのRFC出されてもそれも需要ないよな。 厳密なのが欲しければおとなしくXMLとかjsonとか使ってる >>279 俺csvはともかく、これぐらいのサイズはやっぱり使いやすそうだなぁ メソッド単位で使いまわせると便利だよな 改行を含む場合に対応してなくてダブルクォーテーションのアンエスケープも 別にやらなきゃならんというなら素直にtsv使ったほうがいいな。 279 は改行をを含むカラムに対応してるよ。改行が入ってると 279 を呼ぶ側で fgets() で簡単には済ませられないという話。どうせ大きくても数MB程度だろうから全部読んじまえ。 俺 csv って、エスケープされたままなのは別として、カラム取り出しだけで言えば RFC 準拠だろ。 改行コードに CRLF ではなく LF でも受け付けるのは逸脱だが、そんなん直したけりゃ直せるだろうし、渡す側で行処理するんだからそこでも対処できる。 好きなコンテナに格納することを考えたら、あのくらいの単純さが使いやすいだろう。 プロジェクトによってはもっと仕様を簡素化できるわけで、検索してあれこれ比べて選定するくらいなら、毎回書いても大したことはないということは理解して頂けたのではないかと思う。 .orecsvの生成読み込み書き込み保存全部自前でやって外に公開しない 我が汚点ここに閉じれり コピペで組み込めるコードは魅力的ではある 俺もよくエディタから呼び出してペタペタしてる 俺もコピペ用の自分専用オナペットを言語ごとに用意してるよ 最近はエディタで一発呼び出しできるから便利だ >>288 嫁はcharですか?(声が池田秀一だと男だから婿か?) スニペットって書こうや バナナはおやつに含まれる これは周知の事実ですがスニペットはライブラリに含まれますか? EigenのMatrixXf型に、幅w 高さhの大きさの配列 float* db = new float[w * h]; をMapで入れる方法おしえてください MatrixXf A = Map<MatrixXf>(&db[0], w, h); redSVDのデータを一気に読み出す方法ないでしょうか? 要素1つずつアクセスしてるととんでもなく時間がかかります。 アンパンマン、新しい顔ができたよ!!! メモリ上の仮想ファイル操作(v_file) https://github.com/katahiromz/v_file 文字列を識別するためのswitch文を生成(MakeSwitchForStrings) https://github.com/katahiromz/MakeSwitchForStrings RARやZipファイルの解凍ライブラリは何がありますか? スタティックリンク可能なのが良いです あと、ファイルに書き出さずメモリ内に展開してくれる機能もほしいです >>241 はC11のGeneric使ってる人居たんだって所だけは興味深いね >>299 作り終わってしばらくは自信あったんですが、 時間が経って改め見るとここの人たちが言うようにあまり便利な代物ではなかったですね ライブラリ制作むずかしいです >>300 それが解っただけでも成長だよ 無理せず頑張れ ライブラリ探すときってどう探すのが良いんかね? 素人に教えてくだされ とりあえずgithubとsourceforgeを漁る レスサンクス 片っ端から漁ってみようかな よく使われるものをまとめたwikiとかあればいいのになぁ Googleってホントに公平なのかな? 自分で公開してると疑念がわいてくるぞ >>317 よく使われてないんだろ? よく使われてるのにGoogleで出てこない!っていうなら言ってることは解る >>317 AdWordsやSEOなどを学べば検索ランキングの仕組みがわかると思う >>317 金つめば検索上位に来ますって商売じゃなかったっけ? >>320 それを商売にしてるのはGoogleではない class を使うだけで 中身は標準Cのままなんて使い方はやっぱだめなの? なんていうか、便利なライブラリ使ってしまうより自分で作った方が 面白いからかな・・・ 職業にするならそれじゃダメなんだろうけど・・ 趣味の楽しいことを否定することは誰もできないぜ ただ俺の場合だとc++機能のつまみ食いが楽しくて(楽できて)やめられなくなっちゃった 自分の手の届かないブラックボックスのコードは仕事では使えない 趣味ならいいでしょ。 でもやり始めるとどんどんc++のコードになっていくと思う。 c++11は色々便利だし。 C++02 と C++11 の間隙を飛び越える方法を教えてください >>330 今、unboostという互換性ライブラリを作ってるから待っててね。 >>331 名前はturbo boostにしようや >>333 名前は変えないよ。 気に入ってるもん。 教えてください。 古いパソコンからパラレルプリンタで印刷しているのですが、そのデータを最近のPCに受信し、画像化を行いたいです。 RS232cに変換して他のPCにデータを受信できるところまでは来ました。 RS232cで受信した印刷データを画像化するためのライブラリもしくは方法など知っている方、おられないでしょうか? なお、ライブラリは有償・無償どちらでも問題ございません。 需要のない質問かもしれませんが、何卒よろしくお願いいたします。 ※古いパソコンからパラレル信号までは変えることが出来ません。 あるわけないだろう。プリンタのコマンドを解釈するんだろうw >>336 せめて送り側が Windows なら 出力先を EMF 形式のファイル出力に変えてなんとか出来るけど あるいは PDFやPostScript 形式 …も多分ついてないだろう 本気でやるならプリンタドライバが内部でやってるようなことを 自力で解析して復号となる そのプリンタの機種ごとの専用ツールとなる >>337 ,338 そうですか・・・ プリンタのコマンド解析となるとちょっと心が折れそうですorz 何か良い方法があれば・・・|д゚) ・そのプリンタの開発者用マニュアル(制御コード解説入り)をもらってくる ・プリンタ出力の内容は制御コード(メインは単純な描画命令)の羅列なので解析する ・アプリの画面なりプリンタイメージなりに描画命令をエミュレートする 工数とやる気があれば言うほど難しくないはず 試しに1ページ出力して解析できるかやってみるといいんじゃね winRT を (C++/CX ではなく標準の) C++ 用にしたやつがあるんだけど、 https://github.com/Microsoft/cppwinrt これって gcc というか msys2 環境でも使える? まあやってみりゃいいんだろうけど、やって駄目だったらあほらしいので聞いてみる次第。 実体は COM だから winRT を使わなくても同じことができるはずなんだけど、 すこぶる面倒くさいからいいフレームワークが欲しいんだよね。 マイクロソフト自身が作ってるやつなら信頼できるだろうし。 反応がないからやってみた。 あかんかった。 必要なヘッダファイルがなかったわ。 しょうがないから Windows SDK を入れよーっと。 コンパイルするだけなら Visual Studio を入れなくても SDK に一式が入ってんのね。 自分は使っていないけど検索している最中に見かけた https://github.com/maskedw/picox なんてどう? ライセンスは MIT, BSD, Apache License 2.0, etc 系統中心らしいから GPLやLGPLみたいに悩まなくていいから使い易そう 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 EIFP3 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる