C++0x 8
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/01/07(木) 23:23:15http://www.open-std.org/jtc1/sc22/wg21/
Wikipedia
http://ja.wikipedia.org/wiki/C%2B%2B0x
C++0x
http://pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
http://pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
http://pc11.2ch.net/test/read.cgi/tech/1204808027/
C++0x 4
http://pc11.2ch.net/test/read.cgi/tech/1214407525/
C++0x 5
http://pc12.2ch.net/test/read.cgi/tech/1232460649/
C++0x 6
http://pc12.2ch.net/test/read.cgi/tech/1245092251/
C++0x 7
http://pc12.2ch.net/test/read.cgi/tech/1253280377/
0002デフォルトの名無しさん
2010/01/07(木) 23:37:28○コンセプトさん
ついに一度も登校することなくお星様になってしまった。
この事件によって学園に激震が走り、入学式が一年延期になる事態に。
彼女の再起はあるのだろうか。
○ラムダさん
コンセプトさんに代わって新入生代表に抜擢されることに。
だが服が汚い上デザインが二転三転してるのでよくいじめられる。
コンセプトさんと同じ目に遭わないかと内心ビクビクもの。
○右辺値参照さん
一足先に本格的な通学を始めつつある新入生。
よく出来た子として先生方には評判が高いが、
気難しいので普通の生徒たちからは敬遠されている。
○拡張for文さん
forさんの妹。コンセプトさん問題の一番の被害者。
きったない服で通学することになりテンションガタ落ち中。
○type_traitsさん
ライブラリ科の新入生。
コンセプトさんの代役としてにわかに注目を集め始めた。
思わぬスポットライトに浮かれすぎで最近テンションがやばい。
○static_assertさん
type_traitsさんの相方としてこちらも注目を集める新入生。
面倒な相手との仕事が増えそうで最近憂鬱。
assertさんの妹だが、マクロ科と予約語科の立場の違いで仲が悪い。
0003デフォルトの名無しさん
2010/01/07(木) 23:39:11vectorさんが泣いて喜ぶコンテナ部悲願の新人。
だが似たような服を着た生徒が元から多いので、一部では
「またややこしい奴が来た」と陰口を言われているらしい。
○テンプレート可変長引数さん
テンプレ部が泣いて喜ぶ期待の新人。部の熱狂的な歓迎ぶりと
「変態が増えた」と嘆く周囲の温度差に困惑中。
stdargさんとは顔がよく似てるが血の繋がりはない。
○autoさん
地味で消えそうだった子が一転、イメチェンで今やモテモテに。
そのあまりの変貌ぶりに周囲は戸惑いを隠せない。
最近まで同じ立場だったregisterさんの胸中はいかに…
○decltypeさん
autoさんの妹の新入生。姉が記憶クラス科にいた過去は知らない。
姉に劣らぬ人気者だが、服装のちょっとした違いで性格が変わる面倒な一面も。
○ユーザー定義リテラルさん
「わかりにくい」「見るからにきもい」「関数さんでいいじゃん」と
すこぶる評判の悪い新入生。強く生きていって欲しい。
○nullptrさん
「今さら来られても……」「なんで今までいなかったの?」という
心ない陰口に傷ついている地味な新入生。
○long longさん
え?新入生だったの?
○禿
校長先生。
0004デフォルトの名無しさん
2010/01/07(木) 23:40:20なんだかよく分からないアクセサリーを頭とお尻に付けている。
しかもアクセサリーは日替わり。
・auto_ptrさん
落第。一応、まだ学校にはいる。
・unique_ptrさん
auto_ptrさんを蹴落として進級してきた。
・Smart pointerさん
とても頭がいいが、循環参照も扱えるかどうかは、学校によって異なる。
・Unordered associative containerさん
いつも、とても大きなカバンを引きずっている。
ただし、カバンから物を取り出すのはとても早い。
・Regular expressionさん
頭は良いらしいのだが、何を言っているのかよく分からない。
周囲からは中二病だと思われている。
・Atomic operationさん
細かいことばかり気にしている神経質な子。
口癖は、「だってその可能性はゼロじゃないし〜」
・threadさん
カバンも持たずに登校してくるミニマリスト。
ペンと紙一枚あればそれで十分でしょと言い張る。
どうしようもないときは、魔法の言葉、「ねぃてぃぶ・はんどる〜」を唱えると、とりあえず何とかなる。
0005デフォルトの名無しさん
2010/01/07(木) 23:41:18type_info君と仲が良いらしい。
噂では、いくとこまでいったとかいってないとか。
ただし、開校前のクラス分けで離ればなれになってしまった。
・System error supportさん
いじめられて転校してきたらしい。
たぶん、どの学校でも相手にされない子。
ほとんどの学校には、学校独自の、もっとマシな子がいるし。
・Tupleさん
博愛平等主義者。ほとんどのクラスメートと仲が良い。
・Binder姉妹(bind1st,bind2nd)
落第。一応、まだ学校にはいる。
・Function template bindさんと、Polymorphic function wrapperさん
二人とも、とても頭が良い。
なんでも、「ぶーすと」という一流の進学校から転校してきたらしい。
あまりに成績が良かったために偏差値を押し上げて、Binder姉妹を落第させる原因をつくった。
・Time utilitieさん
2038年問題も3000年問題も大丈夫と豪語。
・Compile-time rational arithmetic君
Time utilitieさんと仲が良いらしい。
0006デフォルトの名無しさん
2010/01/07(木) 23:49:430007デフォルトの名無しさん
2010/01/07(木) 23:52:15いねぇw
0008>2-5
2010/01/07(木) 23:59:51入試どころか書類選考で落ちたな。
>1乙!!
0009デフォルトの名無しさん
2010/01/08(金) 01:10:030010デフォルトの名無しさん
2010/01/08(金) 22:30:210011デフォルトの名無しさん
2010/01/09(土) 08:24:22const さんの従姉妹。const さんと同じく地味ながらきっちり仕事を果たす実力派。
先生達に「りかーしぶ」という魔法の杖を奪われそうになったが無事に維持。
今後の活躍が期待される。
0012デフォルトの名無しさん
2010/01/09(土) 10:48:17するってーと、8queenとかのパズルの解法プログラムの答えが実行前に得られそうだな。
0013デフォルトの名無しさん
2010/01/09(土) 10:58:04double sin(double x); //FPUを呼ぶ。
double sin(double x)constexpr; //近似式で記述されてる。
0014デフォルトの名無しさん
2010/01/09(土) 13:35:14constexpr double sin(const double x); //近似式で記述されてる。
こうなるんじゃないの
0015デフォルトの名無しさん
2010/01/09(土) 13:41:200016デフォルトの名無しさん
2010/01/09(土) 16:31:03コンパイラ上で解法プログラムが走ると考えるほうがいいんじゃね?
0017デフォルトの名無しさん
2010/01/09(土) 19:58:460018デフォルトの名無しさん
2010/01/09(土) 20:16:280019デフォルトの名無しさん
2010/01/09(土) 20:21:38MLのunit型やHaskellの()みたいな扱いで
0020デフォルトの名無しさん
2010/01/09(土) 21:30:57それは余計な機能のような気がするなあ。
voidに対する==や、void*の参照外しの動作を定義する必要があるし。
0021デフォルトの名無しさん
2010/01/09(土) 21:48:430022デフォルトの名無しさん
2010/01/09(土) 21:51:390023デフォルトの名無しさん
2010/01/09(土) 22:02:13最低推奨値が 17 から一気に 1024 に拡大とか委員会は変態コードを推奨している気がしてならない。
>12
全部 return 一文で書ける形にしなきゃならないからテーブル作るだけでも結構大変だと思ったけど
MPL 使えばいいのかって、いやだったら最初っから全部 MPL で書けばいいような。
>14
constexpr であるかどうかに関わらずパラメータリストの中にある最上位の const は無視される(現行仕様でも)。
なので >13 のようなオーバーロードはできないと思う。
>17
>N3000 3.9.1p9
>(略) The void type is an incomplete type that cannot be completed. (略)
>An expression of type void shall be used only as an expression statement (6.2), as an
>operand of a comma expression (5.18), as a second or third operand of ?: (5.16), as the operand of typeid,
>or as the expression in a return statement (6.6.3) for a function with the return type void.
ってなってるから駄目っぽい。でも対象の式を return に置く形で大体逃げられるんじゃないの?
0024デフォルトの名無しさん
2010/01/09(土) 22:08:23アセンブル時に計算し終わっているっていうのがあったけど、
C++は未だに実現できていないという低級言語なんですね。
0025デフォルトの名無しさん
2010/01/09(土) 22:15:190026デフォルトの名無しさん
2010/01/09(土) 22:15:20それはね、標準化委員会からの挑戦状だよ。
0027デフォルトの名無しさん
2010/01/09(土) 22:16:38C++にはpythonというプリプロセッサが(ry
0028デフォルトの名無しさん
2010/01/09(土) 22:40:220029デフォルトの名無しさん
2010/01/09(土) 23:16:52いや、MPL で書けるだろ。
後、1994 年の時点でエラーメッセージに素数が出力されるコードが委員会に報告されてる。
ttp://www.informit.com/articles/article.aspx?p=30667&seqNum=8
0030デフォルトの名無しさん
2010/01/10(日) 04:23:38再帰数の制限がなければコンパイラは立派な関数型言語のインタープリタだ
0031デフォルトの名無しさん
2010/01/10(日) 06:58:41みんなレスしちゃだめだよ。
0032デフォルトの名無しさん
2010/01/10(日) 12:26:01アッカーマン関数をコンパイル時に計算してみろ、低級言語。
0033デフォルトの名無しさん
2010/01/10(日) 12:52:300034デフォルトの名無しさん
2010/01/10(日) 13:18:510035デフォルトの名無しさん
2010/01/10(日) 13:20:490036デフォルトの名無しさん
2010/01/10(日) 14:18:49自暴自棄になっているだけのやつを
相手にするなって。
0037デフォルトの名無しさん
2010/01/10(日) 15:20:14どうやったらその文脈で「や」をタイプするんだ
0038デフォルトの名無しさん
2010/01/10(日) 15:21:310039デフォルトの名無しさん
2010/01/10(日) 17:18:16多分そこ迷ったんじゃないと思うよ。
まず最初に「仕事の求人がないやつが」と書いて、自暴自棄のくだりを付け足すために
「なくて」と変更しようとバックスペースしたら、「な」まで戻らず2文字残っちゃったのでは。
0040デフォルトの名無しさん
2010/01/10(日) 18:55:000041デフォルトの名無しさん
2010/01/10(日) 19:33:19>・Smart pointerさん
>とても頭がいいが、循環参照も扱えるかどうかは、学校によって異なる。
学校によって異なるってどういう意味?weak_ptrが実装依存なの?
0042デフォルトの名無しさん
2010/01/10(日) 21:07:05autoはもはや同姓同名の別人が入学してきたんじゃないか
0043デフォルトの名無しさん
2010/01/10(日) 22:05:13低レベルで細かいとても変わった規則の連続。
そんなこんなでちまちま曲芸プログラミングをすることを強いていく低級言語。
そんな言語より、問題に対して真っ正面から素直に
ズドンとぶつかっていく、問題を知り尽くした人により慎重に
そして大胆に設計されたDSLを学ぶ方が良いだろう。
0044デフォルトの名無しさん
2010/01/10(日) 22:23:52な.../ :::早:::::l::::":::::::、:::: :ヽ.::::::::::::::::.:::::.こ:.: 駄.
ん/ :::::::く::::::|::::::::::::::ヽ:::::ヽ`:、:::::::::::::::::い::: 目
と.!:::、::::.:::::::::.l:.:::::::::::::::ヽ::\:::ヽ.::::::::::..つ:. ..だ
か:..: :::|,::: :: :、丶: ヽ: :: :ヽ :::'-::ヽ:::::::::..・ ..
し::::|:::::::y::::::::ヽ:::::ゝ:ヽ,::::::\.::::゙''.::ヽ::::::・: .
な:,:::.l:::::lヽ::::::::、:":::::、: 、:::::::゙'.l'-、::.:l::::・::.: .
い.!:,::::ミ、:゙!,ヽ::::: l::::.\ヽ,\::..,.\\.l::.::::: ...
と.! l::.:::、::::l从_:::::l::,,'.:/_、ニ,,__、i::|:、''"!:::::::, .
.・:::.ゝ. !./゙! :^lゝ\|::l ゞ='ハ":`.,!`)l:'":::::":::/ ..
.・::ヘ::: `''`:ゝ-:"::::::::ソ":.、:´ `-'‐' ι,.|,i::i'::::/..
.・. ::ミ `:::::::::::::::::::::::: ノ.|.l::::i./ ...
. ヽ''l、::::::::::::::::::: .i .,l/::::|:,i"
.'ル:::::::::::::::::ゝ_- U,..l,i|::l/:. .
. ヽ:::::::: ゙'/ゞ.从、.! ...
. ヽ::::::`ヽ..二"''‐ / ,i゙.::|"l/‐ .
/゙:、::: `― ./,,、/ .゙| ! ......
/ .ヽ: \ _/ / l./ ゙
. , / l ヽ .`'― :(,゙/゙ //
0045デフォルトの名無しさん
2010/01/10(日) 22:30:43auto a=func();
auto int b=func();
なんか共存できそうだけどね。
0046デフォルトの名無しさん
2010/01/11(月) 02:16:22低級言語: より機械語に近い(抽象度の低い)言語
対義語->高級言語:自然言語に近い(抽象度の高い)言語
DSL: 特定の問題領域に特化した言語(Domain Specific Language)
TM等価で無いことがある。
対義語->汎用プログラム元号:様々な処理を行うことを目的とした言語。普通はTM等価。
general-purpose programming language
0047デフォルトの名無しさん
2010/01/11(月) 08:36:460048デフォルトの名無しさん
2010/01/11(月) 11:10:05だから相手にするなって。
低級言語の意味を間違えていて、
バカにした手前今更引き下がれない低能力者なんだから。
0049デフォルトの名無しさん
2010/01/11(月) 15:10:12未だにしがみついていて哀れですね。
0050デフォルトの名無しさん
2010/01/11(月) 15:53:140051デフォルトの名無しさん
2010/01/11(月) 16:08:030052デフォルトの名無しさん
2010/01/11(月) 18:29:29boost spirit
0053デフォルトの名無しさん
2010/01/11(月) 20:11:150054デフォルトの名無しさん
2010/01/11(月) 23:18:52C++について行けなくなって
落ちこぼれたヤツが必死になってやじっているという絵が
脳裏に浮かぶwww
0055デフォルトの名無しさん
2010/01/12(火) 11:15:15細かい規則をテストしたら40点だろ、おまえ。
0056デフォルトの名無しさん
2010/01/12(火) 13:04:050057デフォルトの名無しさん
2010/01/12(火) 23:53:36低級言語の意味も知らないくせに偉そうだな
0059デフォルトの名無しさん
2010/01/13(水) 12:36:35>>40
0060デフォルトの名無しさん
2010/01/13(水) 17:50:270061デフォルトの名無しさん
2010/01/13(水) 18:10:41オレがC言語を勉強した15年以上前の頃から知ってるよ。ごめんね。
0062デフォルトの名無しさん
2010/01/13(水) 23:01:400063デフォルトの名無しさん
2010/01/13(水) 23:39:09stdint.hと__VA_ARGS__と__func__とlong longとsnprintfあたりだけでいいから
0064デフォルトの名無しさん
2010/01/14(木) 01:13:14プリプロセッサとかlong longとか邪悪すぎるだろ。
C畑の奴らどんだけアホなんだよ?
0065デフォルトの名無しさん
2010/01/14(木) 14:03:080066デフォルトの名無しさん
2010/01/14(木) 14:38:450067デフォルトの名無しさん
2010/01/14(木) 15:42:540068デフォルトの名無しさん
2010/01/14(木) 16:03:34long long longにするのか?
<cstdint>の形で提供されるべきなんだよ。
0069デフォルトの名無しさん
2010/01/14(木) 21:01:500070デフォルトの名無しさん
2010/01/14(木) 22:05:37128bitや256bitの整数だってどうせそのうち必要になるだろ
0071デフォルトの名無しさん
2010/01/14(木) 22:08:42long128_t
…どっちも今ひとつ。
0072デフォルトの名無しさん
2010/01/15(金) 05:18:140073デフォルトの名無しさん
2010/01/15(金) 08:19:090074デフォルトの名無しさん
2010/01/15(金) 09:05:220075デフォルトの名無しさん
2010/01/15(金) 19:30:19このクソ変換N3000で無くなったんだな
良いことだ
0076デフォルトの名無しさん
2010/01/15(金) 23:18:33今となってはそういう処理のクラスを作れば済む話になったな。
0077デフォルトの名無しさん
2010/01/16(土) 04:30:58struct bmpinfo {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
}
こんなやつで
bmpinfo *bi = (bmpinfo*)malloc(sizeof(bmpinfo) + sizeof(RGBQUAD) * 16) ;
コード適当であってるか知らないけど
>今となってはそういう処理のクラスを作れば済む話になったな。
最近、WinのAPI使わないから知らないけど、どんな方法使ってるの?
0078デフォルトの名無しさん
2010/01/16(土) 04:38:34ttp://seclan.dll.jp/c99d/c99d04.htm#dt19990726
0080デフォルトの名無しさん
2010/01/16(土) 15:32:03APIに渡す構造体が欲しいというなら、こんな感じにしてる。
class Hoge
{
struct bmpinfo
{
BITMAPINFOHEADER bmiHeader;
};
bmpinfo * buf;
public:
Hoge(int size)
:buf((bmpinfo*)new char[sizeof(bmpinfo)+sizeof(RGBQUAD)*size])
{
}
~Hoge()
{
delete[] (char*)buf;
}
RGBQUAD& operator[](int i)
{
return ((RGBQUAD*)&buf[1])[i];
}
BITMAPINFOHEADER& header()
{
return buf->bmiHeader;
}
};
0081デフォルトの名無しさん
2010/01/16(土) 19:44:27ダメだぞそれ
0082デフォルトの名無しさん
2010/01/17(日) 12:33:13つってもVCはC99非対応だから結局独自拡張だけどな
0083デフォルトの名無しさん
2010/01/18(月) 10:09:43BITMAPFILEHEADER bmfHeader;
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[N];
BYTE bmBits[H][W];
};
bmpfile<16,480,640/2> vga4bit;
0084デフォルトの名無しさん
2010/01/18(月) 13:10:070085デフォルトの名無しさん
2010/01/18(月) 20:52:30まだ劇的に変わったって印象は感じれないな
0086デフォルトの名無しさん
2010/01/18(月) 20:57:19concept は最早通常リリースでは実装されないんじゃね?
lambda は 4.5 で実装済みらしい。
ttp://gcc.gnu.org/projects/cxx0x.html
0087デフォルトの名無しさん
2010/01/18(月) 21:41:48.5にしたらできました
これはすごい便利っぽい
0088デフォルトの名無しさん
2010/01/21(木) 10:25:24めでたくVC++2010では入らないことが決定した
0089デフォルトの名無しさん
2010/01/21(木) 20:13:33,―==7 Congratulation! コングラッチュレーション
|く ___ _> Congratulation!
fll`ーU+'
`''、 ー=| おめでとう・・・・・・・・!
_,,..-´:|ヽー-;ー..,,_
. ,−=-, ,,..-‘≡≡:| ><´|≡::|ヽ おめでとう・・・・・・・・! おめでとう・・・・・・・・!
. | l____ヽ.|≡l≡≡≡| |::| |≡:::/::|
. |(llー´_ヽ|≡|≡≡≡|.|:::|l≡::/::::| おめでとう・・・・・・・・・・・・!
.. 4 l__`=|_|≡:|≡≡≡::||:::|'≡/≡|
/|\,.・|::≡:|ヽ|≡≡≡≡≡:::/|≡::| _,,.........、
≡|/}:ヽ|:≡|::::|{≡≡≡≡≡:::{ .|≡::| ヽ_,, ヽ
≡:| |:::|l≡:|≡|:|≡≡≡≡≡:::|. .|≡::| /_> |
:::≡l|:::|'≡:|≡:|::|≡≡≡≡≡:::|. .|≡::| |7 llう.. |
≡≡≡≡/|≡ヽ≡≡≡≡≡::::|. ..|≡::|. z-..,〃、 ム__ ll´.. |
::≡≡≡::/ ヽ≡ヽ≡::|―、≡≡::l ..|≡::| / ミ 1´/ヽ==,...
::≡≡≡| \≡ヽ::| ヽ≡≡l .ljヽl | 刀、ミ _,,,..-`‐三=ー-
::≡≡≡| |ヽ/ー.、.. ヽ≡≡l. .|/ | ノ= ∠i /ヽ、≡≡≡≡≡
:|¬、≡≡ヽ. |≡ゞー=ッ |≡≡| __/ (ll ー゜\|ヽ. /≡::ヽ≡≡≡≡≡
:| ヽ≡≡ヽ |≡≡ヽミ. |≡≡| l|. ll7| ヽu=/l二ll二l'''ヽ /≡:::/≡≡≡≡≡
0090デフォルトの名無しさん
2010/01/21(木) 21:15:05互換性インパクト強すぎだもん
GCCやBCCだって入れない可能性は高い
0091デフォルトの名無しさん
2010/01/21(木) 21:42:58gccは4年前にC++では-Wwrite-stringsを規定にしたし、文字列リテラルを変更するような未定義コード書いてるやつは頭おかしいだろ
0092デフォルトの名無しさん
2010/01/21(木) 21:49:26単に参照するだけでも素朴にchar*使っちゃってるコードはごまんとあるだろ
それ全部修正だぜ?
0093デフォルトの名無しさん
2010/01/21(木) 22:00:500094デフォルトの名無しさん
2010/01/21(木) 22:04:29そんなクソコードは救えないしほっといていい
0095デフォルトの名無しさん
2010/01/21(木) 22:12:42そんなプログラマはやっぱり救えない
0096デフォルトの名無しさん
2010/01/21(木) 23:16:51互換性の意見もわかるけどさ、いつかは修正したいところじゃないか。
この様にC++0xというでっかい変更の際にはちょうど良い機会じゃないか?
0097デフォルトの名無しさん
2010/01/21(木) 23:26:37警告にはすんのかな
0098デフォルトの名無しさん
2010/01/22(金) 00:22:35int a,b;
if(regexp(s,"[HOGE]+",&a,&b)){
*b='\0';
return s+a;
}else{
return "(not found)";
}
0099デフォルトの名無しさん
2010/01/22(金) 00:23:28と書こうとして誤送信
0100デフォルトの名無しさん
2010/01/22(金) 18:47:340101デフォルトの名無しさん
2010/01/22(金) 18:54:150102デフォルトの名無しさん
2010/01/22(金) 19:11:53規格と実装の違いもわからないバカ?
0103デフォルトの名無しさん
2010/01/23(土) 20:42:050104デフォルトの名無しさん
2010/01/23(土) 21:55:220105デフォルトの名無しさん
2010/01/24(日) 11:56:31って言われているんだそうですが、
記法が別なのはともかく、できることも別でしょうか?
>>104
> ttp://cpplover.blogspot.com/2010/01/c0x_23.html
> ちなみに、C++03でも、SFINAEを変態的に使えばできたりする。
> ttp://cpplover.blogspot.com/2008/10/hasxxx.html
だそうです。
0106デフォルトの名無しさん
2010/01/24(日) 12:51:150107デフォルトの名無しさん
2010/01/24(日) 13:02:09ぐぐれ
0108デフォルトの名無しさん
2010/01/24(日) 14:34:510109デフォルトの名無しさん
2010/01/24(日) 14:51:50関数オブジェクトを使うなら分るはず。
0110デフォルトの名無しさん
2010/01/24(日) 15:05:53lambdaは絶対必要だよね
VC10とGCC 4.5が出たらTR1のbindもバッドノウハウ行きかもな
0111デフォルトの名無しさん
2010/01/24(日) 15:09:360112111
2010/01/24(日) 15:10:42これか
0113デフォルトの名無しさん
2010/01/24(日) 15:14:24ttp://0xcc.net/misc/bad-knowhow.html
C++ユーザーとしては耳が痛いっすorz
0114デフォルトの名無しさん
2010/01/24(日) 15:15:55もういっそ互換性なんて放り投げてきれいに作り直せばいいのに
0115デフォルトの名無しさん
2010/01/24(日) 15:18:57> もういっそ互換性なんて放り投げてきれいに作り直せばいいのに
それをやったらD言語みたいな悲劇になるんじゃないかな。
0116デフォルトの名無しさん
2010/01/24(日) 15:21:03「何でもできるけど簡単」が理想だけど、そんなことはできるわけがない。
「簡単だけどできないことがある」というよりも「使いこなすのは難しいけど何でもできる」
方がマシだな。まあ、複数のツールを使いこなすのとどっちが簡単かのトレードオフだろうけど。
0117デフォルトの名無しさん
2010/01/24(日) 15:24:05実行時速度とか、有名さとか、対応環境の広さとかも大事じゃね?
0118デフォルトの名無しさん
2010/01/24(日) 15:24:49そんな俺でさえ日々のちょっとした作業はPythonで
行っている。
・・・だってクソ便利なんだもん。
0119デフォルトの名無しさん
2010/01/26(火) 15:01:43今さらだがこれってconst以外に変換できるのがクソってことか?
0120デフォルトの名無しさん
2010/01/26(火) 19:32:030121デフォルトの名無しさん
2010/01/26(火) 20:34:240122デフォルトの名無しさん
2010/01/26(火) 22:21:11状況と結論はあっているが推論は間違っている
0123デフォルトの名無しさん
2010/01/26(火) 22:29:33普通に書くと、まずコンパイル通らなくて
試行錯誤してるうちに、つーか関数オブジェクト書いた方が早くね?
ってなるイメージだけど、0x版は良くなってるの?
0124デフォルトの名無しさん
2010/01/26(火) 22:58:21関数オブジェクトだとインラインに書けないからねぇ……
0125デフォルトの名無しさん
2010/01/27(水) 02:13:53もし、>>123の言う0x版がC++0xのラムダ式のことを言っているなら、答えはその点では確実に良くなっている。
少なくとも何度ものトライ&エラーはいらなくなるはず。
良くも悪くも関数オブジェクトをその場で書くという雰囲気。
ラムダ式をまだ見たことないなら、まずは見てみろ。
これラムダ式がメインの話ではないけど、ラムダ式いっぱい出てくる。
http://msdn.microsoft.com/ja-jp/magazine/dd434652.aspx
ほかはこれとか。
http://codezine.jp/article/detail/4035
http://msdn.microsoft.com/ja-jp/library/dd293599(VS.100).aspx
0126デフォルトの名無しさん
2010/01/27(水) 02:36:000127デフォルトの名無しさん
2010/01/27(水) 07:51:39未定義なら書き換えできたっていいじゃまいか
0128デフォルトの名無しさん
2010/01/27(水) 09:00:110129デフォルトの名無しさん
2010/01/27(水) 11:52:04もちろん、これからもできるさ
char * ptr = const_cast<char *>("hello") ;
ptr[0] = 'a' ;
0130デフォルトの名無しさん
2010/01/27(水) 14:03:180131デフォルトの名無しさん
2010/01/27(水) 14:29:140132デフォルトの名無しさん
2010/01/27(水) 14:51:110133デフォルトの名無しさん
2010/01/27(水) 18:30:50char str[] = "Hello,world!";
str[0] = 'a';
これが一応の正解(Cでは正解)
char str[13];
strcpy(str,"Hello,world!");
str[0] = 'a';
これがC++での真の正解
std::string str("Hello,world!");
str.at(0) = 'a';
0134デフォルトの名無しさん
2010/01/27(水) 18:34:32constでもなんでもないcharの配列変数に過ぎないんだから。
0135デフォルトの名無しさん
2010/01/27(水) 18:35:10一番上はいいに決まってるだろ。
配列を確保してコピーしているんだぞ。
Cからやり直せ。
0136デフォルトの名無しさん
2010/01/27(水) 18:40:15133の一番上が、"Hello world!"のコピーの配列を作るか
strが文字列リテラル"Hello world!"の先頭アドレスになるかは処理系定義
たまたま前者の実装が多いだけ
0xスレなんだから規格くらい当たれ
0137デフォルトの名無しさん
2010/01/27(水) 18:42:28http://www.amazon.co.jp/dp/4839919844
0138デフォルトの名無しさん
2010/01/27(水) 18:44:28>これがC++での真の正解
>std::string str("Hello,world!");
>str.at(0) = 'a';
これは?
std::string str = "Hello,world!";
str.c_str()[0] = 'a';
0139デフォルトの名無しさん
2010/01/27(水) 18:45:36えっ
だめなのは
char *str = "Hello,world!";
str[0] = 'a';
の方では?
0140デフォルトの名無しさん
2010/01/27(水) 18:50:480141デフォルトの名無しさん
2010/01/27(水) 18:54:51strにconstがかかってないんだから、
"Hello,world!"という中身で初期化される配列に決まってんだろ。
どこからstrが先頭アドレスになるなんて発想が出てくるんだ。
0142デフォルトの名無しさん
2010/01/27(水) 18:58:21では、配列だな。
つまり、strの型は、char [13] だ。
要素は、初期化式の文字列リテラルの対応するそれぞれの要素で初期化される。
C99の6.7.8 Initialization
を読んでも、同じだ。
C89も、文面はC99と同じだな。
>>136はどの「規格」を参照したのかぜひ教えてほしい。
>>138
それはダメ。
c_str()が返すのは、constへのポインタ。
0143デフォルトの名無しさん
2010/01/27(水) 19:11:43機械語レベルで、イメージファイル中の変数領域へのポインタになるのと
C++レベルでポインタになるのは全然違うけどな。
0144デフォルトの名無しさん
2010/01/27(水) 19:24:27昔char *p="...";とchar p[]="...";が全く同じになるコンパイラに当たって
その時調べたらそれも一応規格で認められた挙動だと分かった覚えがあるんだけど
もしかしてウソ掴まされてたのか
ずっと誤解してたごめんなさい
0145デフォルトの名無しさん
2010/01/27(水) 20:01:240146デフォルトの名無しさん
2010/01/27(水) 20:33:26文字配列なの?
文字配列へのポインタなの?
文字配列を数値化したポインタなの?
0147デフォルトの名無しさん
2010/01/27(水) 20:54:48たいていのコンパイラで、"Hello,world!"のビットパターンが表すアドレスのメモリ領域を指すポインタになる筈。
またはコンパイルエラーかも。
0148デフォルトの名無しさん
2010/01/27(水) 20:58:070149デフォルトの名無しさん
2010/01/27(水) 20:58:26文字配列の実体でOK。
>>147は>>136と同じ勘違いをしている。
実装上機械語レベルで"Hello,world!"というデータが格納された領域を差すことになるかもしれないが
書き換えてOKな領域なのでコンパイラがそうしているだけでC言語レベルでは関係無い話だ。
0150デフォルトの名無しさん
2010/01/27(水) 21:04:59流れくらい読み直せアホ
strはchar [13]型として初期化されて
普通に"Hello,world!"が格納される
0151デフォルトの名無しさん
2010/01/27(水) 21:10:12でも面倒くさいのは、その実装のせいで
char str[]で宣言するとextern char *strからリンクできないんだよな
char *strの宣言なら問題ないけど
0152デフォルトの名無しさん
2010/01/27(水) 21:12:27かたやポインタ、かたや配列の実体なんだからリンクできなくて当然だろ。
実装関係ねえ。
extern char str[];でいいだろ。
0153デフォルトの名無しさん
2010/01/27(水) 21:16:160154デフォルトの名無しさん
2010/01/27(水) 21:16:33ここは初心者スレじゃないぞ。
0155デフォルトの名無しさん
2010/01/27(水) 21:19:51C++0xだぞ?
遙か深遠なんだよ。
0156デフォルトの名無しさん
2010/01/27(水) 21:28:22まあ一連の流れはスレチではない罠w
0157デフォルトの名無しさん
2010/01/27(水) 21:32:010158デフォルトの名無しさん
2010/01/27(水) 21:34:28それをいったらプログラミングスレがあれば
他言語含めいらなくなるじゃねぇか。
細分化してある場合はそっちに行くのが
2chの常識。
0160デフォルトの名無しさん
2010/01/27(水) 21:55:210161デフォルトの名無しさん
2010/01/27(水) 22:12:44auto v = { 1, 2, 3 };
があっさり通ってなんか感動
0162デフォルトの名無しさん
2010/01/27(水) 22:46:17これって勝手にint [3]になるの?
structとかvectorとか同じ形でいけるのがあるときは優先順位どうなるんだろう
0163デフォルトの名無しさん
2010/01/27(水) 22:54:320164デフォルトの名無しさん
2010/01/27(水) 23:01:34多分 char *p1 = "string"; char *p2 = "string"; で p1 と p2 が同じアドレスになるかどうかが実装依存ってのと混同したんじゃない?
>162
N3000 7.1.6.4p6 によれば std::initializer_list<int> になる。
0165161
2010/01/27(水) 23:03:10うんにゃ
std::initializer_list<int> になる
std::vector とかにも initializer_list を受け取る
コンストラクタが追加されてる模様
0166161
2010/01/27(水) 23:08:04ちなみにヘッダ忘れると
#include <initializer_list> がねえよ!
とコンパイラ様が大変丁寧におっしゃってくれますた
0167デフォルトの名無しさん
2010/01/27(水) 23:12:57Z operator[](std::initializer_list<int>);
};
X x;
x[{1,2,3}] = 7; // OK: meaning x.operator[]({1,2,3})
こんなのも可能になるんだな。
0168デフォルトの名無しさん
2010/01/27(水) 23:15:06={}を自分で定義することとかできるのかな
オーバーヘッドとかどうなんだろう
0169デフォルトの名無しさん
2010/01/27(水) 23:43:56ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
>167 は operator[] だけど、もちろん initializer_list を受けるコンストラクタも定義できるよ。
0170デフォルトの名無しさん
2010/01/27(水) 23:50:59> オーバーヘッドとかどうなんだろう
お前は初期化子のオーバーヘッドの心配もしていたのか?
0171デフォルトの名無しさん
2010/01/27(水) 23:55:51何だろう、もの凄く嫌な感じがする
妥協の産物というか
0172デフォルトの名無しさん
2010/01/28(木) 00:10:11処理系依存だと思うけど参考までに。
initializer_list ヘッダの中をみてみると普通にクラスがある。
// The compiler can call a private constructor.
initializer_list(const _E* __a, size_t __l)
: __array(__a), __len(__l) { }
とかあるなw
ライブラリでもあり言語機能でもあり、というところ。
処理系があるといろいろ実験できて楽しいね。
auto x = {}; というのは initializer_list<T> の T が決まらなくてエラー。
{}.size() とか {1}.size() とかもエラーになるな…文法の都合?
auto x = {1}; してから x.size() はおk
0173デフォルトの名無しさん
2010/01/28(木) 02:07:370174デフォルトの名無しさん
2010/01/28(木) 10:20:33だめっぽい
error: invalid use of 'auto'
0175デフォルトの名無しさん
2010/01/28(木) 17:34:19template <class t_any>
void check(const t_any &val)
{
std::puts("this is const left value.");
}
template <class t_any>
void check(t_any &&val)
{
std::puts("this is right value.");
}
int main(void)
{
check(100);
int x = 200;
check(x);
return 0;
}
GCC4.4.1で両方右辺値になるんだけどなんで?
0176デフォルトの名無しさん
2010/01/28(木) 18:01:350177デフォルトの名無しさん
2010/01/28(木) 18:50:17言語機能がライブラリに依存するのは美しくないっ!
bad_allocとか
0178デフォルトの名無しさん
2010/01/28(木) 20:38:32おい、C++0xに美しさを要求したいのか!?
0179デフォルトの名無しさん
2010/01/28(木) 20:41:46>>175
ttp://cpplover.blogspot.com/2010/01/c0xno0x.html
ここを嫁
0180デフォルトの名無しさん
2010/01/28(木) 21:58:100181デフォルトの名無しさん
2010/01/28(木) 22:16:41てな意気込みでもあるの?
0182デフォルトの名無しさん
2010/01/28(木) 22:27:49みたいなのだらけ
0183デフォルトの名無しさん
2010/01/28(木) 23:05:550184デフォルトの名無しさん
2010/01/28(木) 23:10:42どの辺が?
0185デフォルトの名無しさん
2010/01/28(木) 23:22:41このパターンは駄目だって、
何となく世間が気づき始めてる今日この頃
0186デフォルトの名無しさん
2010/01/28(木) 23:31:09いい面とかねぇだろ
0187デフォルトの名無しさん
2010/01/28(木) 23:34:060188デフォルトの名無しさん
2010/01/28(木) 23:45:10本、頑張ってくれ
0190デフォルトの名無しさん
2010/01/29(金) 19:18:220191デフォルトの名無しさん
2010/01/29(金) 19:21:090192デフォルトの名無しさん
2010/01/29(金) 19:41:250193デフォルトの名無しさん
2010/01/29(金) 19:47:54規格を語りながら「私は使わないので役に立ちません」じゃ話にならない
0194デフォルトの名無しさん
2010/01/29(金) 20:14:39俺は使ったことないけどな!
0196デフォルトの名無しさん
2010/01/29(金) 20:35:580197デフォルトの名無しさん
2010/01/29(金) 21:24:24全然ダメ(=使い物にならん)ってだけのことだろ。
実際の処理系では使えるにしたって、規格側から言及できることは何にもない。
そんなのは立場の問題に過ぎない。
0198デフォルトの名無しさん
2010/01/29(金) 21:45:098 The least requirements on a conforming implementation are:
. Access to volatile objects are evaluated strictly according to the rules of the abstract machine.
この文言だけでvolatileの有用性は十分だろ
何が不満?
0199デフォルトの名無しさん
2010/01/29(金) 22:03:34ポータブルなコードが書けないことくらいか
0200デフォルトの名無しさん
2010/01/29(金) 22:03:37死ねばいいのに
0201デフォルトの名無しさん
2010/01/29(金) 22:06:080202デフォルトの名無しさん
2010/01/29(金) 22:07:340203デフォルトの名無しさん
2010/01/29(金) 23:09:540204デフォルトの名無しさん
2010/01/30(土) 00:00:110205デフォルトの名無しさん
2010/01/30(土) 00:35:350206デフォルトの名無しさん
2010/01/30(土) 00:37:270207デフォルトの名無しさん
2010/01/30(土) 04:13:300208デフォルトの名無しさん
2010/01/30(土) 04:22:21実際、それでJNode OSが開発されてるし
0209デフォルトの名無しさん
2010/01/30(土) 10:06:080210デフォルトの名無しさん
2010/01/31(日) 03:12:270211デフォルトの名無しさん
2010/01/31(日) 09:29:11可読性が落ちる気がするんで使ってるのはiteratorくらいだ
0212デフォルトの名無しさん
2010/01/31(日) 09:40:540213デフォルトの名無しさん
2010/01/31(日) 10:10:54新規キーワードの導入を嫌ったんじゃね?
0214デフォルトの名無しさん
2010/01/31(日) 11:24:44今のうちに多少新規予約語を追加して
欲しい気もするが。
0215デフォルトの名無しさん
2010/01/31(日) 12:01:470216デフォルトの名無しさん
2010/01/31(日) 12:03:49C言語でも予約語扱いでリザーブされてたから流用したということかも。
0217デフォルトの名無しさん
2010/01/31(日) 12:05:43絶対無理だけど
0218デフォルトの名無しさん
2010/01/31(日) 12:09:36> 予約語扱いでリザーブ
autoはリザーブでもなんでもなく、
普通に使われる位置にいただろ。
現実に使っている人は見たこと無いけど。
0219デフォルトの名無しさん
2010/01/31(日) 12:19:25予約語が選べたとしてもdecltypeみたいにいまいち直感的でない名前になると思う。
少なくとも他の言語に合わせてって理由で決まることはないんじゃないかな。
0220デフォルトの名無しさん
2010/01/31(日) 12:29:26キーワードの採択の基準について詳細は不明だけど、
例えば
decltypeについては期待されたキーワードはtypeofだったけど、
typeofが既にベンダー独自で実装されてたりして、
しかもちょっとずつ異なってたとかいうことで
混乱をきたさないように新たに命名されたとか聞いた。
もう一つ、nullptrに関してだけど
現実にあるソースファイルをgrepして殆ど使われていないのを確認してから
nullptrという名前で提案したとも聞いた。
0221デフォルトの名無しさん
2010/01/31(日) 12:36:56予約語にNSはちょっと無いか
0222デフォルトの名無しさん
2010/01/31(日) 13:12:16案外nullptrは居なかったのか。
よかったよかっった。
0223デフォルトの名無しさん
2010/01/31(日) 13:59:02しかしそのルールに従うと、予約語は
毎回誰もつけないような微妙な名前を選択することになるわけで
より大勢の人に使ってもらう名前なのに互換性の方を重視するのは
何か違う気がしないでもない
つかベンダ実装なら __typeof__ とかにしとけよ、って話だ
0224222
2010/01/31(日) 14:23:26> ベンダ実装なら __typeof__ とかにしとけよ、って話だ
それは確かに正論。勝手にやりやがって。。。
しかし今更文句言ってもどうしようもあるまい。
> より大勢の人に使ってもらう名前なのに互換性の方を重視するのは
> 何か違う気がしないでもない
その気持ちも分かるが、過去との互換性を切り捨てて
多くの語を予約語にしたら、D言語の悲劇みたいなことに
なりそうな気がしてならない。
0225デフォルトの名無しさん
2010/01/31(日) 14:58:05auto int hoge=3;
auto fuga=4;
両立できないことも無いかな。
0226デフォルトの名無しさん
2010/01/31(日) 16:09:18D言語の悲劇ってなんぞ?
0227デフォルトの名無しさん
2010/01/31(日) 17:56:520228デフォルトの名無しさん
2010/01/31(日) 20:53:15多くの語を予約語にしたらって言ってるよ
0229224
2010/01/31(日) 23:52:45ただ言いたいことは
「C++に似た構文で、C++との互換性が無いように理想を追求したら
現実的に使ってない言語になっちゃってる」
ってことです。
そんなつっこまないでゴメン
0230デフォルトの名無しさん
2010/01/31(日) 23:56:07○実際に使われない言語
まあこれが言語としての悲劇ではないかと。
C++0xがそうなったらもう目も当てられないでしょ。
0231デフォルトの名無しさん
2010/02/01(月) 00:18:49どこまで進めるかを試す
実験言語になってる感があるなあw
0232デフォルトの名無しさん
2010/02/01(月) 00:34:55難しいが誰かがやらねばならぬこと
GC導入とかほざいてるアホじゃなく
ken なみの天才を待つしかなかろう
0233デフォルトの名無しさん
2010/02/01(月) 01:17:38Dの悲劇はライブラリが中途半端だったことじゃないか
Cのが使えるからって楽天的になったのが仇になったかと
0234デフォルトの名無しさん
2010/02/01(月) 03:03:03Dも悪いとこまで見習う必要はないのに。
0235デフォルトの名無しさん
2010/02/01(月) 07:12:220236デフォルトの名無しさん
2010/02/01(月) 08:14:010237デフォルトの名無しさん
2010/02/01(月) 08:19:36これからはGoの時代が始まる。
0238デフォルトの名無しさん
2010/02/01(月) 09:06:260239デフォルトの名無しさん
2010/02/01(月) 10:02:260240デフォルトの名無しさん
2010/02/01(月) 10:29:36> ラムダ式って関数なの?オブジェクトなの?
前スレで関数オブジェクトだとレスがあったな
0241デフォルトの名無しさん
2010/02/01(月) 21:47:122016以降かよ
0242デフォルトの名無しさん
2010/02/03(水) 00:58:180243デフォルトの名無しさん
2010/02/03(水) 22:45:45コンパイルしたらコマンドラインに戻ってこなくなちゃったよ。
つぎの規格ではコンパイルが速くなるようにしてくれよな。
0244デフォルトの名無しさん
2010/02/03(水) 23:46:38どんだけ重いソースをコンパイルしたんだ。
バグじゃね?
それともその低スペックCPUでspiritばりばりの
ソースでもコンパイルしたのか?
0245デフォルトの名無しさん
2010/02/04(木) 00:24:15四半世紀前のアーティファクトじゃね?
あんま無茶いうなよ
0246デフォルトの名無しさん
2010/02/04(木) 00:39:59プレステのゲームをC++で書いて
問題なくgccでビルドできてた。
0247デフォルトの名無しさん
2010/02/04(木) 00:58:08Unrealあたりで世に知られるようになったんだよねえ
それより前にやってたのか?
0248デフォルトの名無しさん
2010/02/04(木) 01:10:30Formula OneってゲームがC++で書かれていて、
その影響で当時俺が勤めてた会社でもC++が一気に普及した。
C++でどこまで作れるのかといういい判断材料になった。
0249デフォルトの名無しさん
2010/02/04(木) 02:03:45どうせヘッダファイルが循環参照してるんだろ
0250デフォルトの名無しさん
2010/02/04(木) 08:42:31最適化最大にしたら1ファイルコンパイルに40分以上かかったことがあったw
0251デフォルトの名無しさん
2010/02/04(木) 13:01:500252デフォルトの名無しさん
2010/02/04(木) 21:14:26http://www.kijineko.co.jp/node/680
0253デフォルトの名無しさん
2010/02/05(金) 10:04:170254デフォルトの名無しさん
2010/02/05(金) 11:41:08そこで思考停止する秀才君しかいないのが日本の不幸。
0255デフォルトの名無しさん
2010/02/05(金) 11:46:51原文読んだ方が速いだろ。
0256デフォルトの名無しさん
2010/02/05(金) 12:44:19JISC に対してリアクション起こしたり、類例を集めてバグDBを作ったり、
という行動を起こすのが正義、ということ?
0257デフォルトの名無しさん
2010/02/05(金) 12:56:47お前もそう変わらねえよ
0258デフォルトの名無しさん
2010/02/05(金) 13:00:19関数、引数、遅延評価等が音素表記だったらと想像したら悲惨だろ?
輸入語過多な資料で進化阻害してる母国語を使ってる他国の惨状と比べれば日本や中華は頑張ってるよ
0259デフォルトの名無しさん
2010/02/05(金) 13:27:530260デフォルトの名無しさん
2010/02/05(金) 16:03:160261デフォルトの名無しさん
2010/02/05(金) 16:36:01これってよく見かけるけど、
元ネタは何?
0262デフォルトの名無しさん
2010/02/05(金) 16:47:07(たいてい単純でバカっぽいが確実な解決策を示して)
の元ネタのことを言ってるなら、
「一方ソ連は鉛筆を使った」というネタが元ネタ。
0263デフォルトの名無しさん
2010/02/05(金) 17:18:33ありがとうございます。
0264デフォルトの名無しさん
2010/02/05(金) 17:30:11仕組みはあるの?
0265デフォルトの名無しさん
2010/02/05(金) 19:13:20英語出来ないとかありえないから
0266デフォルトの名無しさん
2010/02/05(金) 19:17:44だって俺そうだし
0267デフォルトの名無しさん
2010/02/05(金) 19:29:120268デフォルトの名無しさん
2010/02/05(金) 19:31:19規格策定作業はたいてい外部の委員会に委任しているから、
そっちに言った方が早いのかもしれない。C++だとitscjか。
もっとも、そっちもそっちで窓口なかったりするが。
0269デフォルトの名無しさん
2010/02/05(金) 19:31:340270デフォルトの名無しさん
2010/02/05(金) 21:14:20規格書の英語は解りやすいべし
0271デフォルトの名無しさん
2010/02/05(金) 21:18:070272デフォルトの名無しさん
2010/02/05(金) 21:22:37十年前の書いている内容よりも難しい日本語に訳された本とか読んでいるの?
0273デフォルトの名無しさん
2010/02/05(金) 22:03:380274デフォルトの名無しさん
2010/02/05(金) 22:06:220275デフォルトの名無しさん
2010/02/05(金) 22:06:430276デフォルトの名無しさん
2010/02/05(金) 22:19:240277デフォルトの名無しさん
2010/02/05(金) 22:39:38そんなのあるんだ。
初めて知ったっす。
0278デフォルトの名無しさん
2010/02/05(金) 22:52:120279デフォルトの名無しさん
2010/02/05(金) 23:43:20スパコンやってるとこはみんな作ってるよ
0280デフォルトの名無しさん
2010/02/05(金) 23:55:070281デフォルトの名無しさん
2010/02/05(金) 23:59:270282デフォルトの名無しさん
2010/02/06(土) 00:10:120283デフォルトの名無しさん
2010/02/06(土) 00:17:450284デフォルトの名無しさん
2010/02/06(土) 00:18:350285デフォルトの名無しさん
2010/02/06(土) 00:48:55もっとも、こんなのが流行らなくて本当によかったと思う。
0286デフォルトの名無しさん
2010/02/06(土) 01:03:23ebC++を批判してたけど、当時の目的や制約について触れない一方的なものだった。
この本自体は、単刀直入で大好きだ。
ttp://books.google.co.jp/books?id=nPZaPJrw_L0C
こっちは、better Cとして、当たり前の工夫のなかに書いてあった。
どうでもいいけどこの本、第1版が、
Programming embedded systems in C and C++
で、第2版が
Programming embedded systems: with C and GNU development tools
なんだよな?
0287デフォルトの名無しさん
2010/02/06(土) 01:11:370288デフォルトの名無しさん
2010/02/06(土) 01:14:050289デフォルトの名無しさん
2010/02/06(土) 01:27:250290デフォルトの名無しさん
2010/02/06(土) 01:33:070291デフォルトの名無しさん
2010/02/06(土) 01:37:55http://www2.research.att.com/~bs/bs_faq.html#EC++
>What do you think of EC++?
>(略)
>To the best of my knowledge EC++ is dead (2004), and if it isn't it ought to be.
私の知る限り EC++ は 2004 年現在で死んでいる。さもなくば死ぬべきである。
0292デフォルトの名無しさん
2010/02/06(土) 02:07:50例外処理とか実行時型情報を落としたのはまだわかるが、名前空間とか型変換演算子とかを
削ったのはセンス悪すぎだろ。
0293デフォルトの名無しさん
2010/02/06(土) 02:24:130294デフォルトの名無しさん
2010/02/06(土) 03:51:030295デフォルトの名無しさん
2010/02/06(土) 04:33:350296デフォルトの名無しさん
2010/02/06(土) 05:40:22自社製 CPU のためにバックエンドを移植しているだけだろ?
だから C++0x の規格会議にも出席できない。するきもない。
パーザーをありがたくいただくだけだから。
その代わり、金出して買っているから規格書とのズレには病的に細かい。
ルールが不便ならルールを変えましょう。って世界と
使いづらくてもルールに従いましょう。って日本の文化の戦いなんだな。
世界からは相手にされていないけど。ドラフトの曖昧なところをチェックしてくれる
便利な奴らとしか見なされていないけどな
0297デフォルトの名無しさん
2010/02/06(土) 06:42:480298デフォルトの名無しさん
2010/02/06(土) 07:58:530299デフォルトの名無しさん
2010/02/06(土) 08:08:54コンパイラを大きな顔しててリリースし続けている
世界もありますよね。そんな世界です。
0300デフォルトの名無しさん
2010/02/06(土) 08:43:35このメンタリティこそC++ユーザー
0301デフォルトの名無しさん
2010/02/06(土) 08:44:080302デフォルトの名無しさん
2010/02/06(土) 09:17:45委員会メンバでもなきゃ↓からじゃね?
http://www.open-std.org/jtc1/sc22/wg21/
後は、
http://cpp-next.com/
http://herbsutter.wordpress.com/
comp.std.c++ (newsgroup)
でも情報とれるかもね。
0303デフォルトの名無しさん
2010/02/06(土) 09:20:310304デフォルトの名無しさん
2010/02/06(土) 09:31:040305デフォルトの名無しさん
2010/02/07(日) 00:15:440306デフォルトの名無しさん
2010/02/07(日) 00:19:520307デフォルトの名無しさん
2010/02/07(日) 06:49:430308デフォルトの名無しさん
2010/02/07(日) 16:20:030309デフォルトの名無しさん
2010/02/07(日) 17:58:52それは機械翻訳じゃないのか?
0310デフォルトの名無しさん
2010/02/07(日) 18:17:500311デフォルトの名無しさん
2010/02/07(日) 18:30:480312デフォルトの名無しさん
2010/02/07(日) 22:35:480313デフォルトの名無しさん
2010/02/07(日) 22:47:12伝説の宇宙天啓データベースってやつですか
0314デフォルトの名無しさん
2010/02/08(月) 00:55:400315デフォルトの名無しさん
2010/02/08(月) 11:20:520316デフォルトの名無しさん
2010/02/08(月) 21:29:57ttp://ja.wikipedia.org/wiki/%E3%81%AD%E3%81%98%E5%BC%8F
こんなんしらねがった
0317デフォルトの名無しさん
2010/02/08(月) 21:36:18次回から真面目にやりよーにの
0318デフォルトの名無しさん
2010/02/08(月) 21:39:250320デフォルトの名無しさん
2010/02/08(月) 21:41:400321デフォルトの名無しさん
2010/02/08(月) 21:45:120322デフォルトの名無しさん
2010/02/10(水) 20:53:12ってどうやって使えば良いんすか?
自分ではメタプログラミングが使いこなせない俺には
まああまり関係のない話ではあるが。。。
0323デフォルトの名無しさん
2010/02/10(水) 22:11:090324デフォルトの名無しさん
2010/02/10(水) 22:43:02とりあえずWikipediaを読んだ。
もはやtemplate<〜〜>って書いた部分と実装の中のどこの部分が
どう対応しているのかもよく話カラン買った。
0325デフォルトの名無しさん
2010/02/10(水) 22:48:150326デフォルトの名無しさん
2010/02/10(水) 23:00:06printf(const char* , int, double, float)
で呼び出されたとき再帰で
printf(const char* , int, Args... args) //Args = {double, float}
printf(const char* , double, Args... args) //Args = {float}
printf(const char* , float, Args... args) //Args = {}
printf(const char*)
になるんだよな?
0327デフォルトの名無しさん
2010/02/10(水) 23:11:530328デフォルトの名無しさん
2010/02/10(水) 23:21:240329デフォルトの名無しさん
2010/02/11(木) 00:15:08まあ一緒だけど
printf<char*,int,double,float>(s,i,d,f) //T:int Args:{double, float} value:s args:{d,f}
printf<char*,double,float>(s,d,f) //T:double Args:{float} value:d args:{f}
printf<char*,float>(s,f) //T:float Args:{} value:f args:{}
printf(s)
0330デフォルトの名無しさん
2010/02/11(木) 00:15:530331デフォルトの名無しさん
2010/02/11(木) 13:13:29交換回数は最小だと思うけど関数呼び出しやらなんやらで遅そう
(Args&...にするのにしばらく気付かずハマった)
template <typename T> T& rolswapimpl(T& a,T& b){a=b;return b;}
template <typename T,typename... Args>
T& rolswapimpl(T& a,T& b,Args&... args){
a=b;
return rolswapimpl(b,args...);
}
template <typename T,typename...Args>
void rolswap(T& a,T& b,Args&...args){
T tmp=a;
a=b;
T& last=rolswapimpl(b,args...);
last=tmp;
}
0332デフォルトの名無しさん
2010/02/11(木) 13:34:090333デフォルトの名無しさん
2010/02/11(木) 13:57:380334デフォルトの名無しさん
2010/02/11(木) 18:35:09ポリシーを提供する基底クラスを可変個設定できるとか
考えただけでも吐き気がしますね
0335デフォルトの名無しさん
2010/02/12(金) 01:31:14自作マシンを組み立ててlinuxを入れてC++0xを楽しむんだ・・・
mingwじゃだめなのだ。configureの野郎が反抗的だ。
winでgcc4.4.3なんて、それこそ無駄な努力ってやつだ。
winはおとなしく古いgccで遊んでいればいい。
windowsは即ち禅なり。
autoconfigは刹土の理なり。
automakeは度脱の一切なり。
如来智慧法界ニ遍ス。
嗚呼俺は融けてゆく。
0336デフォルトの名無しさん
2010/02/12(金) 01:48:430337デフォルトの名無しさん
2010/02/12(金) 23:16:310338デフォルトの名無しさん
2010/02/13(土) 01:37:550339デフォルトの名無しさん
2010/02/14(日) 11:45:10>仮称は混乱を避けるため C++0x が維持されるが、その代わり 0x の x は16進数を表すこととなった。
とか、しれっと書いてあるからおいおいと思ったら禿のサイトに本当にそう書いてあってワロタ。
0340デフォルトの名無しさん
2010/02/14(日) 11:50:11おいおいおいおいおいおいおいおい
いい加減にせぇwww
0341デフォルトの名無しさん
2010/02/14(日) 11:59:160342デフォルトの名無しさん
2010/02/14(日) 13:46:07関数にハッシュ仕込んで類似コードの流用圧縮くらいそろそろ実現してもいい頃だと思うんだ
0343デフォルトの名無しさん
2010/02/14(日) 13:53:480344デフォルトの名無しさん
2010/02/14(日) 14:07:540345デフォルトの名無しさん
2010/02/14(日) 16:44:08共有しようと言うんでしょ。
違う関数は別のアドレスでないといけないんではなかったか?
0346デフォルトの名無しさん
2010/02/14(日) 17:03:430x だから 2000年の最初から確信犯だったとしか
0347デフォルトの名無しさん
2010/02/14(日) 19:28:28禿って呼んでる人がいるのも知ってるだろうね。
0348デフォルトの名無しさん
2010/02/14(日) 19:35:22わざわざご注進する馬鹿がいるとは思えん。
0349デフォルトの名無しさん
2010/02/14(日) 19:36:340350デフォルトの名無しさん
2010/02/14(日) 22:16:410351デフォルトの名無しさん
2010/02/14(日) 22:30:100352デフォルトの名無しさん
2010/02/15(月) 12:53:42C++0x 09
C++0x 0A
みたいにいくのか?
0353デフォルトの名無しさん
2010/02/15(月) 22:22:58ここまでで parse error だろ
0354デフォルトの名無しさん
2010/02/15(月) 23:26:220355デフォルトの名無しさん
2010/02/16(火) 22:28:050356デフォルトの名無しさん
2010/02/17(水) 08:55:28C++09だろjk
0357デフォルトの名無しさん
2010/02/18(木) 10:55:58News 2010-02-18: The 2010-02 post-Santa-Cruz mailing is available
News 2010-02-18: The C++ Standard Core Language Issues List (Revision 68) is available
News 2010-02-18: The C++ Standard Library Issues List (Revision 69) is available
ドラフトは N3035
0358デフォルトの名無しさん
2010/02/18(木) 11:20:37しかし何でサンタクルーズでやったんだろう
0359デフォルトの名無しさん
2010/02/18(木) 18:48:190360デフォルトの名無しさん
2010/02/18(木) 22:03:320361デフォルトの名無しさん
2010/02/19(金) 00:42:50みたいな感じで0x対応だよって教えてくれるマクロは無いの?
0362デフォルトの名無しさん
2010/02/19(金) 00:49:110363デフォルトの名無しさん
2010/02/19(金) 02:48:530364デフォルトの名無しさん
2010/02/19(金) 18:39:41FDISへ…という最短コースでも刊行は来年の春頃か。正念場だな。
0365デフォルトの名無しさん
2010/02/19(金) 19:13:070366デフォルトの名無しさん
2010/02/19(金) 21:04:020367デフォルトの名無しさん
2010/02/19(金) 22:22:21近くに金髪の外人姉ちゃんが座って居て
かわいいと思ってたんだけど
2時間くらい大声でしゃべりっ放しでうざかった
ただのおしゃべりおばさんだったのかも試練
0368デフォルトの名無しさん
2010/02/19(金) 23:26:400369デフォルトの名無しさん
2010/02/19(金) 23:27:510370デフォルトの名無しさん
2010/02/20(土) 00:28:160371デフォルトの名無しさん
2010/02/20(土) 00:40:280372デフォルトの名無しさん
2010/02/20(土) 00:42:230373デフォルトの名無しさん
2010/02/20(土) 11:43:53戻り値最適化とか、あきらかな場合は現行のコンパイラだってちゃんと
(コピーコンストラクタの省略とか)やってるじゃん。
0374デフォルトの名無しさん
2010/02/20(土) 12:44:23古傷をえぐられた!
0376デフォルトの名無しさん
2010/02/20(土) 13:27:52便利そうではあるけど
0377デフォルトの名無しさん
2010/02/20(土) 14:11:53N2904
0378デフォルトの名無しさん
2010/02/21(日) 00:01:31ttp://sub.spc.org/san/docs/BS6008.pdf
0379デフォルトの名無しさん
2010/02/21(日) 02:28:250380デフォルトの名無しさん
2010/02/21(日) 02:36:580381デフォルトの名無しさん
2010/02/22(月) 07:23:25参照じゃない型がほしい場合はどう書けばいいんでしょうか?
0382デフォルトの名無しさん
2010/02/22(月) 07:25:590383デフォルトの名無しさん
2010/02/22(月) 07:27:56decltypeはRTTIじゃないぞ。
0384デフォルトの名無しさん
2010/02/22(月) 13:32:090385デフォルトの名無しさん
2010/02/22(月) 22:31:22WTLとかATL使っていると
thisの型がむちゃくちゃ複雑になったりするんです
0386デフォルトの名無しさん
2010/02/23(火) 00:00:580387デフォルトの名無しさん
2010/02/23(火) 05:58:10unique_ptrの機能が劣化するけど。
0388デフォルトの名無しさん
2010/02/23(火) 06:13:30よくわからんな。
いくらテンプレートや多重継承を使おうが、
thisの型は、クラス名だけで参照できるだろ。
それと、コンテキストと用途によっては、std::remove_cvも必要になるかも。
0389デフォルトの名無しさん
2010/02/23(火) 06:57:37しかしVC10ではdecltype(*this)はエラーになる罠
0390デフォルトの名無しさん
2010/02/23(火) 10:39:56しかも普通のエラーじゃない。
これ、検索したけど、バグ報告されてないね。
たとえば、こうするしかないのかね。
std::remove_pointer< decltype(this) >::type
0391デフォルトの名無しさん
2010/02/23(火) 11:21:40http://connect.microsoft.com/VisualStudioJapan/feedback/details/533849/decltype-this
0392デフォルトの名無しさん
2010/02/23(火) 11:36:040393デフォルトの名無しさん
2010/02/23(火) 19:06:10VC blogのコメント欄に書かれていたが
製品版でも直らないらしい
0394デフォルトの名無しさん
2010/02/23(火) 19:17:200395デフォルトの名無しさん
2010/02/23(火) 21:20:34公式の発言ではありません、程度には受け取っておけよ
0396デフォルトの名無しさん
2010/02/23(火) 21:46:510397デフォルトの名無しさん
2010/02/24(水) 23:16:200398デフォルトの名無しさん
2010/02/25(木) 00:02:53一般的なpImplイディオムは、コンストラクタでimpクラスをnewしていますが、
いま設計しているpImplを利用したクラスは、何度もインスタンス化されるので、newしたくありません。
また、Factory関数を作って、利用者側にわざわざ呼ばせたくありません。
つまり、クラスの利用者から、実装クラスを隠蔽し、かつインスタンス化時に何度もnewしないような方法はありますでしょうか?
(妥協して、メンバ変数だけインターフェース部に持ってきて、実装クラスをSingletonにする、など考えてみましたが、案の定イマイチでした)
0399デフォルトの名無しさん
2010/02/25(木) 00:08:430400398
2010/02/25(木) 00:51:08この保持するクラスをインスタンス化すると、単純に100回程度newが走ってしまうので、どうしようかなと。
保持するクラスのほうは、わけあって変更できません。
0401デフォルトの名無しさん
2010/02/25(木) 01:02:060402デフォルトの名無しさん
2010/02/25(木) 01:03:52実際使われる時にnewすれば
0403デフォルトの名無しさん
2010/02/25(木) 01:39:1410000のオーダーなら問題になるかもしれないが
0404デフォルトの名無しさん
2010/02/25(木) 01:41:590405デフォルトの名無しさん
2010/02/25(木) 01:50:17まあ、newが問題になることなんて絶対に有り得ないから、newで書いてみることは無駄にならないよ。安心していい。
0406デフォルトの名無しさん
2010/02/25(木) 01:51:080407デフォルトの名無しさん
2010/02/25(木) 02:01:140408デフォルトの名無しさん
2010/02/25(木) 02:56:250409デフォルトの名無しさん
2010/02/25(木) 11:29:320410デフォルトの名無しさん
2010/02/25(木) 13:10:30自作は遅いし不安定。俺だけかも知れんが
0411デフォルトの名無しさん
2010/02/25(木) 13:14:53new/deleteより遅いの作って満足してる奴がたくさんいそうな気がする。
0412デフォルトの名無しさん
2010/02/25(木) 16:48:01立ち返って考えるべし。
あと、後にメンテナンスするメンバーや後輩のことを
考えるべし。
0413デフォルトの名無しさん
2010/02/25(木) 17:02:05実装側クラスのコンストラクタが複数回 new するなら、その回数に比例してどうでもよくなる。
それでもデフォルトアロケータの動作回数を抑制したいなら、悪質な手法としては
struct implementationOfAClass;
struct AClass { AClass(); private: char implbuf[ 100/*MAGIC NUMBER!!*/ ]; void doSomething(); };
AClass::AClass() { new (implbuf) implementationOfAClass(); assert(sizeof(implbuf) == sizeof(implementationOfAClass)); }
void AClass::doSomething() { reinterpret_cast<implementationOfAClass*>(implbuf)->doSomething(); }
のように new の配置構文を使うようなのもある。
アセンブラでゲーム作ってた頃は結構あったらしい。pimpl としてではなく、多態の表現として。
C の頃はたまに見かけた。
関数ポインタをいくつかと適当なサイズの char 配列を持った構造体をを作って、それを配列にしてプールアロケータ的に使ってた。
さすがに C++ では見たこと無い。
最大個数が分かってるなら、プールアロケータ使うのもありかな。
0414デフォルトの名無しさん
2010/02/25(木) 19:58:13そのnewが総実行時間の何%を占めるか見積もるか計測してごらん。誤差のレベルだよ。
0415デフォルトの名無しさん
2010/02/25(木) 20:09:140416デフォルトの名無しさん
2010/02/25(木) 20:22:57tcmallocとかいう名前だったような
0417デフォルトの名無しさん
2010/02/25(木) 21:31:32プールを使うと劇速だね。
0418デフォルトの名無しさん
2010/02/25(木) 22:18:480419デフォルトの名無しさん
2010/02/25(木) 23:20:020420デフォルトの名無しさん
2010/02/25(木) 23:50:2364bitで使えなかった記憶が。
今は使えるのかな。
マルチスレッドで高速なアロケータ他にあったら教えてくれい
0421デフォルトの名無しさん
2010/02/25(木) 23:50:38> コンシューマゲームでnewを自前で書かないなどありえない。
ありえるだろ別に。
0422デフォルトの名無しさん
2010/02/25(木) 23:52:340423デフォルトの名無しさん
2010/02/25(木) 23:58:260424デフォルトの名無しさん
2010/02/26(金) 08:54:33まあ同意だが、その場合は速さ目的というより
割り当て場所や容量を細かく制御するためのカスタムアロケータ
が多いな
デバッグ時はメモリがたくさん使えるからこっちから割り当てとか、
あんたんとこのモジュールはこのサイズ内でやりくりしてちょとか
0425デフォルトの名無しさん
2010/02/26(金) 09:00:020426デフォルトの名無しさん
2010/02/26(金) 10:59:18それもあるけどデバイスの仕様からやらざるをえない場合もあるね
0427デフォルトの名無しさん
2010/02/26(金) 11:04:070428デフォルトの名無しさん
2010/02/27(土) 01:28:51つか、始めて業務用の開発で使ったが、おまえら closure なしでよくやってるな
感心するわ!!!
で、いつになったら標準になるんだ >> lambda/closure
0429デフォルトの名無しさん
2010/02/27(土) 01:33:31お前のオナニーに興味ない。
0430デフォルトの名無しさん
2010/02/27(土) 01:34:11クロージャはファンクタで代用しろ
0431デフォルトの名無しさん
2010/02/27(土) 01:39:18だからいつになったら決まるんだよ > 次期標準
> クロージャはファンクタで代用しろ
結局そうなるんだけどねorz
0432デフォルトの名無しさん
2010/02/27(土) 01:44:280433デフォルトの名無しさん
2010/02/27(土) 02:41:380434デフォルトの名無しさん
2010/02/27(土) 02:44:200435デフォルトの名無しさん
2010/02/27(土) 03:15:180436デフォルトの名無しさん
2010/02/27(土) 04:39:460437デフォルトの名無しさん
2010/02/27(土) 05:27:01納得した
0438デフォルトの名無しさん
2010/02/27(土) 05:51:280439デフォルトの名無しさん
2010/02/28(日) 00:37:230440デフォルトの名無しさん
2010/02/28(日) 00:38:29「4.1.2までしか使えない」
が、正しい
0441デフォルトの名無しさん
2010/02/28(日) 01:20:020442デフォルトの名無しさん
2010/02/28(日) 13:43:23即座にプログラマを辞めるくらいの
気迫が必要では?
0443デフォルトの名無しさん
2010/02/28(日) 14:05:160444デフォルトの名無しさん
2010/03/03(水) 11:36:31↓
ラムダ式って便利じゃね?←今ここ
0445デフォルトの名無しさん
2010/03/03(水) 11:39:13ラムダ式んぎもっぢいいいいいいいいい←そのうちここ
0446デフォルトの名無しさん
2010/03/03(水) 11:51:39ただλ式をするだけの主人のいないペットの様でした。
0447デフォルトの名無しさん
2010/03/03(水) 11:54:080448デフォルトの名無しさん
2010/03/03(水) 11:59:290449デフォルトの名無しさん
2010/03/03(水) 13:42:57↓
ラムダ式使いまくり
↓
いつも通りリファクタリング
↓
あれ、ラムダ式いらなくね?
↓
コードからラムダ式全部消える←いまここ
0450デフォルトの名無しさん
2010/03/03(水) 15:14:14少なくともGUIライブラリ(Qtとか)はラムダ使いまくりで安定しそうな
0451デフォルトの名無しさん
2010/03/03(水) 15:34:070452デフォルトの名無しさん
2010/03/03(水) 16:13:180453デフォルトの名無しさん
2010/03/03(水) 18:27:26ちゃんと本物の関数を使いなさい
0454デフォルトの名無しさん
2010/03/03(水) 19:27:39ラムダ式って自分自身を呼んだりできんの?
再起ぽく
名前無いからむりなのかな
0455デフォルトの名無しさん
2010/03/03(水) 19:33:240456デフォルトの名無しさん
2010/03/03(水) 19:43:26lambdaは、それぞれユニークな型をもつので、仮にdecltypeに使えたとしても、
変数として束縛するのには使えない。
std::functionしか選択肢がない。
Unified Function Syntaxの行方が気になる。
0457デフォルトの名無しさん
2010/03/03(水) 19:57:09できるよ。不動点だとかYコンビネータだとかでググってみ
ちょっとややこしいけど
0458デフォルトの名無しさん
2010/03/03(水) 21:53:50System F だとできた気がしたけど、依存型があればいいんだけ?
0459デフォルトの名無しさん
2010/03/04(木) 08:15:41正しくない使い方を乱用していただけかと
0460デフォルトの名無しさん
2010/03/04(木) 11:30:170461デフォルトの名無しさん
2010/03/04(木) 11:56:020462デフォルトの名無しさん
2010/03/04(木) 11:57:040463デフォルトの名無しさん
2010/03/04(木) 13:13:14オブジェクトの生存期間の管理はどうするんですか?
>456
N3043
0464デフォルトの名無しさん
2010/03/04(木) 13:23:47よく嫁アホ。
キャプチャリストが空な場合、普通の関数ポインタへの変換を提供しようではないかと提案しているのだ。
お前どうやってキャプチャせずにその変数を使うのだ。
まかさ、グローバル変数を使えというのではあるまいな?
0465デフォルトの名無しさん
2010/03/04(木) 20:45:20俺の考えは正しかった
0466デフォルトの名無しさん
2010/03/04(木) 21:30:22関数ポインタが返るlambdaってやだなあ〜
0467デフォルトの名無しさん
2010/03/04(木) 21:48:220468デフォルトの名無しさん
2010/03/04(木) 21:51:010469デフォルトの名無しさん
2010/03/04(木) 21:56:53あくまで関数へのポインタに変換可能というだけで、
通常は他のラムダ同様に関数オブジェクトとして扱われるのでは?
0470デフォルトの名無しさん
2010/03/04(木) 21:58:210471デフォルトの名無しさん
2010/03/04(木) 22:00:28そろそろCライブラリは忘れていいんじゃないか。
0472デフォルトの名無しさん
2010/03/04(木) 22:03:38そこに簡単にアクセスできるのがC++の最大の長所だ
忘れるなんてあり得ない
0473デフォルトの名無しさん
2010/03/04(木) 22:06:400474デフォルトの名無しさん
2010/03/04(木) 22:08:450475デフォルトの名無しさん
2010/03/04(木) 22:12:35std::sortなんかよりきっと長生きする
0476デフォルトの名無しさん
2010/03/04(木) 22:13:540477デフォルトの名無しさん
2010/03/04(木) 22:26:530478デフォルトの名無しさん
2010/03/04(木) 22:28:450479デフォルトの名無しさん
2010/03/04(木) 23:55:14「そう」とか「感じ」とか、ふわっふわした言葉でいわれてもな。
0480デフォルトの名無しさん
2010/03/04(木) 23:58:150481デフォルトの名無しさん
2010/03/05(金) 00:02:120482デフォルトの名無しさん
2010/03/05(金) 00:06:22全時代的C言語から分離したC++におまけ程度で付いてきた*.h(<c*>)標準ライブラリなど由緒正しいもクソもない。
0483デフォルトの名無しさん
2010/03/05(金) 00:21:47qsortなんて遅い関数使ってんの?
0484デフォルトの名無しさん
2010/03/05(金) 00:22:360485デフォルトの名無しさん
2010/03/05(金) 00:28:35ただlambda式で気軽にファンクタも作れるしstd::qsortを使う理由もない。
0486デフォルトの名無しさん
2010/03/05(金) 01:38:16何があかんのですか
0487デフォルトの名無しさん
2010/03/05(金) 01:48:060488デフォルトの名無しさん
2010/03/05(金) 01:48:480489デフォルトの名無しさん
2010/03/05(金) 02:56:300490デフォルトの名無しさん
2010/03/05(金) 15:38:02コピーコンストラクタがconst referenceなのに対して右辺値参照でただのreferenceという区別を付けるだけじゃ飽き足らなかったの?
0491デフォルトの名無しさん
2010/03/05(金) 17:01:250492デフォルトの名無しさん
2010/03/05(金) 17:27:420493デフォルトの名無しさん
2010/03/06(土) 11:33:24コピーしたいのに破壊的コピーされたらかなわん
0494デフォルトの名無しさん
2010/03/06(土) 12:12:560495デフォルトの名無しさん
2010/03/06(土) 12:25:46X &&func(X &x) {return x;}
ってやると起こられるんだけどなんで?
std::moveってどうなってんだろ
0496デフォルトの名無しさん
2010/03/06(土) 13:09:55ソース見たらstatic_cast<X &&>してたでござる
0497デフォルトの名無しさん
2010/03/06(土) 16:24:45rvalue reference自体は、lvalue。
static castでrvalue referenceにキャストすると、rvalueになる。
0498デフォルトの名無しさん
2010/03/06(土) 16:36:22>>493が言いたいのはそういうことじゃねぇだろ。
0499デフォルトの名無しさん
2010/03/06(土) 16:42:35それって、こうしたらやばくね?
X& a=func(X());
a.f1();
0500デフォルトの名無しさん
2010/03/06(土) 17:57:19それ、aの初期化の時点でコンパイルエラー。
rvalue referenceでlvalue referenceであるaの初期化はできない。
もちろん、funcの戻り値の型をlvalue referenceにしてしまえばコンパイル可能だけど、
当然お前の言うようにそれはやばい。
0501499
2010/03/06(土) 19:45:16なるほど。
暗黙キャスト変換を作ろうとして悩んでたんだけど。
template<class T> inline T&& anmoku_cast(T&& a){return a;}
template<class T> inline T& anmoku_cast(T& a){return a;}
と2関数でオーバーロードすれば安全なのが作れるのかな?VC10待ちなのね。
0502デフォルトの名無しさん
2010/03/06(土) 19:58:06std::forward
0503デフォルトの名無しさん
2010/03/07(日) 12:40:330504デフォルトの名無しさん
2010/03/07(日) 13:02:020505デフォルトの名無しさん
2010/03/07(日) 13:15:120506デフォルトの名無しさん
2010/03/07(日) 13:16:450507デフォルトの名無しさん
2010/03/07(日) 15:00:36std::forwardググって見た。テンプレートだと、&&で&&と&の両方掴めるって事なのね。
forwadの使い方研究してみる。rvalueは深いですな。
とりあえずanmoku_castはstd::forwardで希望通りの動作ができることは理解した。
0508デフォルトの名無しさん
2010/03/07(日) 16:03:33__thiscallであったり返値がある関数ポインタでスレッドを起動することはできないのでしょうか
0509デフォルトの名無しさん
2010/03/07(日) 16:09:05Windowsの板か、VC++のスレに移動してください。
このスレは新しいC++規格を議論するスレです。
0510デフォルトの名無しさん
2010/03/07(日) 16:12:33くわしい資料てどこを見ればいいですかね
0511デフォルトの名無しさん
2010/03/07(日) 16:14:320512デフォルトの名無しさん
2010/03/07(日) 16:30:06このスレで聞くって事はstd::threadbゥな。
なb轣Astd::bindを使えば何とかなるかも。
boostでしか使ったこと無いけど
thread t(bind(&func));
でどうにかならないかな。
0513デフォルトの名無しさん
2010/03/07(日) 16:41:34>>512
そうです0xで標準化されたthreadについてです
チュートリアル的なサイトを見て回ったのですが
返値がvoidでメンバ関数でない,であってもstaticなケースばかりなので
出来ないのかと思ったのですが
やはりbindでラッパしないといけないのですね
ありがとうございます
0514デフォルトの名無しさん
2010/03/07(日) 16:46:50関数オブジェクト以外のものを渡すときはbindを使うのが前提だからbindを使うのはなんら問題ない。
0515デフォルトの名無しさん
2010/03/07(日) 16:46:570516デフォルトの名無しさん
2010/03/07(日) 17:16:53threadのコンストラクタや、bindのコンストラクタのとる関数オブジェクトは、
20.8.2 Requirements [func.require]に規定されているように呼び出される。
つまり、あるクラスTのメンバ関数へのポインターならば、一つ目の引数が、Tのオブジェクトとして呼び出される。
それ以外の場合、
INVOKE(f, t1, t2, ..., tN)は、f(t1, t2, ..., tN)となるので、
この構文で呼び出せる関数は、すべて呼び出せることになる。
threadの関数オブジェクトの戻り値は無視される。
0517デフォルトの名無しさん
2010/03/07(日) 17:31:130518デフォルトの名無しさん
2010/03/07(日) 18:31:340519デフォルトの名無しさん
2010/03/07(日) 18:40:260520デフォルトの名無しさん
2010/03/07(日) 18:49:070521デフォルトの名無しさん
2010/03/07(日) 19:25:15眠りについているが、星辰が然るべき位置に戻りルルイエが再び浮上する
ときconceptは甦り、地上の全てを支配すると信じられている。
0522デフォルトの名無しさん
2010/03/07(日) 19:26:05C++2xって名前にするべき
0523デフォルトの名無しさん
2010/03/07(日) 21:08:40http://www.comlab.ox.ac.uk/projects/gip/school.html
Jaakko Jrviも去年、conceptの論文書いてた。
Douglas GregorはAppleで何やってるか分からない。
0524デフォルトの名無しさん
2010/03/07(日) 21:59:450525デフォルトの名無しさん
2010/03/08(月) 09:21:08○コンセプトさん
ついに一度も登校することなくお星様になってしまった。
この事件によって学園に激震が走り、入学式が一年延期になる事態に。
彼女の再起はあるのだろうか。
0526デフォルトの名無しさん
2010/03/08(月) 18:03:35C++学園の人々
○コンセプトさん
ついに一度も登校することなくお星様になってしまった。
この事件によって学園に激震が走り、入学式が十年延期になる事態に。
彼女の再起はあるのだろうか。
0527デフォルトの名無しさん
2010/03/08(月) 20:05:50元ネタあるのかと思って検索したらこのスレと
どっかの糞ブログしかひっかからないので安心した
0528デフォルトの名無しさん
2010/03/08(月) 20:39:47・こんせぷと!
テンプレートひきすうをせいげんするぞ!
constのつけわすれでエラーメッセージが1000ぎょうもでなくなる!
でもむずかしすぎてだれもじっそうできてないよ!
http://pc12.2ch.net/test/read.cgi/tech/1245092251/5
○コンセプトさん
学園のアイドルだが、入学してから一度も登校していない。退学の噂も。
0529デフォルトの名無しさん
2010/03/08(月) 21:58:510530デフォルトの名無しさん
2010/03/09(火) 02:41:17この一文でまず弱いものいじめに加担するDQN思考があるのではないかと疑ってしまった。
コンセプト自体は静的多相性のインターフェースみたいなものなんでそういうのを探してみてはどうだろうか。
0531デフォルトの名無しさん
2010/03/09(火) 06:55:000532デフォルトの名無しさん
2010/03/09(火) 07:57:15haskell の type class?
0533デフォルトの名無しさん
2010/03/09(火) 19:34:050534デフォルトの名無しさん
2010/03/09(火) 22:27:33http://cpplover.blogspot.com/2010/03/blog-post_09.html
なんなんだよ、この人は。
0535デフォルトの名無しさん
2010/03/09(火) 23:09:490536デフォルトの名無しさん
2010/03/09(火) 23:16:18> 「バットが大好きでバットに詳しいが打たない野球選手」
> に金を払うヤツはやっぱりそうそう居ないんですよ。
> バットは使って何かを生み出すことで初めて価値があるのです。
> (例外的な人は、知識を生かしてバットを開発して「生み出せ」る人も居ますが)
> このバットをC++に置き換えても、同じ事が言えてしまうのではないかと。
を使って働くように説得を試みたんだけど、
無理なんだろうか。。。
俺だってカネなくても好きなことだけやっていけるなら
カネなんていらないしそうしたいよ。
C++の知識がすさまじいことだけは痛感するが。
0537デフォルトの名無しさん
2010/03/09(火) 23:45:40その書こうとしてる本が誰の仕事を減らしてくれるのかってあたりをもっとアピールした方が
いいんじゃないかな。俺が満足してねーからって理由なら持ち出しでやるしかないっしょ
なにか新しいアイデアでも持っているならねぇ
あと、規格会議に夢を見すぎ。まさか五日間、C++ の規格の論戦でもすると思っているのだろうか。
0539デフォルトの名無しさん
2010/03/10(水) 00:32:31ドラフトはドラフトでもCommittee Draftっちゅーたらもう終盤だよ。
0540デフォルトの名無しさん
2010/03/10(水) 00:37:37無いものねだりをしてもしょうがないだろ。
ためしに英語で企画書書いて、どこか良いところに送ってみたら?
0542デフォルトの名無しさん
2010/03/10(水) 01:45:25悪名高い一部上場企業とか大学とか外資系とか公務員とか色々・・・
まあ当然あの人たちは英語で話すわけだが
0543デフォルトの名無しさん
2010/03/10(水) 03:03:32> The professor is wrong in that you can't teach what you don't practice ...
0544デフォルトの名無しさん
2010/03/10(水) 05:08:47悪名高い一部上場企業と外資系で、字句解析を自前でやってるところは無くなった。
大学と公務員のは子供の遊び程度。それも gcc の字句解析をいじくる程度。
さらに STL/boost 程度の規模のライブラリを自前で作れる組織が無い。
コードこねくり回さない人が増えたので(現場が必要とする)仕様の提案ができない。
切り札は、「仕様です」の一言でなぜか納得する日本人。
お上が決めたことには逆らわない。ってのが DNA レベルで組み込まれているんかね?
0545デフォルトの名無しさん
2010/03/10(水) 07:50:19働きたくないことの言い訳じゃん
0546デフォルトの名無しさん
2010/03/10(水) 09:06:480547デフォルトの名無しさん
2010/03/10(水) 10:23:06誰かうまい棒の山と中古パソコン送ってやれ。
0548デフォルトの名無しさん
2010/03/10(水) 12:43:590549デフォルトの名無しさん
2010/03/10(水) 18:45:02自分だけが寄付しなければいいという問題じゃない
0550デフォルトの名無しさん
2010/03/10(水) 19:10:020551デフォルトの名無しさん
2010/03/10(水) 19:59:180552デフォルトの名無しさん
2010/03/10(水) 20:38:270553デフォルトの名無しさん
2010/03/10(水) 20:56:56いや集まらないだろjk
目標寄付額の目安:いくらあれば何ができるか
数十万円
生活費として、急場をしのぐことができる。このままでは生活できないという問題を、しばらく先送りにできる。
百万円
当面の生活費にあてることができ、生活が安定する。
+数十万円
新しいハードウェアを購入できる。
+数十万?円
C++標準化委員会の国際会議に、一回出席できる。
だぞ?
0554デフォルトの名無しさん
2010/03/10(水) 21:00:15持ち逃げする気まんまんなのかな
0555デフォルトの名無しさん
2010/03/10(水) 21:10:510556デフォルトの名無しさん
2010/03/10(水) 21:52:43寄付はしない
0557デフォルトの名無しさん
2010/03/10(水) 21:54:210558デフォルトの名無しさん
2010/03/10(水) 21:56:08持ち逃げする気まんまんなのかな
に見えた・・・
0559デフォルトの名無しさん
2010/03/10(水) 22:03:13数百万円+数十万?円を最も好意的に解釈しても999万9999円だぞ?
おまえ確定申告してないだろ
0560デフォルトの名無しさん
2010/03/10(水) 22:16:00何か勘違いしていないか
0561デフォルトの名無しさん
2010/03/10(水) 22:16:290562デフォルトの名無しさん
2010/03/10(水) 22:24:170563デフォルトの名無しさん
2010/03/11(木) 02:31:430564デフォルトの名無しさん
2010/03/11(木) 02:34:08まあそうだろうけど、英語だと敬遠する人間もいるから、
そのまともな洋書がさらに翻訳されるまでのさらに数年間は
日本語で書かれた唯一のC++0x本という価値があると思う。
出来が良くても悪くても。
0565デフォルトの名無しさん
2010/03/11(木) 20:07:40しかしそれに事前投資する気にはなれない
0566デフォルトの名無しさん
2010/03/11(木) 20:08:460567デフォルトの名無しさん
2010/03/11(木) 20:25:21VS2010の本とか山ほど出ると思うぞ
0568デフォルトの名無しさん
2010/03/11(木) 20:26:13もうCマガジンないから、ITサイトとかに。
0569デフォルトの名無しさん
2010/03/11(木) 20:27:140570デフォルトの名無しさん
2010/03/11(木) 21:57:410571デフォルトの名無しさん
2010/03/11(木) 22:35:100572デフォルトの名無しさん
2010/03/11(木) 22:42:200573デフォルトの名無しさん
2010/03/12(金) 01:57:420574デフォルトの名無しさん
2010/03/12(金) 05:26:10ないよ。
あの Blog の雑文がすべて
0575デフォルトの名無しさん
2010/03/12(金) 05:35:14もう少し何かネタがあれば専用スレでもいけそうだな。
0576デフォルトの名無しさん
2010/03/12(金) 12:29:23> C++ のドラフトに相当大きな変更があるかもしれない
>
> まだ正式に決まっていないが、post-pittsburgh mailing では、
> 興味深い paper が公にされるだろう。
> 既存の C++ の根本的な定義を、大きく変える proposal だ。
0577デフォルトの名無しさん
2010/03/12(金) 14:25:430578デフォルトの名無しさん
2010/03/12(金) 17:43:490579デフォルトの名無しさん
2010/03/12(金) 18:09:53まさか右辺値参照さん死亡か?
0580デフォルトの名無しさん
2010/03/12(金) 19:22:42>追記:表面的には、なにも変わらない。
なんだ。でも将来的に影響することなんだろうか?
0581デフォルトの名無しさん
2010/03/12(金) 20:18:520582デフォルトの名無しさん
2010/03/12(金) 20:25:07Cとの互換性はC++の存在意義そのものじゃないか
0583デフォルトの名無しさん
2010/03/12(金) 20:39:330584デフォルトの名無しさん
2010/03/12(金) 21:11:450585デフォルトの名無しさん
2010/03/12(金) 21:11:46K&R Cの正統な後継者として名乗りを上げる予定とかww
0586デフォルトの名無しさん
2010/03/12(金) 21:46:51拡張子cでコンパイルして、cppからはextern"C"で呼べるんだから何も問題ない。
0587デフォルトの名無しさん
2010/03/12(金) 22:49:55自動的に適切に変換されるような仕組みになったりしてると・・・いいなあ
0588デフォルトの名無しさん
2010/03/12(金) 22:55:450589デフォルトの名無しさん
2010/03/12(金) 23:22:280590デフォルトの名無しさん
2010/03/12(金) 23:56:340591デフォルトの名無しさん
2010/03/13(土) 00:04:57> Cとの互換性はC++の存在意義そのものじゃないか
良いこと言った!
「Cとの互換性はもうない!」と言うやつも居るが、
それでもまだある方だよな。
Cとの互換性が無くても良いなら
もう別の言語にあっという間に人気とシェアを取られるだろう。
0592デフォルトの名無しさん
2010/03/13(土) 00:11:26規格上、このコードが通らないせいで。
char * ptr = "..." ;
0593デフォルトの名無しさん
2010/03/13(土) 00:13:16> 読書と、規格を学ぶことだけは、捨てることが出来なかった。
> そして、今、C++0xの本を執筆する機会を得たが、カネという難しい問題がある。
> カネなどいらないのだが、どうやら、日本で生きていく上は、カネが必要らしい。
> ともかく、何もしなければ破綻するのは確実なので、口座でもつくるか。
結局 働かないで好きなことだけして生きたいというのは、
ネトゲの中毒者とかと大同小異だと思うんだよねぇ。
0594デフォルトの名無しさん
2010/03/13(土) 00:14:38そーいやそれが通らなくなるんだよな。
でもそれが通ったせいで、俺は最初の頃悩んだぞ?
何でこれがコンパイルエラーにならないんだろう?と。
やっぱりその変換は邪悪だ。
>>579
> まさか右辺値参照さん死亡か?
C++0xの意義がとんでもなく薄っぺらくなるな。
0595デフォルトの名無しさん
2010/03/13(土) 01:10:24> 追記2:なんだか誤解を招く書き方だった。実際には、何も変わらない。
> ただ、規格の文面を変更して、規格を読みやすくするだけである。
ということらしい。
一般ユーザーには関係ない模様。
尤も、これからC++0xの本を書こうという人にとっては大問題だろうけど。
0596デフォルトの名無しさん
2010/03/13(土) 01:13:57それくらいこの言語は煩わしい。
0597デフォルトの名無しさん
2010/03/13(土) 02:32:19将来互換性を損ねる要因になる可能性があるな。
…と思いつつ久しぶりに向こうのドラフト見たら、C1xにもthread入るのか。
0598デフォルトの名無しさん
2010/03/13(土) 02:41:080599デフォルトの名無しさん
2010/03/13(土) 11:12:15じゃあC++の一般ユーザーじゃない人ってのは、
つまりは規格書を書いちゃうレベルの人達ってことか。
変態言語だな相変わらずに。
0600デフォルトの名無しさん
2010/03/13(土) 15:23:40それは朗報だね。
そもそもそんなコードを書くほうが悪い。
0601デフォルトの名無しさん
2010/03/13(土) 15:27:32まあ、当分の間、コンパイラは、回避方法を提供するだろうけど。
0602デフォルトの名無しさん
2010/03/13(土) 15:50:59出るのがいつになるのだろうか?ww
0603デフォルトの名無しさん
2010/03/13(土) 15:54:56たとえば、exportとかexception specificationとか。
0604デフォルトの名無しさん
2010/03/13(土) 16:36:282010年中に二つは出るはず。
0605デフォルトの名無しさん
2010/03/14(日) 02:13:17一般ユーザではない人たちに、コンパイラを書いちゃう人たちも追加で。
0606デフォルトの名無しさん
2010/03/15(月) 13:10:48> All expressions are now divided into three "value categories":
>
> * "lvalues" are the same as what's meant traditionally by lvalue.
> * "xvalues" are objects created by rvalue reference operations (sometimes previously called "rvalue reference objects"). The "x" can be for "eXpiring value" or a cross between lvalues and rvalues.
> * "prvalues" are the new name for traditional rvalues (i.e., excluding the xvalue cases). The "p" is for "pure rvalue".
>
> There are two compound categories:
>
> * "glvalues" are lvalues and xvalues. These are things that have dynamic type and object identity.
> * "rvalues" are xvalues and prvalues. These are (as now in the draft) things that are potentially movable.
0607デフォルトの名無しさん
2010/03/15(月) 17:08:09右辺値を左寄り右辺値と超右辺値に分けるって?
0608デフォルトの名無しさん
2010/03/15(月) 21:02:420609デフォルトの名無しさん
2010/03/15(月) 21:06:470610デフォルトの名無しさん
2010/03/15(月) 21:52:110611デフォルトの名無しさん
2010/03/15(月) 21:57:39ククク・・奴はxvaluesの中でも最弱
0612デフォルトの名無しさん
2010/03/15(月) 22:26:140613デフォルトの名無しさん
2010/03/15(月) 22:55:52大左辺値(glvalue)←{
└中辺値(xvalue) ┐
}→右辺値(rvalue)
超右辺値(prvalue)┘
左辺値(lvalue)=今まで通りの左辺値
右辺値(rvalue)=今まで通りの右辺値。中辺値と超右辺値に分割される。ムーブできる。
大左辺値(glvalue)=左辺値と中辺値の総称。名前が付いてる。
中辺値(xvalue)=右辺値参照で作られるオブジェクト。名前は付いてるけどムーブできる。
超右辺値(prvalue)=中辺値以外の右辺値。名無しの一時オブジェクト。
あってる?
0614デフォルトの名無しさん
2010/03/15(月) 23:31:320615デフォルトの名無しさん
2010/03/15(月) 23:59:40ふーん、さすが。
0616デフォルトの名無しさん
2010/03/16(火) 00:25:03IEのほうがマシだと思ってIEに戻したら
>ハァ? お前まさかIEみたいなクソブラウザ使ってるっていうのか? アホか? もっとマシなブラウザ使えよ。速いし規格準拠だし、無料だぜ。
だってさ。
0617デフォルトの名無しさん
2010/03/16(火) 00:28:410619デフォルトの名無しさん
2010/03/16(火) 00:37:170620デフォルトの名無しさん
2010/03/16(火) 01:06:29「C++学園の人々」的に頼む。
0621デフォルトの名無しさん
2010/03/16(火) 01:09:230622デフォルトの名無しさん
2010/03/16(火) 01:13:340623デフォルトの名無しさん
2010/03/16(火) 01:18:080624デフォルトの名無しさん
2010/03/16(火) 01:20:500625デフォルトの名無しさん
2010/03/16(火) 01:37:43名前を持ってる普通の生徒。
○右辺値
聴講生。特に名前を持たない生徒。それをいいことに周りから弄ばれる不憫な存在。
●右辺値参照さん
聴講生にあだ名を付けて仲良くなれる能力を持つ。
さて、「右辺値参照さんと仲良くなった聴講生」は右辺値参照さんにあだ名をもらったのでもはや名無しではない。
だが聴講生の身分には違いないので周りに弄ばれることにも変わりない。
右辺値とも左辺値とも違うヘンな性質になってしまった。
というわけで、聴講生をさらに分類して区別することにした
○中辺値
右辺値参照さんにあだ名をもらった聴講生。
○超右辺値
右辺値参照さんにあだ名をもらってない聴講生。名前はない。
「右辺値」はこの2つの総称、つまり弄んでもいい生徒ということになった。
それと、「名前を持ってて呼ぶことができる生徒」というのがまどろっこしいのでこれに名前を付けた。
○大左辺値
左辺値と中辺値の総称。本来の名前か、右辺値参照さんにもらったあだ名を持ってるので
先生は授業中に名前を呼んで当てることが出来る。
ごめん余計わかりにくくなった気がする
0626デフォルトの名無しさん
2010/03/16(火) 06:05:30乙!
0627デフォルトの名無しさん
2010/03/16(火) 09:40:420628デフォルトの名無しさん
2010/03/16(火) 11:40:49>>615
0629デフォルトの名無しさん
2010/03/16(火) 11:47:220630デフォルトの名無しさん
2010/03/16(火) 14:14:01gl とか pr とか超とか大とかが分かりやすい?ギャグがそれ
>出るのがいつになるのだろうか?ww
EDG のフロントエンドがもうじき実装を提供し始めるから、それから。
独自実装の gcc や msc はもっと後でしょうね
0632デフォルトの名無しさん
2010/03/16(火) 15:07:380633デフォルトの名無しさん
2010/03/16(火) 18:26:400634デフォルトの名無しさん
2010/03/16(火) 20:49:32それだとrvalueの意味が変わっちゃうからダメ
0635デフォルトの名無しさん
2010/03/16(火) 21:03:04なんとなくpureの略っぽい気がするから
最初純右辺値さんだと思った
0637デフォルトの名無しさん
2010/03/16(火) 21:08:31prvalueが「純粋な右辺値」ってのもなんか違う気がするし
0638デフォルトの名無しさん
2010/03/16(火) 22:46:49純だと順かと勘違いしそうだし
0639デフォルトの名無しさん
2010/03/16(火) 22:59:20じゅんうへんち
だと発音しにくいから
純粋右辺値
がいいな
0640デフォルトの名無しさん
2010/03/16(火) 23:35:14lvalue = left value : 左辺値
xvalue = expiring value : 遷移値
prvalue = pure right value : 純粋右辺値
glvalue = general left value? : 汎左辺値
rvalue = right value : 右辺値
0641デフォルトの名無しさん
2010/03/16(火) 23:36:37同意。
glvalues も「広義左辺値」や「拡張左辺値」、「拡大左辺値」とかの方が分かりやすいと思う
> All expressions are now divided into three "value categories":
>
> * "lvalues" are the same as what's meant traditionally by lvalue.
> * "xvalues" are objects created by rvalue reference operations (sometimes previously called "rvalue reference objects"). The "x" can be for "eXpiring value" or a cross between lvalues and rvalues.
> * "prvalues" are the new name for traditional rvalues (i.e., excluding the xvalue cases). The "p" is for "pure rvalue".
>
> There are two compound categories:
>
> * "glvalues" are lvalues and xvalues. These are things that have dynamic type and object identity.
> * "rvalues" are xvalues and prvalues. These are (as now in the draft) things that are potentially movable.
┌左辺値(lvalues)
│ 〔従来の左辺値〕
広義左辺値(glvalues) ─<
〔名前を持つ〕 │
└中辺値(xvalues) ┐
〔右辺値参照でバインドされた名前付き右辺値〕 │
>─ 右辺値(rvalues)
純粋右辺値(prvalues) ┘ 〔ムーブ可〕
〔従来の右辺値、無名一時オブジェクトなど〕
0642デフォルトの名無しさん
2010/03/16(火) 23:38:22これないと記述出きないくらい必要なこととかあるのかね
0643641
2010/03/16(火) 23:52:49かぶった(汗)
個人的には↓の方が良かった
┌左辺値(lvalue、left value)
│ 〔従来の左辺値〕
名前付きの値(nvalues、named value) ─<
〔名前を持つ〕 │
└中辺値(xvalue、expiring value) ┐
〔右辺値参照でバインドされた名前付き右辺値〕 │
>─ ムーブ可能な値(mvalue、movable value)
右辺値(rvalue、right value) ┘ 〔ムーブ可〕
〔従来の右辺値、無名一時オブジェクトなど〕
0644デフォルトの名無しさん
2010/03/17(水) 00:10:100645デフォルトの名無しさん
2010/03/17(水) 06:17:530646デフォルトの名無しさん
2010/03/17(水) 11:22:33下っ端は、const が分かっていれば、とりあえずはそれ以上必要ない。
誰かが適当に対処してくれる。
0647デフォルトの名無しさん
2010/03/17(水) 11:33:560648デフォルトの名無しさん
2010/03/17(水) 11:45:59誰かって誰だw
コンパイラ屋さんとかか。
0649デフォルトの名無しさん
2010/03/17(水) 11:49:39> 「lvalueとrvalueだけですべてをカバーするのが、大雑把すぎて分かりにくい」
こんな感覚が生じるほどには理解していなかった。
結局 この分類もまた勉強しなければならないのだろうか。
・・・ま、いっか。まだ変遷中だしね。
0650デフォルトの名無しさん
2010/03/17(水) 19:44:04気にならなそうだけどなぁ
0651デフォルトの名無しさん
2010/03/17(水) 21:47:28そういえばこれが通ったら右辺値参照は中辺値参照に名前変わるのかな
0652デフォルトの名無しさん
2010/03/17(水) 21:59:59どう考えても左辺値。
0653デフォルトの名無しさん
2010/03/17(水) 22:15:150654デフォルトの名無しさん
2010/03/18(木) 00:28:410655デフォルトの名無しさん
2010/03/18(木) 00:52:27敷居が上がり続けてて、今から始める人にはつらい状況だね。
0656デフォルトの名無しさん
2010/03/18(木) 01:22:27EffectiveC++ぐらいは頭に入ってないとろくなことにならない
0657デフォルトの名無しさん
2010/03/18(木) 01:31:570658デフォルトの名無しさん
2010/03/18(木) 02:03:51もちろんピン側の人ではない。
0659デフォルトの名無しさん
2010/03/18(木) 12:30:480660デフォルトの名無しさん
2010/03/18(木) 13:05:470661デフォルトの名無しさん
2010/03/18(木) 13:09:510662デフォルトの名無しさん
2010/03/18(木) 13:18:460663デフォルトの名無しさん
2010/03/18(木) 16:05:020664デフォルトの名無しさん
2010/03/18(木) 16:12:030665デフォルトの名無しさん
2010/03/18(木) 16:22:160666デフォルトの名無しさん
2010/03/18(木) 18:12:29ストレス解消に煽りに来ている方、十分な睡眠を取って煽ってくださるようお願い申し上げます。
風邪を引く前の予防が肝心です。日々の鍛錬を怠らないようにして下さい。
暇つぶしに来ている方、時間を決めて一時間ごとに十五分から二十分くらいの休息を取られた方が良いと思います。
時間は限られています。あなたの人生はあなたの物ですが、一日中インターネットに没頭している、これはいかがな物でしょうか。
インターネットはあなた様の健康に悪影響を及ぼす可能性があります。
マルチしている方、人を忘れないでください、すべてはたくさんの人の多大な努力と膨大な時間を費やして出来た物でありますが故に、
そのような行為は非人道的行為にあたります。なお九十割はスクリプトで出来ているので、気軽に質問してください。マルチはいけません。
さて、私がこのような事をなぜ申し上げますかというと、この度Goのビルドに成功したが故に存じ上げる次第でございます。
よくよく冷静に考えると、このような開発段階にあり、現段階では実用に適していない「ぼくのかんがえたさいきょうのげんご」は
プログラミング言語の学習に適さないと判断させていただきました。今後ますますのご健康とご活躍をお祈り申し上げます。
0667デフォルトの名無しさん
2010/03/18(木) 18:16:500668デフォルトの名無しさん
2010/03/18(木) 20:17:29Conceptさん帰ってきて!!!
0669デフォルトの名無しさん
2010/03/18(木) 20:18:460670デフォルトの名無しさん
2010/03/18(木) 20:24:06あんがい集まるのか。
0671デフォルトの名無しさん
2010/03/18(木) 20:25:16> テンプレート使ってると、これは他人に勧めるのは躊躇するなあと思う。
おおお俺も俺も俺も思うよ!!!
同じ感想の人がいてうれしい
0672デフォルトの名無しさん
2010/03/18(木) 20:27:420673デフォルトの名無しさん
2010/03/18(木) 20:35:540674デフォルトの名無しさん
2010/03/18(木) 20:42:450675デフォルトの名無しさん
2010/03/18(木) 20:48:39C++のてんぷれーとはよいものだよ
0676デフォルトの名無しさん
2010/03/18(木) 20:50:37てか名簿に所属組織が書かれていない人、もしかしてこれ全部…なのか?
0677デフォルトの名無しさん
2010/03/18(木) 21:18:3710数年前にSTLを挫折したことがある俺。
0678デフォルトの名無しさん
2010/03/18(木) 21:21:370679デフォルトの名無しさん
2010/03/18(木) 21:27:180680デフォルトの名無しさん
2010/03/18(木) 21:29:38いや、>>>528いわく、 夢は夢のままで、実現するのは困難なんだとさ。
0681デフォルトの名無しさん
2010/03/18(木) 21:36:26他人に勧めるのを躊躇するC++の仕様なんて
いくらでも見つかる気がする。。。
各自 困ったことのある経験によるだろうだな。
0682デフォルトの名無しさん
2010/03/18(木) 21:41:01実現するためのスタイルが二種類あって、
片方に決まりそうだったけど、
最後に、禿がやはりそれは複雑すぎなんじゃ?
と疑問を呈した大論文を書いたので、
禿のよりシンプルな提案を含めて再検討することに。
ちなみに禿の一方的な考えじゃなくて、
メーリングリストでみんなの議論をまとめた論文。
0683デフォルトの名無しさん
2010/03/18(木) 21:44:00すごい人達だけで便利なのを作ってくれとしか言えんな。
0684デフォルトの名無しさん
2010/03/18(木) 21:46:34あるコンセプトに対して、対応するコンセプトマップを、暗黙的に生成するか、
あるいは、たとえ、コンセプトマップが空でも、明示的に定義させるべきかという問題があった。
つまり、ある型は、そのコンセプトの要求を満たしていると言うことを、明示的に宣言しなければならないわけだ。
こうすることによって、たまたまシグネチャが一致したのではなく、明確に、この型はこのコンセプトを満たしているんだと宣言できる。
ただ、このやり方は、殆どの場合、空のコンセプトマップを、ただ、そのコンセプトを満たしているという宣言のためだけに、書かなければならない。
それはどうなんだと。そんなの面倒で、誰もやらないぜと。
フランクフルト会議での解決策は、デフォルトのコンセプトには、暗黙的に、対応するコンセプトマップが生成され、
explicitをつけた場合、コンセプトマップを(たとえ空でも)、明示的に宣言しなければならないという提案だった。
ただ、やはりコンセプトというのが、非常に微妙で、ある意味では、厳格すぎるし、なかなか難しい機能だった。
コンセプトのコードを正しく書くのは、非常に難しい。
さらに、まともな実装もなかった。
Douglas GregorのConcept GCCは、かなり不完全な実装で使い物にならなかったしね。
まあ、そんなわけで、標準化委員会の中にも、「もういいだろ」って雰囲気が漂っていた。
そこにきて、この根本的な思想の違いをきっかけに、投票が行われた。
すでに入っているConceptを、ドラフトから削除するという投票。
これには、Bjarne Stroustrupも、Douglas Gregorも、削除の票を投じた。
そんなわけで、コンセプトは削除された。
0685デフォルトの名無しさん
2010/03/19(金) 00:11:31テンプレート引数がある関数を持っているかどうかを
調べてコンパイル時に分岐させる方法はありますか?
has_funcion_nantoka<T>::flag
みたいなのです。
C++0xまで無理なのでしょうか。
0686デフォルトの名無しさん
2010/03/19(金) 00:12:24あー、そうだったのか。
残念すぎる。
どんな実装が良いか一長一短が過ぎて名案が浮かばないってことね。
0687686
2010/03/19(金) 00:13:40なんか出来るらしいという噂も聞いた。
でもテンプレートメタプログラミングを駆使するから
コンパイラを選びまくるという話だったよーな。
あんまり詳しくないんで、ごめんよ。あとは他の人に。
0688デフォルトの名無しさん
2010/03/19(金) 00:15:21禿とその仲間達がやっぱり世話焼き妹系がいいと言い出して
結果キャラ設定から考え直すことになったということですね
0689デフォルトの名無しさん
2010/03/19(金) 00:31:020690デフォルトの名無しさん
2010/03/19(金) 00:33:37C++相談室 part78 でこんなのあったよ
ttp://codepad.org/3HNtsPNZ
0691デフォルトの名無しさん
2010/03/19(金) 00:35:100xじゃなくてもできるよ。
C++スレもしくはBoostスレがいいかも。
0692デフォルトの名無しさん
2010/03/19(金) 03:16:05これは思いつかなかった
質問者じゃないけどちょうど活用できそうだわサンクス
0693デフォルトの名無しさん
2010/03/19(金) 03:46:470694デフォルトの名無しさん
2010/03/19(金) 07:50:43ttp://codepad.org/Mnw0vil8
0695デフォルトの名無しさん
2010/03/19(金) 08:46:020696デフォルトの名無しさん
2010/03/19(金) 10:06:150697デフォルトの名無しさん
2010/03/19(金) 10:55:04ここは関数テンプレートにおける deduction についてしか記載していないので,
690 は 14882:2003 的には正当性が不明なのではないですかね?
ところで concept は, archetype test と
(スコープによって切り替えられる) concept map を
分離できなかったんでしょうかね?
個人的には後者が無いことの問題のほうが大きいと感じるので,
後者だけでも 0x までに何とかして欲しかった.
0698685
2010/03/19(金) 12:15:11ありがとうございます。
0699デフォルトの名無しさん
2010/03/19(金) 15:50:10すふぃなぇ?
0700デフォルトの名無しさん
2010/03/19(金) 15:58:150701デフォルトの名無しさん
2010/03/19(金) 16:02:570702デフォルトの名無しさん
2010/03/19(金) 17:28:08そうそう、何をもってSFINAEとするかが、問題でね。
C++0xでは、インスタンス化の結果が、直接書いた場合、ill-formedであれば、type deductionは失敗するとしている。
0703デフォルトの名無しさん
2010/03/19(金) 17:55:500704デフォルトの名無しさん
2010/03/19(金) 19:20:510705デフォルトの名無しさん
2010/03/19(金) 19:29:170706デフォルトの名無しさん
2010/03/19(金) 22:27:59noop スレを見てる暇があったらプログラム書けボケ
0707デフォルトの名無しさん
2010/03/20(土) 10:56:45言語で何を作るかによる。言語自体の評価なんて二の次だろ。というかなくてもいいくらい。
0708デフォルトの名無しさん
2010/03/20(土) 11:02:330709デフォルトの名無しさん
2010/03/20(土) 11:31:590710デフォルトの名無しさん
2010/03/20(土) 11:32:290711デフォルトの名無しさん
2010/03/20(土) 11:51:240712デフォルトの名無しさん
2010/03/20(土) 12:02:310713デフォルトの名無しさん
2010/03/20(土) 20:28:410714デフォルトの名無しさん
2010/03/20(土) 21:00:42○中学生キモオタだから淫語に過剰反応する
0715デフォルトの名無しさん
2010/03/20(土) 21:02:220716デフォルトの名無しさん
2010/03/21(日) 03:15:44中辺という言葉が意味を為さないので。
0717デフォルトの名無しさん
2010/03/21(日) 05:01:150718デフォルトの名無しさん
2010/03/21(日) 05:35:45JISはこんな訳当てそうだけど
0719デフォルトの名無しさん
2010/03/21(日) 09:49:24犯人は誰だ
0720デフォルトの名無しさん
2010/03/21(日) 10:40:070721デフォルトの名無しさん
2010/03/21(日) 12:12:01> このままだとC++0xは失敗するよね。
そうか?
まあ確かにこのままだと多少微妙かもしれないけどね。
0722デフォルトの名無しさん
2010/03/21(日) 12:15:35少なくともC99みたいにガン無視されることはないと思うけどね
VCに機能が一部入ってるのが大きい
0723デフォルトの名無しさん
2010/03/21(日) 12:16:140724デフォルトの名無しさん
2010/03/21(日) 12:16:29言っておくけど制定委員に給与はもともとないから頓挫してもデメリットも糞もないからなw
市場価値が発生しない事を「失敗」と言うならば過去に何度も失敗してるw
0725デフォルトの名無しさん
2010/03/21(日) 12:17:21とにかくこれだけ対応してさっさと普及させてくれないかな
0726デフォルトの名無しさん
2010/03/21(日) 12:24:13long long, static_assert, 右辺値参照と可変長引数マクロ・テンプレートが欲しい。
あとライブラリ実装でできるものなら簡単そうだからいろいろ。
threadは、もう別のライブラリが多少普及しているし、
微妙な代物がstdに入っちゃうとそれはそれで困るから
もうちょっとゆっくりやってて良いよ!
0727デフォルトの名無しさん
2010/03/21(日) 12:33:17右辺値
template可変長引数
3つ選ぶならこれが欲しい
次点でstatic_assert
ということは俺的にgccはもうC++0xとして使える
0728デフォルトの名無しさん
2010/03/21(日) 12:45:45lambdaが欲しいのか?この変態め!
0729デフォルトの名無しさん
2010/03/21(日) 12:56:59auto、initializer_list、コンストラクタの委譲と継承、strong Enum、UTF周り
あたりがあるととても楽になる
0730デフォルトの名無しさん
2010/03/21(日) 12:58:470731デフォルトの名無しさん
2010/03/21(日) 13:04:360732デフォルトの名無しさん
2010/03/21(日) 13:23:20匿名関数なんてあって当然のものだろ。
0733デフォルトの名無しさん
2010/03/21(日) 13:39:35普通にやってRVOにするかreturn move(戻り値);にするか
迷うけどどっちにしたらいいですか?
0734デフォルトの名無しさん
2010/03/21(日) 13:55:030735デフォルトの名無しさん
2010/03/21(日) 14:10:040736デフォルトの名無しさん
2010/03/21(日) 14:10:470737デフォルトの名無しさん
2010/03/21(日) 15:43:06いまだにCと関数ポインタに固執している哀れな人間だ。
そっとしておいてやれ。
0738デフォルトの名無しさん
2010/03/21(日) 15:48:400739デフォルトの名無しさん
2010/03/21(日) 15:53:440740デフォルトの名無しさん
2010/03/21(日) 15:54:220741デフォルトの名無しさん
2010/03/21(日) 15:55:310742デフォルトの名無しさん
2010/03/21(日) 15:58:56最近流行ってるパラダイムです
0743デフォルトの名無しさん
2010/03/21(日) 16:00:090744デフォルトの名無しさん
2010/03/21(日) 16:00:160745デフォルトの名無しさん
2010/03/21(日) 16:01:490746デフォルトの名無しさん
2010/03/21(日) 16:03:510747デフォルトの名無しさん
2010/03/21(日) 16:12:10delphiのoverrideとかoverloadが欲しい。
微妙なうち間違いで仮想関数がいつの間にか作られてたりとか非常に辛い
0748デフォルトの名無しさん
2010/03/21(日) 16:13:59テンプレートみたいな一部の記述には最適かもしれないけど全てをそれでってのは難しくないかな。
0749デフォルトの名無しさん
2010/03/21(日) 17:03:077.6.4 Final attribute [dcl.attr.final]
>>747
7.6.5 Class member name checking attributes [dcl.attr.override]
0750デフォルトの名無しさん
2010/03/21(日) 17:16:48別のライブラリってboost::threadではなく? 他にこれと言って思い当たらないなぁ。
この前組み込みでboost::thread使おうとしたらスタックサイズ指定できなくて残念だった。
0751デフォルトの名無しさん
2010/03/21(日) 17:22:23自前ライブラリでインターフェースから抹消してしまったんだが
0752デフォルトの名無しさん
2010/03/21(日) 17:54:59pthreadじゃね
普及していると言えるか微妙だけど
0753デフォルトの名無しさん
2010/03/21(日) 18:30:02メモリが少ない環境ではスタックサイズが必要になると思うけど、グローバルでいいんじゃないか
0754デフォルトの名無しさん
2010/03/21(日) 18:38:36コンストラクタで指定できないこともないんだが
0755デフォルトの名無しさん
2010/03/21(日) 20:22:34まぁ組み込みなんだから自分でboostビルドするときに修正すれば済む話なんだけど。
>>752
もうちょっと高レベルなのが欲しいんだよね。JavaのExecutorフレームワークみたいな。
C++0xのfutureは良さそうな感じ。
IntelのTBBとかはまた方向性が違うしなぁ。
0756デフォルトの名無しさん
2010/03/21(日) 22:19:200757デフォルトの名無しさん
2010/03/21(日) 22:22:070758デフォルトの名無しさん
2010/03/21(日) 22:29:47ちゃんと明るいんですか!?
0759デフォルトの名無しさん
2010/03/21(日) 22:37:490760デフォルトの名無しさん
2010/03/21(日) 22:40:080761デフォルトの名無しさん
2010/03/21(日) 22:49:160762デフォルトの名無しさん
2010/03/21(日) 23:01:28n. (pl. oxen) (特に去勢した)雄牛; (普通pl.) 牛(属の動物
0763デフォルトの名無しさん
2010/03/22(月) 01:52:570xでいよいよC++に愛想尽かすやつが続出する。
0764デフォルトの名無しさん
2010/03/22(月) 02:48:200765デフォルトの名無しさん
2010/03/22(月) 08:01:130766デフォルトの名無しさん
2010/03/22(月) 08:10:280767デフォルトの名無しさん
2010/03/22(月) 12:16:465年後を考えて見よう。
5年後の段階から初めてC++を学ぶ人達に、
どうお薦めすればいいんだ!?
0768デフォルトの名無しさん
2010/03/22(月) 12:39:140769デフォルトの名無しさん
2010/03/22(月) 12:48:12better C++03 としてすすめればいいんじゃないか
0770デフォルトの名無しさん
2010/03/22(月) 13:02:530771デフォルトの名無しさん
2010/03/22(月) 13:25:47そんな気安く変更できない体質が
逆にC++の良い所なんじゃないか。
D言語を見てみろ
0772デフォルトの名無しさん
2010/03/22(月) 13:29:08D言語はそれからが本番
0773デフォルトの名無しさん
2010/03/22(月) 13:33:52本番が来るころには別の言語に押されてそうで不憫な子。
0774デフォルトの名無しさん
2010/03/22(月) 13:35:46そこんとこは心配ない気はする
0775デフォルトの名無しさん
2010/03/22(月) 13:43:040776デフォルトの名無しさん
2010/03/22(月) 13:44:12テンプレートメタプログラミング言語になっているのではないだろうか。
0777デフォルトの名無しさん
2010/03/22(月) 13:49:15> 進化を遂げて
ねぇ…
どんどん変態構文が増えるだけのよーな気が … … …
0778デフォルトの名無しさん
2010/03/22(月) 13:52:50右辺値参照とか標準ライブラリにあるもの以上のものが
使われる気がしないねえ
Goがどうなるかだね
0779デフォルトの名無しさん
2010/03/22(月) 13:56:23C厨はそもそも強い静的型付けなんか頭にない。
そもそも、競合相手じゃないんだよな、Cは。
まあ、C++は、しばらく競合相手が現れないだろうよ。
0780デフォルトの名無しさん
2010/03/22(月) 14:00:45noexcept を指定する以外は関数の宣言からは
どんな例外が throw されるか判別できなくなるってこと?
0781デフォルトの名無しさん
2010/03/22(月) 14:02:03GCみたいにいつ開放されるのか分からないのはまどろっこしい。
0782デフォルトの名無しさん
2010/03/22(月) 14:04:27現実的に、どんな例外が投げられるかわかったもんじゃないし。
そりゃ、引数を渡すのはユーザーだとしてもだ。
現実的に、まともに把握出来るわけがない。
0783デフォルトの名無しさん
2010/03/22(月) 14:04:51例外仕様はいまいちだったと思うけど、thorw()だけは必要だと思ってた。
それがnoexceptになるの?
0784デフォルトの名無しさん
2010/03/22(月) 14:06:18noexcept(true)と同じ意味。
0785デフォルトの名無しさん
2010/03/22(月) 14:14:350786デフォルトの名無しさん
2010/03/22(月) 14:16:35hoge::func(Fuga());
とやるとhoge::Fugaがあればそれが選ばれる的な
0787デフォルトの名無しさん
2010/03/22(月) 14:29:180788デフォルトの名無しさん
2010/03/22(月) 14:55:41概念を具現化するにはキーワードが無いと辛いからね。
その昔に追加された explicit や mutable などと同様、導入はやむを得ない。
0789デフォルトの名無しさん
2010/03/22(月) 15:08:06#include <cpp0x> 内で
#define noexcept _Noexcept
とする・・・みたいなことはしないんだなー
C99みたいに
0790デフォルトの名無しさん
2010/03/22(月) 15:09:530791デフォルトの名無しさん
2010/03/22(月) 15:14:27概念が必要なのは実装よりも頭の中で考えてるときじゃね?
それを実装するときに概念に近い機能があると楽っていう。
ちゃんと概念からコードに変換できる頭があれば疑問かもしれんが。
0792デフォルトの名無しさん
2010/03/22(月) 15:15:01C言語でも、オブジェクト指向プログラミングは可能なわけだ。
継承も、データメンバーとして持てばいいわけだし、
仮想関数も、自前でvtable構築すればいいわけだ。
俺はやりたくはないけどな。
ジェネリックだって、自分でプリプロセッサを実装すればいいわけだ。
俺はやりたくはないけどな。
0793デフォルトの名無しさん
2010/03/22(月) 15:20:09どこまで行っても永遠に平行線だぞ。
頑張ってる人には申し訳ないが、俺は無駄な努力だと思うね。頑張ってね。
0794デフォルトの名無しさん
2010/03/22(月) 15:26:46ありがとな
0795デフォルトの名無しさん
2010/03/22(月) 15:27:000796793
2010/03/22(月) 15:33:16でも、月に行っちゃう人たちも居るし、頑張れ。
>>795
コンピュータに自然な形で指示を出せばよい。
最後はみんなアセンブリの構文砂糖であるC言語に落ち着き、
そこからもう一歩踏み出して、C++ではないどこかへ旅立っていくのさ。
そういうもんだろ?
0797デフォルトの名無しさん
2010/03/22(月) 15:38:02だからこそキーワードなしで勝手によろしくはやってくれないって話なんだが
0798デフォルトの名無しさん
2010/03/22(月) 15:39:45コンピューターに、「NSA 秘密 情報」 と入力するだけで、NSAのスパイ情報が得られるわけだな。
「name lookup 詳細なルール 俺にでも分かる用語で」
0799デフォルトの名無しさん
2010/03/22(月) 15:56:38曖昧さを排する必要がある。
通常は簡単なルールにより強制的に一義性を持たせるようにする。
こういった単純なルールの組み合わせで曖昧さをなくすのである。
だが場合によってはそのルールを組み合わせて使用することで
直観的でない結果を生じることがある。
このようなルールの連鎖によって直観が働かないことが起きないように、
適切な局面にキーワードを導入して、
意味が直観的かつ一義的になるように設定する必要がある。
0800デフォルトの名無しさん
2010/03/22(月) 16:06:53検索ぐらいならやってくれるだろう。
0801デフォルトの名無しさん
2010/03/22(月) 16:11:59結構色んな事やってるよね
0802デフォルトの名無しさん
2010/03/22(月) 17:21:25上にも出ていたけど、mutableとか要るか?
意味の上ではconstだけど、実装の上ではconstではない。
コンピュータは意味の上でのconstを理解できないので、仕方なくmutable。
でも実装はconstではない。データいじる。でもconst。変なの。
explicitも。
そもそも、暗黙の型変換をコンストラクタで代用したのが失敗だ。
Cで論理値を整数値で代用したために、if( TRUE==func() )がご法度になった失敗を
繰り返してる。
実装上は違う物だけど、意味の上では同じような物だから、同一に扱えるように〜とか、
意味の上では違う物だけど、実装上は同じようなコードになるから、代用〜とか、
ってのは大概失敗する。
まー皆さんは、意味と実装のギャップの分だけ詭弁的キーワードを
コンピュータや周囲に向かって唱え続けてればいいよ。
「この子はやれば出来る子なんです」ってね。
0803デフォルトの名無しさん
2010/03/22(月) 17:27:310804デフォルトの名無しさん
2010/03/22(月) 17:27:37必要なことが出来ていることだけは間違いない。
変だ、いらないっていうのは簡単だけど。
じゃあどうすればいいかのか別の解決法を示せってことだろうな。
出来もしないことを周囲に向かって唱え続けるのは詭弁だろう。
0805デフォルトの名無しさん
2010/03/22(月) 17:28:330806デフォルトの名無しさん
2010/03/22(月) 17:28:370807デフォルトの名無しさん
2010/03/22(月) 17:31:45lambda式中のmutableとかexplicit operator bool()とか。
0808デフォルトの名無しさん
2010/03/22(月) 17:34:34それ使えば?
0809デフォルトの名無しさん
2010/03/22(月) 17:37:130810デフォルトの名無しさん
2010/03/22(月) 17:45:27>じゃあどうすればいいかのか別の解決法を示せってことだろうな。
超簡単。
少なくともexplicitに関しては。
暗黙の型変換をコンストラクタで代用しない仕様にしとけばよかった。
だっておかしいだろ、コンストラクタで暗黙の型変換なんて。
後の祭りだがナー。
代用代用、同一視同一視、困ったときは魔法のキーワード。
それがC++。
0811デフォルトの名無しさん
2010/03/22(月) 17:47:38もし当時、そんなに厳格な型システムだったら、誰もC++を使わなかっただろうな。
0812デフォルトの名無しさん
2010/03/22(月) 17:52:38C++ユーザーはみんなそう思ってるの?
思ってないでしょ?
それともどこかにいるの?
0813デフォルトの名無しさん
2010/03/22(月) 17:56:39逆に、暗黙変換をしたい時に implicit を付ける仕様にすべきだった
今言った所でどうにもならんがなー
0814デフォルトの名無しさん
2010/03/22(月) 17:58:54少なくともコンストラクタでの暗黙の型変換に関してはそう思うのが普通だろうよ。
むしろ、お前はそうは思わないのか?変な奴。
0815デフォルトの名無しさん
2010/03/22(月) 18:00:290816デフォルトの名無しさん
2010/03/22(月) 18:11:30値の書き替えが必要な変数にはmutableをつけるようにすべ(ry
0817デフォルトの名無しさん
2010/03/22(月) 18:14:460818デフォルトの名無しさん
2010/03/22(月) 18:16:51ちゃぶ台返ししてよいなら
D言語みたいにいろいろチャレンジし続けてる言語を使えば良い。
0819812
2010/03/22(月) 18:24:38C++のexplicitが何故、後の祭りなのか分からない
C#のようにしたほうが良かったってこと?
0820デフォルトの名無しさん
2010/03/22(月) 18:27:40つまり、これからも同じ過ちを繰り返しても良いと
0821デフォルトの名無しさん
2010/03/22(月) 18:36:30暗黙の型変換をコンストラクタで代用したために、
コンストラクタが
暗黙の型変換のためにあるのか、
コンストラクトのためにあるのか、
両方のためにあるのか、
つまり、どういう意図のコンストラクタなのか、
文法からは判断がつかなくなっちゃったんだよ。
意味のランク落ち。
暗黙の型変換を提供する演算子なり構文なりを追加すべきだった。
0822デフォルトの名無しさん
2010/03/22(月) 18:40:37デフォルトが暗黙変換を許容するってことだ
暗黙変換を許容するケースの方が特殊だろうに
0824デフォルトの名無しさん
2010/03/22(月) 18:49:22implicit none;
// 〜
}
こういうの欲しい
0825デフォルトの名無しさん
2010/03/22(月) 18:50:500826デフォルトの名無しさん
2010/03/22(月) 18:59:480827デフォルトの名無しさん
2010/03/22(月) 19:02:35違うね。
暗黙の型変換をコンストラクタで代用している限りは、
将来の文法の拡張やパラダイムシフトで問題を起こす可能性が残る。
何かの拍子で、暗黙の型変換とコンストラクタを明確に区別する必要が出てきたら、
また謎めいた予約語を追加する羽目になる。
そうでなくても、暗黙の型変換とコンストラクタは全く別の機能なのに、
コンストラクタで代用するのは間違った設計だし、実際に問題がおきて予約語が追加された。
0828デフォルトの名無しさん
2010/03/22(月) 19:05:100829デフォルトの名無しさん
2010/03/22(月) 19:09:47演算子オーバーロードを許容するかしないかという
宗教論争と根は同じだと思う
「数値と同じようなものに見せたい」という
実用上の要求から考えれば同一視した方が良い
0830デフォルトの名無しさん
2010/03/22(月) 19:11:51registerとか被りまくりでムカつく
0831デフォルトの名無しさん
2010/03/22(月) 19:24:20暗黙の型変換とコンストラクタを同一視する事に何の意味がある。
演算子のオーバーロードは分かる。
足し算なら足し算、引き算なら引き算、同じ名前の同じ機能を提供するのだからな。
暗黙の型変換とコンストラクタは名前も機能も違う。
0832デフォルトの名無しさん
2010/03/22(月) 19:28:49そもそもC++はキャストとコンストラクタも同一視されてんだぜ
0833デフォルトの名無しさん
2010/03/22(月) 19:28:49intやdoubleには暗黙の型変換があるから、それに似せたいと言う意味か。
でも、それと、コンストラクタを暗黙の型変換に代用する事とは話が別だと思うが。
0834デフォルトの名無しさん
2010/03/22(月) 19:33:23でも、結局実装はコンストラクタを呼んで
テンポラリオブジェクトを返すだけの実装になるだろう
というか、それ以外の実装になる方が問題だと思う
どんだけ特殊な事やってんだと
0835デフォルトの名無しさん
2010/03/22(月) 19:44:05違うって。暗黙の型変換をするときに、コンパイラが勝手にコンストラクタを呼びにいくことが問題なんだ。
なんで「暗黙の型変換==コンストラクタ」みたいに勝手に解釈してんだよ、という。
昔あっただろ、
ポインタが必要なところで0が出てきたらNULLポインタだと勝手に解釈する言語が。
あれも結局オーバーロードと相性悪くてnullptrが追加されただろ?
同じ事だよ。結局問題を起こすんだ。
それに、暗黙の型変換とコンストラクタが別々に定義できた方が柔軟性がある。
コピーコンストラクタと代入演算子が別々に定義できるようにな。
0836デフォルトの名無しさん
2010/03/22(月) 19:48:28それでいいんだよ。
その冗長性が暗黙の型変換の特殊性を示している。
というか、暗黙の型変換を定義するわけだから、暗黙ではなくなるんだがな。
知らないところで勝手にコンストラクタが呼ばれるからこそ暗黙なわけで。
0837デフォルトの名無しさん
2010/03/22(月) 19:50:49お節介焼きたいお年頃だったんだよ。
0838デフォルトの名無しさん
2010/03/22(月) 19:51:08初期化と代入の区別が怪しいぞ
まだ未初期化のオブジェクトを初期化するのと、
初期化済みのオブジェクトに上書き代入するのとはえらい違いだ
実装も変わってくる
オーバーロードと相性が悪いのはまあ確かにそうなんだよな
でも特殊な構文を用意させられるのはちょっと・・・
暗黙じゃないじゃん
0839デフォルトの名無しさん
2010/03/22(月) 19:53:56implicit をつけたら暗黙の型変換も許容する、でいいのさ
まあ、今となっちゃどうしようもないがね
0840デフォルトの名無しさん
2010/03/22(月) 19:55:300841デフォルトの名無しさん
2010/03/22(月) 19:58:260842デフォルトの名無しさん
2010/03/22(月) 19:58:320843デフォルトの名無しさん
2010/03/22(月) 19:58:360844デフォルトの名無しさん
2010/03/22(月) 20:00:230845デフォルトの名無しさん
2010/03/22(月) 20:01:25気持ちいい
0846デフォルトの名無しさん
2010/03/22(月) 20:01:49暗黙でなくなるなら、そっちのが良いと思うがなぁ。
今は良くても将来どうなるか分からないのは、
CのNULLポインターを見ても分かるとおり。
あれも、0を暗黙でNULLポインターと解釈する仕様がネックになったわけで。
0847デフォルトの名無しさん
2010/03/22(月) 20:03:380848デフォルトの名無しさん
2010/03/22(月) 20:12:26使い方の問題だろ。
0849デフォルトの名無しさん
2010/03/22(月) 20:14:250850デフォルトの名無しさん
2010/03/22(月) 20:20:17書き込めないと困るんだお
0851デフォルトの名無しさん
2010/03/22(月) 20:21:200852デフォルトの名無しさん
2010/03/22(月) 20:23:460853デフォルトの名無しさん
2010/03/22(月) 20:25:550854デフォルトの名無しさん
2010/03/22(月) 22:56:130855デフォルトの名無しさん
2010/03/22(月) 23:13:420856デフォルトの名無しさん
2010/03/22(月) 23:15:190857デフォルトの名無しさん
2010/03/22(月) 23:25:480858デフォルトの名無しさん
2010/03/22(月) 23:33:14C++0xって何のことか分からない人が紛れ込んでくるから。
0859デフォルトの名無しさん
2010/03/22(月) 23:41:09暗黙の型変換用の構文じゃないのか?
なんでコンストラクタでしか定義できないみたいな話になってるんだ。
0860デフォルトの名無しさん
2010/03/22(月) 23:42:550861デフォルトの名無しさん
2010/03/22(月) 23:45:180862デフォルトの名無しさん
2010/03/22(月) 23:51:39というか忘れてましたって正直に謝れ
0863デフォルトの名無しさん
2010/03/22(月) 23:54:120864デフォルトの名無しさん
2010/03/22(月) 23:55:170865デフォルトの名無しさん
2010/03/22(月) 23:56:17正直すまんかった
>>863
ちょwwwwおまwww
>>860
どーせならboost::variantぐらいはっちゃけてもいいんじゃないかと思ったが
確実にゼロ・オーバーヘッド原則に反するようなことが起きるから無理か
0866デフォルトの名無しさん
2010/03/23(火) 00:51:23把握し切れてないんだと思う。想像しきれんぐらい複雑な化学反応が起こるのだろう。
またどうせ、変な問題が出てきて、変な予約語が追加されるに一票。
意外に思われるかもしれないが、俺がにらんでるのはみんな大好きなauto。
こいつは便利だから、そこらかしこで使われる事になるのだろうが、
それゆえにあちこちで火の手が上がりそうで怖い。
auto value=hoge(); //自分の想像していた型と違ってたりしてな。おーこわ。
value.method();//何が呼ばれるのか、
func( value );//わかったもんじゃないね。
autoは変数宣言のgoto文とか言われるようになったりしてな。
さー何が起こるか楽しみだね。
0867デフォルトの名無しさん
2010/03/23(火) 01:06:25あんまりいうと怒られるけど、型によって制御が切り替わるってのは、
データ構造で制御構造を構築しようとしているわけで、
もとより、こんなものがうまく行くわけが無いんだよね。
だって、データ構造と制御構造はあくまで別物だからな。混ぜるのはアホだろ。
オーバーロードは暗黙の型変換や#define NULL 0で問題を引き起こし、
多態は制御構造をスパゲッティーにした。
autoと多態orオーバーロードの相性も良く無いだろうし、
もう止めたら?っておもう。むしろautoはCにこそ相応しい。
おっと、あんま言うと怒られるね。ごめん忘れて。
0868デフォルトの名無しさん
2010/03/23(火) 01:08:260869デフォルトの名無しさん
2010/03/23(火) 01:13:080870デフォルトの名無しさん
2010/03/23(火) 01:41:46C#もJavaもみんな大好きD言語も糞言語だな
0871デフォルトの名無しさん
2010/03/23(火) 01:45:360872デフォルトの名無しさん
2010/03/23(火) 01:58:520873デフォルトの名無しさん
2010/03/23(火) 01:59:54そんな俺の好きな言語はSQLだったり。
まぁSQL自体はあんま好きじゃないんだけど、リレーショナルDBの考え方がすき。
シンプルで良いじゃない。
C++で高速なリレーショナルDBのようなものが言語レベルでサポートされれば、
個人的には満足。
えーって思う人たちも居るだろうけど、生産性は確実にあがると思うよ。
面白みはなくなるけどね。でも、オラクルは成功しているだろ?あやかろうぜ。
0874デフォルトの名無しさん
2010/03/23(火) 02:05:190875デフォルトの名無しさん
2010/03/23(火) 02:08:380876デフォルトの名無しさん
2010/03/23(火) 02:11:230877デフォルトの名無しさん
2010/03/23(火) 02:11:490878デフォルトの名無しさん
2010/03/23(火) 02:12:01そんなのいいから、ちゃんとしたDB用意してよって思うんだよ。
トランザクションも付いていたらありがたいなー。それはやりすぎか。
そう言うところをもっと頑張って欲しいんだよなー。
Boostとかマジどうでも良いから。
0879デフォルトの名無しさん
2010/03/23(火) 02:16:38現実なんてのはさぞ最悪で住みにくいことだろうね
0880デフォルトの名無しさん
2010/03/23(火) 02:19:07気に入るのが出てくるまでボーと待ってるよ。
0881デフォルトの名無しさん
2010/03/23(火) 03:58:09何言ってんだ。nullptr_t が必要なところでリテラルの 0 が必要なのは問題ないだろ。
0 のかわりに NULL と書きたい奴が #define NULL ((void*)0) とするから問題なんだ。
コンパイラは int の rvalue が 0 かどうか判断するわけではなくリテラルの "0" だけをヌルポインタだと解釈するのだから、その指摘は的外れだ。
0882デフォルトの名無しさん
2010/03/23(火) 04:25:21コンパイラが判断できないっつってんだろー。頭悪いな。
そもそもC++でのNULLのdefineからして間違ってるし。
だれか>>881を教育して。
0883デフォルトの名無しさん
2010/03/23(火) 04:36:18f( void *p ){}
f( char *p ){}
f( int *p ){}
こんな風になってると、nullptrが有ろうが無かろうが、どっち道キャストは必要だよね、と。
そういう指摘なら俺もわかる。
ただ、nullptrが追加された事で、少なくとも、
f( void *p ){}と
f( int i ){}の
どちらを呼び出すべきかはキャストなしで決定できるようになった。
まーしかしオーバーロードってマジむごいな。
諸悪の根源としか。何かがおかしいんだろうね。
0884デフォルトの名無しさん
2010/03/23(火) 04:41:070885デフォルトの名無しさん
2010/03/23(火) 05:13:30C++の型自体が割りとあいまいなものであるにも関わらず。
NULLポインタの0、暗黙の型変換、auto(←プログラマからは型が見えずらい)。
オーバーロードと柔軟な型、どちらを取りましょうかねぇ。
そのうちオーバーロードを禁止するキーワードが追加されたりしてな。
0886デフォルトの名無しさん
2010/03/23(火) 05:21:12f(std::nullptr_t)
このときf(NULL)というかf(0)はどっちになるの
0887デフォルトの名無しさん
2010/03/23(火) 05:47:38> C++の型自体が割りとあいまいなものである
C++の型付けって強い部類に入ると思うんだけど、あいまいっていうとどのあたり?
C互換の暗黙変換のことかな?それだとautoをこわがってる理由がわからないな。
0888デフォルトの名無しさん
2010/03/23(火) 07:38:33オーバーロードしなきゃいいのに
使いたくない物は無理に使わなくても良いんだよ?
0889デフォルトの名無しさん
2010/03/23(火) 09:09:24使いたくないものは使わなければいいだけのハナシなんだが、
他人が書いたオーバーロードだらけ、autoだらけのコードの
デバッグをやらされるなんてことを考えると非常に萎える。
0890デフォルトの名無しさん
2010/03/23(火) 09:29:070891デフォルトの名無しさん
2010/03/23(火) 11:02:560892デフォルトの名無しさん
2010/03/23(火) 11:21:11C++自体にそれらがくっついていては意味がない
0893デフォルトの名無しさん
2010/03/23(火) 11:42:200894デフォルトの名無しさん
2010/03/23(火) 11:47:19C*用のライブラリ完備されてるからな
C*に標準で付ける必要は全く感じない
0895デフォルトの名無しさん
2010/03/23(火) 11:50:230896デフォルトの名無しさん
2010/03/23(火) 11:55:22お前に必要なのはC++0xじゃなくて病院。
0897デフォルトの名無しさん
2010/03/23(火) 11:58:22今まで特殊化して下請templateに任せていたものが、
auto一発で済むケースが多々ある。
0898デフォルトの名無しさん
2010/03/23(火) 12:36:030899デフォルトの名無しさん
2010/03/23(火) 12:39:060900デフォルトの名無しさん
2010/03/23(火) 13:12:42キモス
0901デフォルトの名無しさん
2010/03/23(火) 13:36:55宣言内の関数のローカル変数にアクセスってのはもちろん無理だよな
C#ではクラスの関数内のローカル変数に、その関数で作ったスレッドがアクセスする形で
非同期処理書いたりいろいろお世話になってるんだがC++だとそこまでは無理だよな
日本語でおkって感じだww
具体的にはこういうこと
まぁ普通に考えたら無理だわな
つかスレチ
void func()
{
int test = 0;
Thread thread = new Thread( 匿名関数
{
非同期処理。ローカル変数testにアクセスできるため、
わざわざ構造体作って渡したりする必要がない。解放忘れもない
} );
}
0902デフォルトの名無しさん
2010/03/23(火) 13:40:570903デフォルトの名無しさん
2010/03/23(火) 14:01:570904デフォルトの名無しさん
2010/03/23(火) 16:12:53s/無理/可能/
とすれば大体あってる。
0905904
2010/03/23(火) 16:14:30s/無理/可能/g
0906デフォルトの名無しさん
2010/03/23(火) 20:43:05void func()
{
int test = 0;
Thread thread = new Thread( [test]()
{
while(1){test++;}
} );
}
ってか?
ダメだよこれ
0907デフォルトの名無しさん
2010/03/23(火) 21:01:34C++0x予習中の俺が言ってみる。
0908デフォルトの名無しさん
2010/03/23(火) 21:11:440909デフォルトの名無しさん
2010/03/23(火) 22:00:16現時点で、規格や、コンパイラ付属のドキュメントが読めんなら、
規格が制定されて、入門書が出版されるまで、おとなしく指くわえて待っとけ。
0910デフォルトの名無しさん
2010/03/23(火) 22:13:29それ以前に>>901はC#のスタックとヒープの扱いを理解できてないように見えるがスレチ
0911デフォルトの名無しさん
2010/03/23(火) 22:16:35馬鹿は大人しく黙っとけ
0912デフォルトの名無しさん
2010/03/23(火) 23:00:24良くまとめてあるよ。
0913デフォルトの名無しさん
2010/03/24(水) 00:55:18逆に覚えてた
まあ
void func()
{
int test = 0;
Thread thread = new Thread( [&test]()
{
while(1){test++;}
} );
}
だとしてもダメだけどな
未定義動作だ
0914デフォルトの名無しさん
2010/03/24(水) 01:44:270915デフォルトの名無しさん
2010/03/24(水) 01:46:390916デフォルトの名無しさん
2010/03/24(水) 04:46:170917デフォルトの名無しさん
2010/03/24(水) 08:34:140918デフォルトの名無しさん
2010/03/24(水) 10:54:48std::thread* func() {
std::shared_ptr<int> test(new int(0));
return new std::thread([test]() { while (true) { ++(*test); std::cout << *test << std::endl; } });
}
0919デフォルトの名無しさん
2010/03/24(水) 13:37:17同様の機能を提供する何かは欲しい感じ.
ライブラリレベルでおそらく間に合う類のものだけれど.
0920デフォルトの名無しさん
2010/03/24(水) 18:03:10boostのthreadと仕様が同じなら、funcの戻りはスレッドはshared_ptr<thread>で返していいと思う。
戻りがいらなければそのまま捨てられるし。スレッドが終わる前にthreadがdeleteされてもスレッドは最後まで実行するし、待ちたければjoinすればいいし。
0921デフォルトの名無しさん
2010/03/24(水) 19:14:19ただ、このような注意書きがあるだけ。
[ Note: Either implicitly detaching or joining a joinable() thread in its destructor could result in
difficult to debug correctness (for detach) or performance (for join) bugs encountered only when an
exception is raised. Thus the programmer must ensure that the destructor is never executed while the
thread is still joinable. ?end note ]
0922デフォルトの名無しさん
2010/03/24(水) 22:26:320923デフォルトの名無しさん
2010/03/24(水) 22:27:180924デフォルトの名無しさん
2010/03/25(木) 18:51:19ラムダを使って↓こんな感じのことをしたいのだが、ムリなんだろうか。
template <typename F, typename... Args>
F test(F f)
{
return [f](Args... args) { return f(std::forward<Args>(args)...); };
}
0925デフォルトの名無しさん
2010/03/25(木) 19:29:05アイディアとしては、なかなか面白いんだが、問題が二つある。
1. そのコードでは、Argsをdeduceできない。
2. lambda式の具体的な型を得る方法がないので、クロージャオブジェクトを、戻り値として返すことはできない。
std::functionなどに入れて返す必要がある。
0926デフォルトの名無しさん
2010/03/25(木) 19:41:230927デフォルトの名無しさん
2010/03/25(木) 19:55:33template <typename F> F test(F f) { return f; }
で我慢する。
0928デフォルトの名無しさん
2010/03/26(金) 13:37:09と
std::valarray<T>
の使い分けが分かりません。
どこかに思想とか書いてありますか?
以前から
valarray<valarray<double>>
とか書く人をみて、どうかと思っていたのですが・・・。
0929デフォルトの名無しさん
2010/03/26(金) 13:44:25コンテナとして読み書きの速度が違ったりするのでしょうか?
という質問です。
0930デフォルトの名無しさん
2010/03/26(金) 14:28:380931デフォルトの名無しさん
2010/03/26(金) 15:04:23○ std::array<T, N>
arrayは固定長(配列のラッパー)
valarrayは可変長
普通は速度云々で使い分けるものじゃない。
0932デフォルトの名無しさん
2010/03/26(金) 16:19:27あれは、中途半端なまま規格入りしたできの悪いライブラリだ。
0933デフォルトの名無しさん
2010/03/26(金) 18:30:41使ってはいけない糞標準ライブラリのリストが欲しい所だ
つーか糞と分かった時点でさっさとAnnexDにぶち込んでくれよ
0934デフォルトの名無しさん
2010/03/26(金) 19:21:110935デフォルトの名無しさん
2010/03/26(金) 19:31:130936デフォルトの名無しさん
2010/03/26(金) 19:47:420937デフォルトの名無しさん
2010/03/26(金) 20:00:59無茶言うなよw
0938デフォルトの名無しさん
2010/03/26(金) 20:04:32言語規格からboolの特殊化部分を削除すればいい。
0939デフォルトの名無しさん
2010/03/26(金) 20:05:450940デフォルトの名無しさん
2010/03/26(金) 20:19:43なるほど、こうか。これは使える。
class Bool
{
bool a;
public:
Bool()
:a(false)
{
}
operator bool()const
{
return a;
}
bool operator !()const
{
return !a;
}
Bool& operator=(const bool b)
{
a=b;
return *this;
}
};
vector<Bool> c;
0941デフォルトの名無しさん
2010/03/26(金) 20:23:46スマポが長らく無かったのも「shared_ptr?欲しいなら自分で作ればいいんだよ。」がスタンスなんだね。
0942デフォルトの名無しさん
2010/03/26(金) 20:44:45> 「shared_ptr?欲しいなら自分で作ればいいんだよ。」がスタンスなんだね。
「boostにあるだろ」が正しい。
一部のウィザード以外には。
0943デフォルトの名無しさん
2010/03/26(金) 22:07:120944デフォルトの名無しさん
2010/03/26(金) 22:09:30> C++って、なんでこの変な仕様はほったらかしなの?
腰が重いから。
その腰の重さがまたC++の良い所。
0945デフォルトの名無しさん
2010/03/26(金) 22:09:510946デフォルトの名無しさん
2010/03/26(金) 22:19:35shared_ptrやオブジェクト指向自体もそうだけど、
他人には使わせたいが、自分では使うべきではない。
何故かってそりゃお前、、、
世の中罠だらけでまいっちまうな。偉い人たちはうまい事考えるもんだ。
0947デフォルトの名無しさん
2010/03/26(金) 22:25:13> 他人には使わせたいが、自分では使うべきではない。
> 何故かってそりゃお前、、、
????
0948デフォルトの名無しさん
2010/03/26(金) 22:39:22足止めだよ、これ、足止めだよ。正解とは程遠いよ、詭弁だよ、こんなの。
分かりやすい物に飛びついちまった事への罰だよ。
0949デフォルトの名無しさん
2010/03/26(金) 22:43:35深呼吸して、はーい いちにのさん
落ち着いたか?
0950デフォルトの名無しさん
2010/03/26(金) 22:44:14> しかもバカは伝染するし、プログラマは庶民的な人が多いから、なおさら。
> 足止めだよ、これ、足止めだよ。正解とは程遠いよ、詭弁だよ、こんなの。
?
すまんが何を言っているのか俺の日本語読解力では分からん。
バカの伝染と庶民的な人と, あるいは正解と遠いことと詭弁と
どの点で対比しているの?
Linusの言葉を読めばいいんすか?
0951デフォルトの名無しさん
2010/03/26(金) 22:46:190952デフォルトの名無しさん
2010/03/26(金) 22:49:31確かに、C++0xの仕様を見るとwwうぇっうぇっwってなる気分は分かるが。
0953デフォルトの名無しさん
2010/03/26(金) 22:56:02きっと逃げ出しちゃったんだよ。だから0xはこんな感じだし、こんなに悲しいことは無いね。
そういえばC++にやたら詳しいニートみたいな奴が居たよな。
本書くから金よこせって奴。詭弁に詭弁を重ねるカス野郎。
あんなのと相性が良いのがC++だというのなら、
オブジェクト指向はバカの思考回路を具現化したものなのかもしれないね。
俺も自分で、「よくこんな無茶苦茶書くな」、とは思うよ。
でも半分ぐらいは当たってるのだろうから困る。
0954デフォルトの名無しさん
2010/03/26(金) 22:58:48もはやバカと餓鬼どもの遊び道具になっちゃってるよ、この言語。
悲しくて悲しくて。言葉を遊び道具にするなよなー。
0955デフォルトの名無しさん
2010/03/26(金) 23:00:27C++がどうなろうと悲しくは無いぞ。
0956デフォルトの名無しさん
2010/03/26(金) 23:02:56いい加減引退しろよ
0957デフォルトの名無しさん
2010/03/26(金) 23:07:540958デフォルトの名無しさん
2010/03/26(金) 23:12:51オブジェクト指向も書けるってだけで
0959デフォルトの名無しさん
2010/03/26(金) 23:13:01自分は腹の中でバカにしながら・・・
もう世の中そんななのか?
>>956
新しいと見せかけて、実は古風なパラダイムだから困る。
でも頭いい人は、古風なパラダイムを使いながらも、
その実全然ちがったパラダイムで組み立ててたりするからこまる。
一見ではそこの微妙な差に気づけない。こりゃバカが騙されるわけだ。
本当、巧妙で、ただただ感心するばかり。
うまいこと檻に閉じ込めておくものだなぁ。
0960デフォルトの名無しさん
2010/03/26(金) 23:14:150961デフォルトの名無しさん
2010/03/26(金) 23:15:140962デフォルトの名無しさん
2010/03/26(金) 23:17:520963デフォルトの名無しさん
2010/03/26(金) 23:19:42ニートみたいな奴じゃなくてニートだと思うが。
本を出版した瞬間にニートじゃなくなるが、
するまではニートだ。
0964デフォルトの名無しさん
2010/03/26(金) 23:27:340965デフォルトの名無しさん
2010/03/26(金) 23:31:34> 無職じゃなくても無職
なんじゃそれは
0966デフォルトの名無しさん
2010/03/27(土) 00:06:18「を馬鹿にできない」が後ろに付きます
0967デフォルトの名無しさん
2010/03/27(土) 00:08:06ぐうの音がでないくらいまでたたきつぶせばよかったんだけどね
せっかく3方向で包囲してたんだし
0968デフォルトの名無しさん
2010/03/27(土) 00:28:34新スレよろ
0969デフォルトの名無しさん
2010/03/27(土) 00:48:580970デフォルトの名無しさん
2010/03/27(土) 01:01:540971デフォルトの名無しさん
2010/03/27(土) 01:51:24有益な情報を何一つよこさない
おまえよりはまし
0972デフォルトの名無しさん
2010/03/27(土) 02:14:26http://pc12.2ch.net/test/read.cgi/tech/1269623636/
0973デフォルトの名無しさん
2010/03/27(土) 09:45:07・type_indexさん
・System error supportさん
・Tupleさん
・Binder姉妹(bind1st,bind2nd)
・Function template bindさんと、Polymorphic function wrapperさん
・Time utilitieさん
・Compile-time rational arithmetic君
について書き下ろし中だから書き込んじゃダメだよ。
0974デフォルトの名無しさん
2010/03/27(土) 10:12:260975973
2010/03/27(土) 10:22:40でもいいじゃん、俺みたいな初心者には
(使い方は分からないけど)現状は分かりやすいから
・type_indexさん
・System error supportさん
・Tupleさん
・Binder姉妹(bind1st,bind2nd)
・Function template bindさんと、Polymorphic function wrapperさん
・Time utilitieさん
・Compile-time rational arithmetic君
についても頼みますどなたか。
0976デフォルトの名無しさん
2010/03/27(土) 11:39:45乙って書いちゃったよ
0977デフォルトの名無しさん
2010/03/27(土) 12:33:48そいつらはネタが思い付かんかったんや
0978973
2010/03/27(土) 13:32:030979デフォルトの名無しさん
2010/03/27(土) 14:50:420980デフォルトの名無しさん
2010/03/27(土) 14:57:59があるだろう。そもそもデストラクタを単体で呼べて苦労もないのにわざわざ対称性を維持するのが意味不明。
というかdelete(mem) p;ってなんだよ。memとpでどっちをdestructすればいいだよ。
0981デフォルトの名無しさん
2010/03/27(土) 15:04:16わかってないこと自信満々に書き込まない方がいいよ
0982デフォルトの名無しさん
2010/03/27(土) 15:08:57delete(mem) p;
free(mem);
って感じになるんかも。
0983デフォルトの名無しさん
2010/03/27(土) 15:09:03p->~Hoge() ;
memの参照先を、自己責任の方法で、開放するのだ。
まあ、自前のallocator書け。
placement deleteなどがなく、また、deleteに追加の引数を渡せない理由に関しては、思想的なものだ。
メモリを確保するときには、あらゆる情報がわかっているが、
開放するときには、たいてい、そういう情報は分からない。
だいたい、ベースクラスへのポインタしかないってこともあるだろ。
そもそも、ユーザーが明示的にdeleteを書くべきではない。
0984デフォルトの名無しさん
2010/03/27(土) 15:10:45http://www2.research.att.com/~bs/bs_faq2.html#placement-delete
0985デフォルトの名無しさん
2010/03/27(土) 15:12:37placement deleteを実装しようとすると生ポインタにdtorの型情報を入れないといけないからオーバーヘッドが増す。
0986デフォルトの名無しさん
2010/03/27(土) 15:31:33え?
delete (args) obj を (obj->~T(), operator delete (obj, args)) に置き換えるだけの
シンタックスシュガーで済むでしょ。
0987デフォルトの名無しさん
2010/03/27(土) 15:51:11デストラクタとoperator delete (p, arg, ...)を自動で呼び出してくれるdelete (arg) pが無いのがいやだって言いたかったんだけど・・・
生メモリの開放とかそういうことは関係ない話だよ
0988デフォルトの名無しさん
2010/03/27(土) 17:13:57対象性を持たせるならコンストラクタ側だ。
hoge* a=reinterpret_cast<hoge*>(mem);
a->hoge(); //これをできるようにする。
a->~hoge();
0989デフォルトの名無しさん
2010/03/27(土) 17:16:35構築子に開放処理も書かないといけないから、あんまりそうなってほしくないな。
0990デフォルトの名無しさん
2010/03/28(日) 11:43:46プログラマの責任で出来るようにして欲しいね。
それでなくても罠だらけなんだから、いまさらどうってこと無いだろ。
a->hoge();
a->~hoge();
a->hoge();
a->~hoge();
ってしたいし、
hoge(){...}
hoge( const hoge &r )
{
hoge();
...
}
ってしたい。
0991デフォルトの名無しさん
2010/03/28(日) 11:55:23Hoge *p = (Hoge *)malloc(sizeof(Hoge)); p->ctor(); p->dtor(); free(p);
うーん
0992デフォルトの名無しさん
2010/03/28(日) 12:02:21チェックしよう、みたいなイディオムが流行りそうなんで勘弁してくれ
0993デフォルトの名無しさん
2010/03/28(日) 12:03:17メンバ変数に参照とか持ってたりすると問題が出てくるからとか?
0994デフォルトの名無しさん
2010/03/28(日) 12:04:31下のは
hoge( const hoge &r ) : hoge()
{
...
}
なら0xで出来るよ
0995デフォルトの名無しさん
2010/03/28(日) 15:59:48> それでなくても罠だらけなんだから、いまさらどうってこと無いだろ。
俺が死ぬから勘弁してくれ
0996デフォルトの名無しさん
2010/03/28(日) 16:50:39コンストラクタはオブジェクトを作成する時に呼ぶものだから。
既にオブジェクトがあるのにオブジェクトを作成する時に呼ぶコンストラクタを呼ぶのは
ナンセンスというか、危険。
コンストラクタはメンバを初期化する処理なわけだが、
この時代入とは異なり、「メンバが未初期化である」ことを前提にしている。
例えばメモリを確保するようなクラスでは、
コンストラクタでは新たにメモリを確保すればいいだけだが、
代入では古いメモリを開放してから新しいメモリを確保する
(あるいは古いメモリをそのまま利用する)という処理になる。
途中でいきなりコンストラクタを呼べてしまうと、
古いメモリが開放されないまま新たにメモリを確保することになり、メモリリークする。
このように、コンストラクタは未初期化のオブジェクトに対して実行されることを前提にしており、
途中で呼べると危険なので、明示的に呼び出せないようになっている。
デストラクタが明示的に呼べるのは、
デストラクタはオブジェクトが存在していることを前提とした処理だから
別に呼べても構わないよねということ。
ただ、そのままだとオブジェクトの寿命が尽きた時にもう一度デストラクタが呼ばれちゃうけど。
どうしてもコンストラクタを後から呼び出したい場合は、placement newを使う。(#include <new> が必要)
Hoge hoge;
hoge->~Hoge();
new (&hoge) Hoge(); ←コンストラクタを呼ぶ
このようにデストラクタを呼ぶ事で「未初期化の状態」にしてやれば
コンストラクタを呼んでいい状態になるので、
その状態でplacement newを使えばコンストラクタを呼べる。
あとはstd::vectorみたいに一旦char配列で確保しておいて
placement newでコンストラクトするといった風に使う事もある。(というかこっちが普通の使い方)
0997デフォルトの名無しさん
2010/03/28(日) 17:00:150998デフォルトの名無しさん
2010/03/28(日) 17:16:15もう行数制限近くて説明難しいし
0999デフォルトの名無しさん
2010/03/28(日) 17:18:491000デフォルトの名無しさん
2010/03/28(日) 17:20:3310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。