[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 14:08 / Filesize : 51 KB / Number-of Response : 231
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++で新しい文字列クラスをつくろう 2



1 名前:デフォルトの名無しさん [2006/12/26(火) 20:24:15 ]
CString , string , wstringに負けないものをみんなで作ろうね。

前スレ: pc8.2ch.net/test/read.cgi/tech/1044098312/

52 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 12:29:41 ]
>>50
速いのかなぁ。

> 48 名前:デフォルトの名無しさん[sage] 投稿日:2007/07/06(金) 05:47:29
> 51 名前:デフォルトの名無しさん[sage] 投稿日:2007/07/07(土) 19:38:50

結果論だが、約38時間もかかる。
自分でリファレンス見れば5分でわかることなのに。

53 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 12:40:37 ]
じゃあ、リファレンス見るより聞いた方が楽だからじゃないの?
さすがに他に理由は浮かばないなあ

54 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 13:55:08 ]
>>52
聞いた時点では3分でわかる可能性もあったんだよ。

競馬場とかに行くと、そういう自分に都合の言い夢見てる人っていっぱいいるよ。

55 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 14:15:19 ]
まあ3分で分かるかもしれない可能性を信じて質問する奴の将来なんてたかが知れてるわな

56 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 14:41:16 ]
投機実行かもしれないけどね (w

57 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 18:52:29 ]
#include <windows.h>
#include <stdio.h>
// simple string class
class TSTR {
private:
char* Memory;
int buff_len;
size_t CalcBuffSize(const char* s, const char* a=NULL) { size_t size = s? strlen(s)+1: 0; return a ? size+1 + strlen(a)+1: size; }
void Copy(const char* s, const size_t length) {
if (!s) return;
size_t new_size = CalcBuffSize(s);
if (length>0 && length < new_size) new_size = length + 1;
if (Memory!=NULL) free(Memory);
Memory = (char*)malloc(new_size);
if (length==0) strcpy(Memory, s);
else { strncpy(Memory, s, length); Memory[length+1] = 0; }
buff_len = strlen(Memory);
}
void Copy(const char* s){ Copy(s, 0); }
void Add(const char* s) {
if (!s) return;
size_t new_size = CalcBuffSize(Memory, s);
Memory = (char*)realloc(Memory, new_size);
strcat(Memory, s);
buff_len = strlen(Memory);
}
char* MakeBuff(size_t size) { if (Memory!=NULL) free(Memory); Memory = (char*)calloc(size, 1); return Memory; }


58 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 18:53:59 ]
public:
__declspec(property(get=buff_len)) int len;
__declspec(property(get=Memory,put=Copy)) char* str;
TSTR() { buff_len = 0; Memory = NULL; }
TSTR(const TSTR &s) { buff_len = 0; Memory = NULL; Copy(s.Memory); }
TSTR(const char* s) { buff_len = 0; Memory = NULL; Copy(s); }
TSTR(const char* s, size_t length) { buff_len = 0; Memory = NULL; Copy(s, length); }
~TSTR() { if (Memory!=NULL) free(Memory); }
char* Sprintf(const char* fom, ...) { va_list ap; va_start(ap, fom); vsprintf(MakeBuff(strlen(fom)+1024), fom, ap); va_end(ap); return Memory; }
char operator [](const int idx) { return (char)(Memory ? Memory[idx]: 0); }
bool operator==(const char* s) const { return (strcmp(Memory, s)==0); }
bool operator >(const char* s) const { return (strcmp(Memory, s)>0); }
bool operator <(const char* s) const { return (strcmp(Memory, s)<0); }
bool operator >=(const char* s) const { return (strcmp(Memory, s)>=0); }
bool operator <=(const char* s) const { return (strcmp(Memory, s)<=0); }
bool operator !=(const char* s) const { return (strcmp(Memory, s)!=0); }


59 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 18:54:15 ]
bool operator==(const TSTR &s) const { return (strcmp(Memory, s.Memory)==0); }
bool operator >(const TSTR &s) const { return (strcmp(Memory, s.Memory)>0); }
bool operator <(const TSTR &s) const { return (strcmp(Memory, s.Memory)<0); }
bool operator >=(const TSTR &s) const { return (strcmp(Memory, s.Memory)>=0); }
bool operator <=(const TSTR &s) const { return (strcmp(Memory, s.Memory)<=0); }
bool operator !=(const TSTR &s) const { return (strcmp(Memory, s.Memory)!=0); }
char* operator =(const char* s) { Copy(s); return this->Memory; }
TSTR& operator =(const TSTR& s) { Copy(s.Memory); return *this; }
TSTR& operator +=(const TSTR& s) { Add(s.Memory); return *this; }
TSTR& operator +=(const char* s) { Add(s); return *this; }
friend const TSTR operator + (const char* ls, const TSTR& rs) { TSTR l(ls); l.Add(rs.Memory); return l; }
friend const TSTR operator + (const TSTR& ls, const char* rs) { TSTR l(ls); l.Add(rs); return l; }
TSTR operator +(const TSTR& rs) const { TSTR a(Memory); a.Add(rs.Memory); return a; }
char* operator +(const char* rs) const { TSTR a(Memory); a.Add(rs); return a.Memory; }
};

60 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 18:54:51 ]
スケルトンにつかってくだせぇ



61 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 10:43:44 ]
んなBorlandローカルなものをどうしろと。

62 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 02:38:29 ]
俺にはVCローカルに見えるが・・・。



63 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 05:09:19 ]
>__declspec(property(get=Memory,put=Copy)) char* str;
これってどっち?

64 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 11:53:21 ]
少なくともVC++には存在する。
msdn2.microsoft.com/en-us/library/yhfk0thd(VS.80).aspx

COM対応の#importしたときにインタフェースのプロパティで使われている。

65 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 12:04:38 ]
>>57-59
必要がなければ、char型限定にしないでクラステンプレートにしろよ。
あと、CopyやAddはもっと例外安全に強くしろよ。ついでにC++ならswap必須。

operator +、=、Sprintfがchar*を返すなんて論外。
operator []はconst版を用意しろ。尤も、参照を返さない方針なら、const版だけでも十分だな。
free(NULL)は問題ないので、半分くらいのifは不要。
malloc類は<stdlib.h>だ。<stdio.h>も<windows.h>も不要。

66 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 16:09:33 ]
__declspec(property....
はBCCもVCも使えると思うんだが

67 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:52:57 ]
どっちもつかわないからどっちでもいいよ。

68 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 18:38:07 ]
でっていう

69 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 06:13:48 ]
汎用的な文字列クラスを作るよりは、
用途別に文字列クラスを作ったほうがいいと思う。

大文字小文字を区別しないで比較する回数が多い文字列のためのクラス
constな文字列のためのクラス
とても短い長さの文字列のためのクラス
マルチバイト文字列とUnicode文字列の相互変換回数が多い文字列のためのクラス
非常に寿命が長い文字列のためのクラス
非常に寿命が短い文字列のためのクラス
同じ内容をたくさんの箇所で使うconstな文字列のためのクラス



70 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 07:35:38 ]
>>69
それのどこにどんなメリットが?



71 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:15:31 ]
>>70
わからない人には必要のないものです。


72 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 10:48:58 ]
>>71
必要の有無を聞いているのではないのでメリット(=利点)について宜しく。

73 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:12:39 ]
パフォーマンスだろうな。

74 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:16:22 ]
シンプルな文字列クラスを作って、それを用途別に派生させればいいような気がするのだが。

75 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:27:30 ]
>>69は文字列のクラスというよりは、文字列を記憶するクラスという感じだな。


76 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 07:15:11 ]
>>69の文章は異様に圧縮が効きそうだな。

77 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 04:01:58 ]
文字列を、「文字」ごとに処理させるのはどうやってやります?
あと、文字数を数える処理とか。(こっちは簡単だけど

charだと(Shift_JISでもEUC-JPでもUTF-8でも)マルチバイトの処理が面倒だし、
wchar_tだと(UTF-16として)サロゲートが入ってたら2つで1文字なので…
UTF-32とかUCS-4な文字列クラス使ってる人いますか?

78 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 09:32:08 ]
パフォーマンスを求めなければ、
マルチバイト→先人がやってきたようにやる
Unicode→32ビットでやる

自分はサロゲートなんてシラネーヨと高をくくって1文字16ビット固定でやってる。

79 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:16:11 ]
>>77
> UTF-32とかUCS-4な文字列クラス使ってる人いますか?

ノシ 自作 UCS4+UTF8+SJIS+EUCJ
32ビットつってもフルカラー1ピクセルも32ビットだしな

80 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:53:19 ]
32ビットカラーって24ビット+アルファ値じゃないん?



81 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 13:05:55 ]
1画素32ビットであることには違いあるまい。

82 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 14:56:45 ]
std::basic_string<uint32_t>でいい気もするが
必要なコードを全部書くのは面倒くさいし
リテラルが簡単に書けないし
uint32_tの文字はオーバーロード時にただの整数と見なされてしまう

特にリテラルが簡単に書けないのは実用上大問題

83 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 15:12:20 ]
いらない子じゃん

84 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 00:15:12 ]
たまにはsizeof (wchar_t) == 4でUCS-4/UTF-32な奴らも忘れないで。

>>82
std::basic_string<uint32_t> u32(const wchar_t*);のような関数を定義しておけば、
これくらいにはできる。

typedef std::basic_string<uint32_t> u32string;
u32string s = u32(L"hogehoge");

Win32 APIの_TやTEXTマクロみたいなもんだと思えばたいしたことはない、ってダメ?

それはともかく、C++0xにはchar16_tやchar32_tなる型が入るらしいよ。
www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
pc11.2ch.net/test/read.cgi/tech/1149440647/372-

85 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 09:27:35 ]
>>84
_Tマクロはプリプロセス時に解決されリテラルとして埋め込まれるが
その手法だといちいち実行時に変換される
どっちかっつーとC2Wとかのマクロに近いかな
本物のリテラルと違って一時オブジェクトの寿命を気にする必要があるし
ワイド文字リテラルがまともに使えるコンパイラを相手にするとしても、
wchar_tのサイズによって実装を場合分けしないといかんのも面倒だ

C++0xのユニコード文字型が導入されれば大分マシになりそうだが
いつになることやら、だな

86 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 19:49:52 ]
D言語だとテンプレート引数に文字列リテラルが使えるらしいな。
そもそもUTF-32なdchar型もあるけどな。

87 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 20:27:11 ]
{ xxx, yyy, zzz } ;のように書き換えるプリプロセッサを用意するだけじゃダメなん?

88 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:18:07 ]
>>87
それだと

const uint32_t *utf32_str = ....
とは書けないし #define にも使えないな

static const uint32_t utf32_str[] = ....
ならそれでいいけど

89 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:30:58 ]
C99の複合リテラルなら静的記憶期間を持つから、
前者にも対応できるけど標準C++にはきっと入らない。

90 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:34:31 ]
もしかしてC99では
printf({'h', 'e', 'l', 'l', 'o', ',' 'w', 'o', 'r','l','d','\n', 0});
とか書けるのか

キモいな



91 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:47:47 ]
seclan.dll.jp/c99d/c99d07.htm#dt19991101
頭にキャストみたいな形で型を指定する必要があるけど、
本当にそんなことも可能。
gcc -std=c99

#include <stdio.h>

int main()
{
printf((char[]){'h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd', '\n', 0});
}


92 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:50:01 ]
static const uint32_t _utf32_str[] = { うりゃぁ } ;
const uint32_t *utf32_str = _utf32_str ;

これでいいじゃん。


93 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:54:40 ]
{ うりゃぁ }
これはダメだろw

それはともかく、内部的にコンパイラはそれに近いことをやって、
ついでにそれをまとめたりしてくれてるわけだ
printf()等の函数の引数に直接リテラルを使えないのはかなり嫌だぞ
いちいちそんな風に書きたくないよ

94 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:10:44 ]
"うりゃぁ"のつもりではなくて・・・
{ 14235, 13456, 15196, 15611, 0 }
とかのつもり。

プリプロセッサで処理すれば何ら問題なし。
かつての日本語対応のやりかたと一緒。

95 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 23:14:58 ]
> かつての日本語対応のやりかたと一緒
あー確かにそうだな
Javaのnative2asciiみたいなもんとも言えるな
ただ、昔はリテラルを8進とか16進とかのリテラルに置き換えるだけで
すんでたでしょ

96 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 08:31:30 ]
>>93
87の言うようなプリプロセッサの出力が92みたいになればいいと思う。

97 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 10:56:49 ]
簡単に言うが、マクロとかテンプレートとか色々考慮してるか?
生半可な考えは絶対破綻する

98 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 07:59:08 ]
char *hage = L"hage";
printf("%s\n", hage);
何も表示されませn

99 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:18:14 ]
>>98
スレ違い。

100 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 16:31:16 ]
>>98
それをコンパイルするときに警告が出るようにしろ。
どうやってもそれで警告を出さないコンパイラなんて窓から投げ捨てろ。



101 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 14:06:54 ]
用途別に、
アルファベットだけ格納できる文字列クラス、
ひらがなだけ格納できる文字列クラス、
ウかんむりの漢字だけ格納できる文字列クラス、
とか作ったら、激しく労力の無駄でいい感じじゃね?

102 名前:デフォルトの名無しさん [2007/10/12(金) 08:22:41 ]
テンプレートで自動生成したいなそれ

103 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 09:33:24 ]
>>102
まずは対応する文字クラスを作らなきゃなぁ。

104 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:13:26 ]
やはり問題の根元は、
文字型がCにないことだな。

105 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 13:29:43 ]
逆に無かった事で今日まで生き残れた

106 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:25:02 ]
素朴な疑問だが、文字型が存在する言語って何がある?

107 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:54:20 ]
C++ wchar_t

今度の0xではchar16_t, char32_tが追加の予定。

108 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:57:20 ]
>>106
Javaとか

109 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 18:29:55 ]
クラスで扱う文字コードは、
OSのAPIが要求する文字コードにあわせるのが一番なんだろうけどな。

cinで入力される度に、文字コード変換して格納、
coutで出力するたびに再度文字コードを変換して出力ってのは無駄が多いし。

110 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 18:51:28 ]
>>109
結局、char なら ASCII もしくはマルチバイト、
wchar なら UTF-16 って自分の中では決めてる。
で、マルチバイトに関しては環境に合わせる方向で。
でも実際には wchar だからって UTF-16 と決められないケースもおおいよね。
C++0x ではまた新たな型が追加されるみたいだねぇ。



111 名前:110 mailto:sage [2007/10/15(月) 18:54:47 ]
C++0x になったら UTF-16と決めている場合には char16_t をつかうべき?
そりゃそうと、根本的な疑問なんだが、 UTF-8 も UTF-16 も
所詮は可変長文字だよね。内部コードとしてどちらを使うべきかは
どうやって決めればいいんだろう。好きなの使えば?ってのは無しの方向で。
自分の中でどういうガイドラインを作っておけばいいかなぁ、と迷う。



112 名前:110 mailto:sage [2007/10/15(月) 19:06:18 ]
www.rubyist.net/~matz/20070312.html
まつもと氏はバイトオーダーの問題があるから
事実上 UTF-8 でいいじゃんって主張みたいだねぇ。
まぁわからないでもない。ただ Windows で
プログラムを書くことが多い身としては UTF-16
との変換をしばしばする必要があるのは屋だなぁ。
UTF-8とUTF-16のマップは表現系だけの変換で
マップは必要ないからそんなに苦にはならないか。

113 名前:110 mailto:sage [2007/10/15(月) 19:08:04 ]
いっそのこと Mule のコードを流用、というのはやりすぎか。
www.dennougedougakkai-ndd.org/~delmonta/emacs/27.html

114 名前:デフォルトの名無しさん [2007/10/15(月) 19:08:07 ]
char64_tがあれば…

115 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:07:28 ]
>> std::basic_string<uint32_t>
本気で実装するなら、facetから作ることになるのか…char_trait<uint32_t>…
それでコンストラクタではSHIFT-JISから変換格納?
すごく遅そう…ただでさえfacetキャッシュしないと遅いのに…

116 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 02:55:26 ]
俺思うんだ...
文字コードの体系が増えれば増えるほどややこしくなってるって...


117 名前:110 mailto:sage [2007/10/16(火) 16:33:31 ]
文字を捨てよう。
動物に帰ろう。

118 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 19:31:15 ]
それはやりすぎ。
ASCIIだけ残せばいい。

119 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 10:27:05 ]
>>116
漏れの作った新しい文字コードをみんなが使えばいいんだ
問題はすべて解決だ

120 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:17:23 ]
0x00 = ひ
0x01 = ろ
0x02 = ゆ
0x03 = き
0x04 = 改行

ここまで策定した。残りはよろしく



121 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 19:13:20 ]
0x05ぬ
0x06る
0x07ぽ

122 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:11:08 ]
0x08=ガ
0x09=ッ

123 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 16:00:40 ]
つか、1バイト長で日本語表現するつもりですかw


