kclib1_0007
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* kclib1のページ#7
-(by [[K]],2019.04.16)
** (11) 開発日記#1
-''2019.04.16(火)''
--''[1]'' 今日は今までに作っていたやつを一気に書いた(KAu...
--ここまでで一番気に入っているのは、やっぱりKMallocかなあ...
--その次のお気に入りはKAutoreleasePoolかな。だってfreeを...
--でも私は使う。やめる気はない。私にはC言語くらいがちょう...
--''[2]'' 昨年まではひたすら言語を作っていたのだけど、自...
--''[3]'' そういえば先日、qsortよりも速いソート関数って簡...
-''2019.04.17(水)''
--''[1]'' 自分でライブラリを作って、それをガンガン使って...
--''[2]'' 今回KMallocでは、freeの際にサイズとポインタの両...
-''2019.04.18(木)''
--''[1]'' 普通に開発して、テスト実行もして、「よしよし」...
--''[2]'' 今日は[[kclib1_0008]]と[[kclib1_0009]]を書きま...
--''[3]'' ふむふむ。どうやらC++だって、バッファのサイズと...
#include "kclib1.h"
#include <stdio.h>
int main(int argc, const char **argv)
{
KAutoreleasePool *ap = KAutoreleasePool_open();
const char *s = kreadFileA(argv[1], "rb", NULL, 1 + ...
for (int i = 1; *s != '\0'; i++)
printf("%08d: %s", i, ksgetsA(&s, 0));
KAutoreleasePool_close(ap);
return 0;
}
--これで12行。・・・ではC++で書いてみます(註:もっといい...
#include <fstream>
#include <iostream>
#include <string>
#include <boost/format.hpp>
int main(int argc, const char **argv)
{
std::ifstream ifs(argv[1]);
std::string str;
if (ifs.fail()) {
std::cerr << "file open error." << std::endl;
return 1;
}
for (int i = 1; getline(ifs, str); i++)
std::cout << boost::format("%08d: %s") % i % str...
return 0;
}
--うーん、17行ですね。エラー処理で4行も書かされてそこで損...
--まあメモリの使い方的にはC++版の方がかなりいいのですが、...
--本質的な比較ということになれば、
const char *s = kreadFileA(argv[1], "rb", NULL, 1 + ...
for (int i = 1; *s != '\0'; i++)
printf("%08d: %s", i, ksgetsA(&s, 0));
--vs
std::ifstream ifs(argv[1]);
for (int i = 1; getline(ifs, str); i++)
std::cout << boost::format("%08d: %s") % i % str...
--ということになって、まあどっちも3行程度だっていう感じで...
-''2019.04.19(金)''
--''[1]'' このkclib1は基本的には「これを使うことでプログ...
--実はこれとよく似たことを、OSECPU-VMのときもやっていて、...
---http://khfdpl.osask.jp/wiki/?oldworks13
--ということで、ああ、私はまた似たようなことをやっている...
--''[2]'' 今日はそもそもどうして私がC言語ばかり使うのかの...
--私はずっと前から、「自分でOSを作って、そのOSの中で超快...
--さてそう思ってしまうと、WindowsやLinuxのような既存OS向...
--でもそう思ってOSを作り始めても、そのOSの中で暮らせるよ...
--そういう考えになってしまうと、言語はせいぜいC言語までに...
--この悪循環から私はどうしても抜け出したいのです。それで...
--''[3]'' 私は今までも自作ライブラリはそれなりには書いて...
--今までの私は、かっこいいライブラリを作ることにこだわり...
--''[4]'' 主な依存関係
|''kerrorExit''|||
|''kqsort''|||
|''kpopCount32, kpopCount64, kgetMsb32''|||
|''KPtrPool''|kerrorExitを利用||
|''KMalloc''|kerrorExit, kgetMsb32, kpopCount32, KPtrPool...
|''KAutoreleasePool''|KMalloc|KMallocが小さなメモリ片を効...
|''KSizPtr''|KMallocを利用||
|''KSizPtr_addFile, kreadFileA, ksgetsA''|kerrorExit, KAu...
|''KIndexS''|KSizPtr, kqsortを利用||
-''2019.04.22(月)''
--''[1]'' 今日はKIndexSを作った。これで適当にデータを簡単...
--''[2]'' 急にふと思ったのだけど、kclib1みたいな「しょぼ...
--結局、人間は自分の能力を大きく上回るようなライブラリ関...
-''2019.04.24(水)''
--''[1]'' 昨日はKIndexHC, KIndexHO, KIndexHSを作った。ど...
--''[2]'' 結局セーフモードではなくリリースモードを作った...
--''[3]'' イージーモードに頼り切った、テキストを行単位で...
#include "kclib1.h"
#include <stdio.h>
int main()
{
keasymode = 2;
KSizPtr sp;
for (char *s = kreadFileA("t0011d.c", "rb", 0, 1 + 2...
KSizPtr_addPtr(&sp, kcutCrLfM(-1, ksgetsA(&s, 0)...
for (int i = sp.s / sizeof (char *) - 1; i >= 0; i--)
puts(((char **) sp.p)[i]);
return 0;
}
-''2019.04.25(木)''
--''[1]'' C++のコンストラクタ・デストラクタの仕組みがうら...
--''[2]'' まず多重継承はいらない。テンプレートもいらない...
-''2019.04.29(月)''
--''[1]'' C++ベースの[[kbcl0_0000]]へ移行します!
* こめんと欄
#comment
終了行:
* kclib1のページ#7
-(by [[K]],2019.04.16)
** (11) 開発日記#1
-''2019.04.16(火)''
--''[1]'' 今日は今までに作っていたやつを一気に書いた(KAu...
--ここまでで一番気に入っているのは、やっぱりKMallocかなあ...
--その次のお気に入りはKAutoreleasePoolかな。だってfreeを...
--でも私は使う。やめる気はない。私にはC言語くらいがちょう...
--''[2]'' 昨年まではひたすら言語を作っていたのだけど、自...
--''[3]'' そういえば先日、qsortよりも速いソート関数って簡...
-''2019.04.17(水)''
--''[1]'' 自分でライブラリを作って、それをガンガン使って...
--''[2]'' 今回KMallocでは、freeの際にサイズとポインタの両...
-''2019.04.18(木)''
--''[1]'' 普通に開発して、テスト実行もして、「よしよし」...
--''[2]'' 今日は[[kclib1_0008]]と[[kclib1_0009]]を書きま...
--''[3]'' ふむふむ。どうやらC++だって、バッファのサイズと...
#include "kclib1.h"
#include <stdio.h>
int main(int argc, const char **argv)
{
KAutoreleasePool *ap = KAutoreleasePool_open();
const char *s = kreadFileA(argv[1], "rb", NULL, 1 + ...
for (int i = 1; *s != '\0'; i++)
printf("%08d: %s", i, ksgetsA(&s, 0));
KAutoreleasePool_close(ap);
return 0;
}
--これで12行。・・・ではC++で書いてみます(註:もっといい...
#include <fstream>
#include <iostream>
#include <string>
#include <boost/format.hpp>
int main(int argc, const char **argv)
{
std::ifstream ifs(argv[1]);
std::string str;
if (ifs.fail()) {
std::cerr << "file open error." << std::endl;
return 1;
}
for (int i = 1; getline(ifs, str); i++)
std::cout << boost::format("%08d: %s") % i % str...
return 0;
}
--うーん、17行ですね。エラー処理で4行も書かされてそこで損...
--まあメモリの使い方的にはC++版の方がかなりいいのですが、...
--本質的な比較ということになれば、
const char *s = kreadFileA(argv[1], "rb", NULL, 1 + ...
for (int i = 1; *s != '\0'; i++)
printf("%08d: %s", i, ksgetsA(&s, 0));
--vs
std::ifstream ifs(argv[1]);
for (int i = 1; getline(ifs, str); i++)
std::cout << boost::format("%08d: %s") % i % str...
--ということになって、まあどっちも3行程度だっていう感じで...
-''2019.04.19(金)''
--''[1]'' このkclib1は基本的には「これを使うことでプログ...
--実はこれとよく似たことを、OSECPU-VMのときもやっていて、...
---http://khfdpl.osask.jp/wiki/?oldworks13
--ということで、ああ、私はまた似たようなことをやっている...
--''[2]'' 今日はそもそもどうして私がC言語ばかり使うのかの...
--私はずっと前から、「自分でOSを作って、そのOSの中で超快...
--さてそう思ってしまうと、WindowsやLinuxのような既存OS向...
--でもそう思ってOSを作り始めても、そのOSの中で暮らせるよ...
--そういう考えになってしまうと、言語はせいぜいC言語までに...
--この悪循環から私はどうしても抜け出したいのです。それで...
--''[3]'' 私は今までも自作ライブラリはそれなりには書いて...
--今までの私は、かっこいいライブラリを作ることにこだわり...
--''[4]'' 主な依存関係
|''kerrorExit''|||
|''kqsort''|||
|''kpopCount32, kpopCount64, kgetMsb32''|||
|''KPtrPool''|kerrorExitを利用||
|''KMalloc''|kerrorExit, kgetMsb32, kpopCount32, KPtrPool...
|''KAutoreleasePool''|KMalloc|KMallocが小さなメモリ片を効...
|''KSizPtr''|KMallocを利用||
|''KSizPtr_addFile, kreadFileA, ksgetsA''|kerrorExit, KAu...
|''KIndexS''|KSizPtr, kqsortを利用||
-''2019.04.22(月)''
--''[1]'' 今日はKIndexSを作った。これで適当にデータを簡単...
--''[2]'' 急にふと思ったのだけど、kclib1みたいな「しょぼ...
--結局、人間は自分の能力を大きく上回るようなライブラリ関...
-''2019.04.24(水)''
--''[1]'' 昨日はKIndexHC, KIndexHO, KIndexHSを作った。ど...
--''[2]'' 結局セーフモードではなくリリースモードを作った...
--''[3]'' イージーモードに頼り切った、テキストを行単位で...
#include "kclib1.h"
#include <stdio.h>
int main()
{
keasymode = 2;
KSizPtr sp;
for (char *s = kreadFileA("t0011d.c", "rb", 0, 1 + 2...
KSizPtr_addPtr(&sp, kcutCrLfM(-1, ksgetsA(&s, 0)...
for (int i = sp.s / sizeof (char *) - 1; i >= 0; i--)
puts(((char **) sp.p)[i]);
return 0;
}
-''2019.04.25(木)''
--''[1]'' C++のコンストラクタ・デストラクタの仕組みがうら...
--''[2]'' まず多重継承はいらない。テンプレートもいらない...
-''2019.04.29(月)''
--''[1]'' C++ベースの[[kbcl0_0000]]へ移行します!
* こめんと欄
#comment
ページ名: