C/C++のライブラリ総合スレ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2011/08/10(水) 01:12:07.87
便利で役立つライブラリを総合的に扱うスレがないので立てました

便利なライブラリをここに挙げてみたり
やりたい事を実現できるライブラリを聞いてみたり
ライブラリに関する雑談をするスレです
2015/05/27(水) 08:59:44.23ID:zpturinB
アプリケーションを実装する際にできたライブラリか
汎用なライブラリを作りたくてそれだけを作ったかで違ってくるよな

前者はなんかクソな設計で変更が難しいけど実際に動いてる実績があって
後者は延々と理想求めたりして実装がころころ変わったりして
バグフィックスだけで良いのに使う側として常に追いかけなきゃならんとか
2015/05/27(水) 09:53:36.20ID:Sp3ce27d
>>253
理想はどんな場合でもハングしないでエラー返してくれることかなぁ。
外からメモリ壊してるとかは無理だけど。
2015/05/27(水) 09:58:36.91ID:n6H5is8U
csv パーサも固定長文字列も、必要になった時に、わざわざ検索してライブラリ探さないでしょ。
書いた方が早いし、自分の要求にフィットしたものが得られる。
誰も使ってくれないって当たり前でしょ。
このレベルの細かいものなら、コピペしてすぐ使えるレベルじゃないと。

>>252
親切にしてほしければヨソに行くべき。
2015/05/27(水) 10:23:50.27ID:aJ6ZFegx
>>255
あなたの言ってることは大事なことだ思うけど、
鍛冶屋が作ったナイフで鉛筆を削るか干し肉を削ぐかは使用者が決めることじゃないかなぁ。
2015/05/27(水) 10:42:25.64ID:aJ6ZFegx
>>258
「誰も使ってくれない」なんて言った覚えはないよ。
この程度の処理で大げさだってことですよね?
うーん、それは確かにそうですね。難しいですねライブラリって。
261デフォルトの名無しさん
垢版 |
2015/05/27(水) 12:17:21.94ID:4NQ0ZIOa
誰も欲しがらないレベルなんだよな。
C++のプロジェクトにこのライブラリが入ってたら使ってるところとライブラリ全部削除して書き直すレベル
2015/05/27(水) 12:38:05.44ID:lhddlPIv
素直にC専用にしたほうがいいと思うがC11とかどれくらい使われてるやら
2015/05/27(水) 13:05:33.39ID:O9y07yQ1
>>259
おまえ馬鹿だな。
部品とそれを使うのがバッサリ分れてたのは第三世代言語まで。
開発時に結局部品も修正が必要となって、OOPで部品とその組み合わせとシームレスになったんじゃん。
2015/05/27(水) 13:12:00.91ID:O9y07yQ1
>>260
流れ読んでないね。

C言語だと今使われるのはOSとか特殊用途。
メモリ保護とリアルタイム性を保障できるライブラリなら大げさであっても要るだろうけど、OSにCSVパーサーは要らないってこと。

アプリ用のCSVパーサーなら、今のアプリはOOP言語になってるから、C言語用は要らない。
2015/05/27(水) 14:31:37.57ID:aJ6ZFegx
>>264
なるほど。それじゃC++に移植したら少しは需要出るかな?つまりアプリ用途で。
2015/05/27(水) 15:09:54.31ID:O9y07yQ1
Yes。

普通にググって、GPLじゃないことを確認したら、自分のソースのように使います。
といっても作者名を潰すわけでなく、超気に入った場合は作者のサイトのリンクファイルまでUPしておいたり。

C++のヘッダーだけだったら超OK、
CPPがある場合は自分で気に入らない部分を手直しできそうか目視チェック、
それを超えて大きい場合はサンプルを動かして費用対効果を考えます。
2015/05/27(水) 15:46:40.38ID:aJ6ZFegx
>>266
小回りの利いたライブラリも好まれるってことですよね。基本コピペで済むような。
CPPがある場合の手直しって何故するの?コンパイルの都合?
2015/05/27(水) 16:05:37.46ID:O9y07yQ1
全然違う。

>小回りの利いたライブラリも好まれるってことですよね。基本コピペで済むような。

クラス派生とかで、簡単に処理を足したり引いたり出来ないと、困るみたいな。

コピペしたくないし、小回りとも違うんだけど。

>CPPがある場合の手直しって何故するの?コンパイルの都合?

Hだと手直ししないって意味じゃなくて、Hだけだと全体を一瞬で読めて、手直しも一瞬って意味。

STLみたいのは手に負えないけど、費用対効果で使う。
2015/05/27(水) 16:21:52.04ID:aJ6ZFegx
>>268
ああ、OOPにしろってことね。
2015/05/28(木) 02:32:35.00ID:Q/PHM93y
>>265
需要ねえって何度も言ってるだろ・・・

>>266
ちゃんとライセンスに則って扱いましょうね。
GPLじゃなくてもお前のコードじゃないんだよ。
2015/05/28(木) 04:39:20.67ID:uU2xmjCS
CSVパーサー(笑)
そんな10分もあれば書けるようなものを
わざわざ怪しげなソース引っ張ってくるバカいないから(笑)
2015/05/28(木) 05:09:28.73ID:iUg4+VgF
需要ないのはわかったよ
http://www.kasai.fm/wiki/rfc4180jp
ここに書いてある仕様満たすのに10分かからないって本当?
2015/05/28(木) 07:13:18.70ID:GsmtxIyT
C++でライブラリ作るならboostにない機能にしろよ
2015/05/28(木) 07:20:28.88ID:qAXCkldS
個人や環境の差があるだろうが10分かからなくてもおかしくはない
とはいえRFC4180をそのまま実装しておわりってことはまずなくて
もっと簡便でいいかしっかり作り込むかで二極化してると思うんだよな
2015/05/28(木) 07:38:31.92ID:iUg4+VgF
10分の節約にしかならないなら需要もない訳か
JavaのOrangeSignal CSVとかは作りこんでるライブラリだよね
2015/05/28(木) 07:54:57.38ID:/29IIuZp
C11だからなぁ
完全に満たしてようが趣味で使えるレベルであろうがちょいと厳しいものがある
まあ停滞してたスレにいい風吹いたんでないの
2015/05/28(木) 09:48:20.22ID:syH+pQKv
>>271
それは真っ赤なウソ、というか現実知らな杉。

毎年(常時)莫大な初心者プログラマが発生し、ググるでCSVパーサーを探し続ける、のが現実wwwww
2015/05/28(木) 10:48:16.51ID:syH+pQKv
燃料投下。

boostと被ると要らない、といった意見には、このような現実の反論もあります。

ttp://d.hatena.ne.jp/yus_iri/20120328/1332888387
2015/05/28(木) 11:55:58.71ID:C5F/Fv0U
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;
}
2015/05/28(木) 23:20:28.85ID:bIsDrlAn
そういう俺csvが乱立していたからRFCが出されたのに。
2015/05/29(金) 00:04:13.41ID:bAym9d9y
そんな状態でCSVなんかのRFC出されてもそれも需要ないよな。
厳密なのが欲しければおとなしくXMLとかjsonとか使ってる
2015/05/29(金) 04:51:03.43ID:qs5f7SgO
>>279
俺csvはともかく、これぐらいのサイズはやっぱり使いやすそうだなぁ
メソッド単位で使いまわせると便利だよな
2015/05/29(金) 08:02:28.25ID:BhuuzzRo
改行を含む場合に対応してなくてダブルクォーテーションのアンエスケープも
別にやらなきゃならんというなら素直にtsv使ったほうがいいな。
2015/05/29(金) 13:06:57.82ID:PDSs+1CX
279 は改行をを含むカラムに対応してるよ。改行が入ってると 279 を呼ぶ側で fgets() で簡単には済ませられないという話。どうせ大きくても数MB程度だろうから全部読んじまえ。
俺 csv って、エスケープされたままなのは別として、カラム取り出しだけで言えば RFC 準拠だろ。
改行コードに CRLF ではなく LF でも受け付けるのは逸脱だが、そんなん直したけりゃ直せるだろうし、渡す側で行処理するんだからそこでも対処できる。

好きなコンテナに格納することを考えたら、あのくらいの単純さが使いやすいだろう。
プロジェクトによってはもっと仕様を簡素化できるわけで、検索してあれこれ比べて選定するくらいなら、毎回書いても大したことはないということは理解して頂けたのではないかと思う。
2015/05/29(金) 16:03:21.08ID:qs5f7SgO
そうなると列数のためにヘッダーが必要になるのか
2015/05/29(金) 18:59:23.12ID:Y1+KdLtR
.orecsvの生成読み込み書き込み保存全部自前でやって外に公開しない
我が汚点ここに閉じれり
2015/05/31(日) 18:44:09.08ID:qAMsR7U5
コピペで組み込めるコードは魅力的ではある
俺もよくエディタから呼び出してペタペタしてる
2015/05/31(日) 18:51:30.86ID:1lTJ4ips
俺もコピペ用の自分専用オナペットを言語ごとに用意してるよ
最近はエディタで一発呼び出しできるから便利だ
2015/05/31(日) 19:57:59.60ID:aISW5E8s
>>288
嫁はcharですか?(声が池田秀一だと男だから婿か?)

スニペットって書こうや
2015/06/01(月) 14:43:55.83ID:w6ZTYj3g
バナナはおやつに含まれる
これは周知の事実ですがスニペットはライブラリに含まれますか?
291デフォルトの名無しさん
垢版 |
2015/06/01(月) 15:02:44.49ID:af7LYGUO
僕のバナナはおっきいです
292デフォルトの名無しさん
垢版 |
2015/06/08(月) 17:40:07.97ID:f6z+oPGU
EigenのMatrixXf型に、幅w 高さhの大きさの配列

float* db = new float[w * h];

をMapで入れる方法おしえてください
293デフォルトの名無しさん
垢版 |
2015/06/09(火) 10:27:41.86ID:rq1TUv96
MatrixXf A = Map<MatrixXf>(&db[0], w, h);
294デフォルトの名無しさん
垢版 |
2015/06/11(木) 15:20:59.61ID:SBJGIqGV
redSVDのデータを一気に読み出す方法ないでしょうか?
要素1つずつアクセスしてるととんでもなく時間がかかります。
295片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2015/06/14(日) 15:11:34.31ID:9Ob0dyvk
アンパンマン、新しい顔ができたよ!!!

メモリ上の仮想ファイル操作(v_file)
https://github.com/katahiromz/v_file

文字列を識別するためのswitch文を生成(MakeSwitchForStrings)
https://github.com/katahiromz/MakeSwitchForStrings
2015/06/16(火) 14:28:55.50ID:Xu7A0Hie
更新したよ。MakeSwitchForStringsは、MakeSwitchになったよ。

https://github.com/katahiromz/v_file
https://github.com/katahiromz/make_switch
https://github.com/katahiromz/MakeSwitch
297デフォルトの名無しさん
垢版 |
2015/09/02(水) 17:12:22.70ID:DQQjJ9NG
  
2015/11/28(土) 14:34:07.15ID:Fi4wDTmy
RARやZipファイルの解凍ライブラリは何がありますか?
スタティックリンク可能なのが良いです
あと、ファイルに書き出さずメモリ内に展開してくれる機能もほしいです
2015/12/26(土) 03:41:38.86ID:sxewN+8H
>>241 はC11のGeneric使ってる人居たんだって所だけは興味深いね
2015/12/30(水) 06:16:03.09ID:HSsTu4WU
>>299
作り終わってしばらくは自信あったんですが、
時間が経って改め見るとここの人たちが言うようにあまり便利な代物ではなかったですね
ライブラリ制作むずかしいです
2016/01/06(水) 12:23:59.24ID:7f9jZCuf
>>300
それが解っただけでも成長だよ
無理せず頑張れ
2016/01/08(金) 22:06:12.15ID:2qKIN/Bt
>>301
はい
ありがとうございます
303デフォルトの名無しさん
垢版 |
2016/04/05(火) 02:46:14.53ID:2X2ng6yq
age
2016/05/16(月) 18:32:27.81ID:PpqHj2Tc
boostいいよね
2016/07/04(月) 11:38:42.52ID:wohCeOEw
pocoもあるよ
2016/07/04(月) 13:45:26.88ID:Z4HAFPPM
coolか
2016/08/21(日) 00:07:30.55ID:s2xwnKiZ
ライブラリ探すときってどう探すのが良いんかね?
素人に教えてくだされ
2016/08/21(日) 02:42:05.09ID:lsHNIuDO
とりあえずgithubとsourceforgeを漁る
309デフォルトの名無しさん
垢版 |
2016/08/21(日) 02:50:58.25ID:pfepwF/n
ググる
2016/08/21(日) 10:44:40.41ID:ONJlbRqy
しかないなぁ
311307
垢版 |
2016/08/22(月) 21:22:02.87ID:OjHIFgr+
レスサンクス
片っ端から漁ってみようかな

よく使われるものをまとめたwikiとかあればいいのになぁ
312デフォルトの名無しさん
垢版 |
2016/08/22(月) 21:48:55.22ID:ZPxXQ162
よく使われるならググったらすぐ出るでしょ
2016/08/22(月) 21:54:11.15ID:S7EK7X08
然り
2016/08/22(月) 21:58:32.54ID:npgbUrT6
情弱なんだろ
2016/08/22(月) 22:17:24.53ID:ehbr7t6m
かわいそー
2016/08/22(月) 22:38:29.52ID:npgbUrT6
(プログラム開発は無理)
317デフォルトの名無しさん
垢版 |
2016/08/22(月) 22:59:55.07ID:EtOaB7dZ
Googleってホントに公平なのかな? 自分で公開してると疑念がわいてくるぞ
318デフォルトの名無しさん
垢版 |
2016/08/22(月) 23:10:51.24ID:ZPxXQ162
>>317
よく使われてないんだろ?
よく使われてるのにGoogleで出てこない!っていうなら言ってることは解る
2016/08/22(月) 23:25:27.99ID:JyyoV7BQ
>>317
AdWordsやSEOなどを学べば検索ランキングの仕組みがわかると思う
2016/08/23(火) 08:46:13.03ID:uPhg+qti
>>317
金つめば検索上位に来ますって商売じゃなかったっけ?
321デフォルトの名無しさん
垢版 |
2016/08/23(火) 12:30:52.28ID:82e1JvbW
>>320
それを商売にしてるのはGoogleではない
2016/08/29(月) 00:41:37.27ID:fth/j43y
え?
wiki あるだろ?
2016/10/01(土) 12:46:16.58ID:dfnenJuX
保守
324デフォルトの名無しさん
垢版 |
2016/11/03(木) 19:28:15.81ID:vnuawPe0
class を使うだけで
中身は標準Cのままなんて使い方はやっぱだめなの?
2016/11/03(木) 20:06:29.74ID:T3nfQxtH
理由があるのであれば
326デフォルトの名無しさん
垢版 |
2016/11/03(木) 20:30:34.05ID:vnuawPe0
なんていうか、便利なライブラリ使ってしまうより自分で作った方が
面白いからかな・・・
職業にするならそれじゃダメなんだろうけど・・
2016/11/04(金) 00:45:19.83ID:6Uh6B4Og
趣味の楽しいことを否定することは誰もできないぜ
ただ俺の場合だとc++機能のつまみ食いが楽しくて(楽できて)やめられなくなっちゃった
2016/11/04(金) 01:00:25.40ID:ATlzIavb
自分の手の届かないブラックボックスのコードは仕事では使えない
2016/11/04(金) 12:39:33.09ID:lX4+FIXr
趣味ならいいでしょ。
でもやり始めるとどんどんc++のコードになっていくと思う。
c++11は色々便利だし。
2016/11/04(金) 20:02:19.37ID:CUjt06/h
C++02 と C++11 の間隙を飛び越える方法を教えてください
2016/11/04(金) 21:53:57.71ID:JWDjY2VB
>>330
今、unboostという互換性ライブラリを作ってるから待っててね。
2016/11/05(土) 00:11:14.56ID:DL4mqWsO
boostじゃだめすかw
2016/11/10(木) 15:52:46.33ID:nmccOsUf
>>331
名前はturbo boostにしようや
2016/11/10(木) 16:27:28.79ID:nWtoC1jV
pascalになったでござる
2016/11/11(金) 18:46:29.16ID:X9bDlJ5d
>>333
名前は変えないよ。
気に入ってるもん。
336デフォルトの名無しさん
垢版 |
2016/11/15(火) 11:48:34.39ID:eHQzqCjm
教えてください。
古いパソコンからパラレルプリンタで印刷しているのですが、そのデータを最近のPCに受信し、画像化を行いたいです。
RS232cに変換して他のPCにデータを受信できるところまでは来ました。
RS232cで受信した印刷データを画像化するためのライブラリもしくは方法など知っている方、おられないでしょうか?
なお、ライブラリは有償・無償どちらでも問題ございません。

需要のない質問かもしれませんが、何卒よろしくお願いいたします。
※古いパソコンからパラレル信号までは変えることが出来ません。
2016/11/15(火) 12:30:56.28ID:9SsXmVK+
あるわけないだろう。プリンタのコマンドを解釈するんだろうw
2016/11/15(火) 12:48:32.13ID:4QSE1fRA
>>336
せめて送り側が Windows なら 出力先を EMF 形式のファイル出力に変えてなんとか出来るけど
あるいは PDFやPostScript 形式 …も多分ついてないだろう

本気でやるならプリンタドライバが内部でやってるようなことを
自力で解析して復号となる そのプリンタの機種ごとの専用ツールとなる
339336
垢版 |
2016/11/15(火) 13:27:31.85ID:eHQzqCjm
>>337,338
そうですか・・・
プリンタのコマンド解析となるとちょっと心が折れそうですorz
何か良い方法があれば・・・|д゚)
2016/11/15(火) 13:57:00.67ID:4QSE1fRA
・そのプリンタの開発者用マニュアル(制御コード解説入り)をもらってくる
・プリンタ出力の内容は制御コード(メインは単純な描画命令)の羅列なので解析する
・アプリの画面なりプリンタイメージなりに描画命令をエミュレートする

工数とやる気があれば言うほど難しくないはず
試しに1ページ出力して解析できるかやってみるといいんじゃね
2016/11/15(火) 14:47:30.53ID:9SsXmVK+
>>339
プリンタの機種名は?
342デフォルトの名無しさん
垢版 |
2016/11/15(火) 14:56:38.40ID:pY5YUGJg
これに答えてやってやれよ
http://itest.2ch.net/test/read.cgi/news4vip/1479189054/l50
2016/11/15(火) 15:01:31.08ID:9SsXmVK+
しるかぼけ
2016/11/15(火) 15:08:19.56ID:USeI/jnx
ははは
345デフォルトの名無しさん
垢版 |
2016/11/15(火) 15:14:44.43ID:DuXtNH0u
お願いいたします
346デフォルトの名無しさん
垢版 |
2017/01/21(土) 13:25:41.17ID:dThE4/1u
boostでいい
347デフォルトの名無しさん
垢版 |
2017/03/22(水) 20:21:34.61ID:Z7WA23Z2
http://video.fc2.com/mycontents.php
348デフォルトの名無しさん
垢版 |
2017/05/07(日) 19:49:03.61ID:mbfQ5EoB
hoshu
2017/05/07(日) 20:48:59.70ID:904pYcPE
PDFのパーサーでフリーのやつってないの?
2017/05/07(日) 20:57:58.31ID:YLCveNdh
あるよ
2017/05/19(金) 11:06:50.36ID:Y3e1LQgh
winRT を (C++/CX ではなく標準の) C++ 用にしたやつがあるんだけど、
https://github.com/Microsoft/cppwinrt

これって gcc というか msys2 環境でも使える?
まあやってみりゃいいんだろうけど、やって駄目だったらあほらしいので聞いてみる次第。

実体は COM だから winRT を使わなくても同じことができるはずなんだけど、
すこぶる面倒くさいからいいフレームワークが欲しいんだよね。
マイクロソフト自身が作ってるやつなら信頼できるだろうし。
352351
垢版 |
2017/05/20(土) 02:14:08.46ID:fAtXPAgj
反応がないからやってみた。
あかんかった。
必要なヘッダファイルがなかったわ。
しょうがないから Windows SDK を入れよーっと。
コンパイルするだけなら Visual Studio を入れなくても SDK に一式が入ってんのね。
2017/05/20(土) 12:42:37.29ID:Kse+pj8o
SDKだけだとWTLとかなくね?
2017/05/20(土) 13:08:50.25ID:ZHG0NHku
ごくろうさん
355デフォルトの名無しさん
垢版 |
2017/05/20(土) 15:32:40.61ID:YAniTqrY
>>351
使えるよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況