124 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:11:07 ]
0x0a い
0x0b つ
0x0c て
0x0d よ
0x0e し
0x0f 。
0x10 お
0x11 ま
0x12 え
0x13 も
0x14 な
0x15 ー

案外被らずにいけるもんだな。

125 名前:デフォルトの名無しさん [2007/10/22(月) 23:31:40 ]
0x16 = o
0x17 = r
0x18 = z
0x19 = O
0x1a = T
0x1b = L

126 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 09:29:48 ]
0xfe 終
0xff 了

127 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 10:02:20 ]
0x100宇
0x101宙
0x102ヤ
0x103バ
0x104イ

128 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 13:13:16 ]
>>127を持ちまして可変長コードになりました。

129 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 14:52:02 ]
>>128
しかも、それが1byte目なのか2byte目なのか判別不能な可変長コード...

130 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:28:50 ]
以下、
リトルエンディアンとビッグエンディアンによる骨肉の争い。



131 名前:デフォルトの名無しさん [2007/10/24(水) 00:20:28 ]
文字列ぐらい言語仕様で持ちやがれ

132 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 08:19:51 ]
C++の歴史は文字列の抽象化の歴史だ。
言語仕様で文字列を定義したが最後、
C++の進化は止まるだろう…

133 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:23:40 ]
char や int のビット幅すらきめうちにはしなかったわけだからなぁ。
あ、そういうわけでビットローテートが演算子として用意されていないのかな?
ローテート結果に関して何か決めようとするとビット幅が固定されて
いないと何も言えないからねぇ。

134 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:40:30 ]
ローテートはビット数に依存するからCの仕様では無理だわな
VCには独自拡張であるけどね。2005からは8,16ビットにも対応してる

135 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 16:54:06 ]
>>1-135
ここの住人のやる気のなさがわかったおwwww

136 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 18:27:57 ]
もうC++で文字列使うのやめようぜ

137 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 19:40:07 ]
basic_stringはピザだからなぁ…
非メンバ非friendな便利関数としてデザインし直したものを作ってやろうかと妄想してるよ

138 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 20:03:59 ]
>>134
え?Visual C++ にはあるの?
どんな感じの構文?

139 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 20:08:16 ]
_rotl だっけ?

140 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 22:17:35 ]
それ、演算子じゃなくて関数じゃないか



141 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 22:28:16 ]
わかったよ、じゃあ文字コードの次は演算子の策定と行こうか

><< =左ローテート
>>< =右ローテート

ここまで策定した。残りはよろしく

142 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 22:47:39 ]
文字列をローテートするとどうなる。

143 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 14:23:32 ]
>>142
たぶん読みにくくてたまらない。

144 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 17:19:41 ]
>>142
ジェットストリームアタック

文字列をローテートするとどうなる。
。文字列をローテートするとどうなる
る。文字列をローテートするとどうな
なる。文字列をローテートするとどう
うなる。文字列をローテートするとど
どうなる。文字列をローテートすると
とどうなる。文字列をローテートする
るとどうなる。文字列をローテートす
するとどうなる。文字列をローテート
トするとどうなる。文字列をローテー
ートするとどうなる。文字列をローテ
テートするとどうなる。文字列をロー
ーテートするとどうなる。文字列をロ
ローテートするとどうなる。文字列を
をローテートするとどうなる。文字列
列をローテートするとどうなる。文字
字列をローテートするとどうなる。文
文字列をローテートするとどうなる。

145 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 20:15:42 ]
>>144の中にウォーリーがいます。君はみつけられるかな?

146 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 23:55:15 ]
みつからねぇ…

147 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:01:58 ]
単項演算子「!」を提案するよ
矢印の右が演算後の値ね
詳細な仕様と実装はあとの人に任せる

!"良スレ" → "糞スレ"
!"有用な議論" → "不毛なダベり"

148 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 20:44:32 ]
は?

149 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 17:19:10 ]
それ実現させたらどんだけデータベース抱えたクラスになるとおもっとるんだww

150 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 14:46:45 ]
!"このスレ" → ?



151 名前:デフォルトの名無しさん [2007/11/14(水) 21:06:23 ]
C++で独自の中置演算子を定義出来たら、
どんなに素晴らしい世界が待っているんだろう。

152 名前:デフォルトの名無しさん mailto:age [2007/11/14(水) 21:08:51 ]
ある日NOぷりすたぁ
www.freewebs.com/photoradio/?518235







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<51KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef