C++0x 7
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2009/09/18(金) 22:26:17http://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/
0002デフォルトの名無しさん
2009/09/18(金) 22:27:460003デフォルトの名無しさん
2009/09/18(金) 22:34:150004デフォルトの名無しさん
2009/09/18(金) 22:36:020005デフォルトの名無しさん
2009/09/18(金) 22:37:59○コンセプトさん
ついに一度も登校することなくお星様になってしまった。
この事件によって学園に激震が走り、入学式が一年延期になる事態に。
彼女の再起はあるのだろうか。
○ラムダさん
コンセプトさんに代わって新入生代表に抜擢されることに。
だが服が汚い上デザインが二転三転してるのでよくいじめられる。
コンセプトさんと同じ目に遭わないかと内心ビクビクもの。
○右辺値参照さん
一足先に本格的な通学を始めつつある新入生。
よく出来た子として先生方には評判が高いが、
気難しいので普通の生徒たちからは敬遠されている。
○拡張for文さん
forさんの妹。コンセプトさん問題の一番の被害者。
きったない服で通学することになりテンションガタ落ち中。
○type_traitsさん
ライブラリ科の新入生。
コンセプトさんの代役としてにわかに注目を集め始めた。
思わぬスポットライトに浮かれすぎで最近テンションがやばい。
○static_assertさん
type_traitsさんの相方としてこちらも注目を集める新入生。
面倒な相手との仕事が増えそうで最近憂鬱。
assertさんの妹だが、マクロ科と予約語科の立場の違いで仲が悪い。
0006デフォルトの名無しさん
2009/09/18(金) 22:38:09vectorさんが泣いて喜ぶコンテナ部悲願の新人。
だが似たような服を着た生徒が元から多いので、一部では
「またややこしい奴が来た」と陰口を言われているらしい。
○テンプレート可変長引数さん
テンプレ部が泣いて喜ぶ期待の新人。部の熱狂的な歓迎ぶりと
「変態が増えた」と嘆く周囲の温度差に困惑中。
stdargさんとは顔がよく似てるが血の繋がりはない。
○autoさん
地味で消えそうだった子が一転、イメチェンで今やモテモテに。
そのあまりの変貌ぶりに周囲は戸惑いを隠せない。
最近まで同じ立場だったregisterさんの胸中はいかに…
○decltypeさん
autoさんの妹の新入生。姉が記憶クラス科にいた過去は知らない。
姉に劣らぬ人気者だが、服装のちょっとした違いで性格が変わる面倒な一面も。
○ユーザー定義リテラルさん
「わかりにくい」「見るからにきもい」「関数さんでいいじゃん」と
すこぶる評判の悪い新入生。強く生きていって欲しい。
○nullptrさん
「今さら来られても……」「なんで今までいなかったの?」という
心ない陰口に傷ついている地味な新入生。
○long longさん
え?新入生だったの?
○禿
校長先生。
0007デフォルトの名無しさん
2009/09/18(金) 22:46:04乙
0008デフォルトの名無しさん
2009/09/18(金) 22:54:08ここで爆笑した
0009デフォルトの名無しさん
2009/09/18(金) 22:57:04なんだかよく分からないアクセサリーを頭とお尻に付けている。
しかもアクセサリーは日替わり。
・auto_ptrさん
落第。一応、まだ学校にはいる。
・unique_ptrさん
auto_ptrさんを蹴落として進級してきた。
・Smart pointerさん
とても頭がいいが、循環参照も扱えるかどうかは、学校によって異なる。
・Unordered associative containerさん
いつも、とても大きなカバンを引きずっている。
ただし、カバンから物を取り出すのはとても早い。
・Regular expressionさん
頭は良いらしいのだが、何を言っているのかよく分からない。
周囲からは中二病だと思われている。
・Atomic operationさん
細かいことばかり気にしている神経質な子。
口癖は、「だってその可能性はゼロじゃないし〜」
・threadさん
カバンも持たずに登校してくるミニマリスト。
ペンと紙一枚あればそれで十分でしょと言い張る。
どうしようもないときは、魔法の言葉、「ねぃてぃぶ・はんどる〜」を唱えると、とりあえず何とかなる。
0010デフォルトの名無しさん
2009/09/18(金) 23:13:33type_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さんと仲が良いらしい。
0011デフォルトの名無しさん
2009/09/18(金) 23:21:05あとは擬人化だ
絵師を呼べ!
0012デフォルトの名無しさん
2009/09/18(金) 23:30:46range-based forとかuser defined literalsは、このままだと問題が多いと思うけれど。
0013デフォルトの名無しさん
2009/09/18(金) 23:35:16括弧のことか。
0014デフォルトの名無しさん
2009/09/19(土) 02:35:20user defined literals の問題って何?
0015デフォルトの名無しさん
2009/09/19(土) 03:22:07ユーザー定義リテラルの名前は必ずアンダースコアから始まらなければならない。
ただし、アンダースコア二つ、アンダースコアに続いて大文字の名前は予約されているので使えない。
じゃあ、アンダースコア一つに小文字か数字ならオッケーかというと、
アンダースコア一つから始まる名前は、グローバル名前空間において、予約されているので、注意が必要。
だから、現行のドラフトを忠実に守ろうとすると、
ユーザー定義リテラルは、必ず何らかの名前空間の中で定義しなければならない。
そして、実際に使う時は、そのスコープの中で、using directiveやusing declarationすることになる。
けど、誰がそこまで深く考えるかね。
後々互換性の問題が発生しそうで怖い。
0016デフォルトの名無しさん
2009/09/19(土) 03:55:29これか。
17.6.3.3.5 User-defined literal suffixes
> Literal suffix identifiers that do not start with an underscore are reserved for future standardization.
しかし
> じゃあ、アンダースコア一つに小文字か数字ならオッケーかというと、
> アンダースコア一つから始まる名前は、グローバル名前空間において、予約されているので、注意が必要。
これが問題になるとは思わんな。
たとえば int operator "" _x (int n) で宣言される literal operator の「名前」は
operator "" _x であって、 _x じゃない。じゃあ _x は何なのかというと、
literal operator の名前の一部となる literal suffix identifiers と呼ばれるもの。
literal suffix identifiers に _X や __x を使うと、処理系定義のマクロやキーワードに
該当してしまう可能性があるのでアウトだけど、 _x であれば処理系定義の ::_x が
存在しても2つの名前 ::operator "" _x と ::_x は衝突しない。
ただ、確かに「アンダースコアつけないとダメ」と言いながらアンダースコアと大文字は
アウトってのは _MB とかうっかり使っちゃう人が多そうで、いやらしいルールだとは思うね。
自前の名前空間内ならアンダースコア無しのやつを使えるように、
「literal suffix identifiers の予約はグローバルな literal operator だけ」って明示して
もらうといいのかな?
0017デフォルトの名無しさん
2009/09/19(土) 04:42:550018デフォルトの名無しさん
2009/09/19(土) 05:00:003 Basic concepts p4 より、 name の定義。
> A name is a use of an identifier, operator-function-id,
> conversion-function-id, or template-id that denotes an entity or
> label.
これによると、 literal suffix identifier は name じゃないね。
続く p8 にはこんな記述もある。
> Two names are the same if
...
> - they are the names of literal operators formed with the same
> literal suffix identifier.
この記述からも literal suffix identifier は literal operator の name の
一部であると考えられる。
0019デフォルトの名無しさん
2009/09/19(土) 05:03:38_で始まらないユーザ定義リテラルが予約されるのはライブラリ的な都合ではなく
将来のバージョンのC++における字句解析の都合じゃないんかね。
0020デフォルトの名無しさん
2009/09/19(土) 05:16:52そういう用途も考えられてるかもしれないけど、たとえばライブラリ内の
クラスである std::string を返すようなユーザ定義リテラルを字句解析の
レベルに置くようなことは考えにくいわけで、ライブラリ的な都合ではない
と言うのは当たらないと思う。
そもそも、名前の予約がライブラリ的な都合なのか字句解析の都合なのか
というところは使う側にしたらどうでもいいような気もする。
0021デフォルトの名無しさん
2009/09/19(土) 05:34:10でもさ、13.5.8にこう書いてあるんだよね。
13.5.8 User-defined literals
literal-operator-id:
operator "" identifier
1 The identifier in a literal-operator-id is called a literal suffix identifier.
これは、普通に解釈すれば、
literal suffix identifierであると同時に、identifierでもあるんだよね。
ということはやはり、nameなんじゃないの。
0022デフォルトの名無しさん
2009/09/19(土) 05:37:290023デフォルトの名無しさん
2009/09/19(土) 06:02:11literal suffix identifier が identifier なのは当然だけど、
identifier 単体が name であるためには、 >>18 で挙げた定義により
その identifier が "an entity or label" を示すものでなければいけない。
entity は、同じく 3 Basic concepts p3 で以下のように定義される。
> An entity is a value, object, variable, reference, function,
> enumerator, type, class member, template, template specialization,
> namespace, parameter pack, concept, or concept map.
int operator "" _x (int n) という宣言があっても、 _x という
識別子だけでは "an entity or label" に含まれるどれも指さない。
従って _x は(少なくとも Basic concepts で定義される範囲では) name ではない。
17.6.3.3 Reserved names では name の意味が Basic concepts で定義される
ものとは違うようで、ここにも混乱のもとがあるみたい。
0024デフォルトの名無しさん
2009/09/19(土) 06:05:39だから、何らかの名前空間の中で使う分には、規格上、まったく問題はない。
問題は、user defined literalsの性格上、名前空間の中に入れると、使うのが面倒になるということだ。
なにしろ、ADLなど働きようがないからね。
すると、使う際に、using directiveかusing declarationを使うしか方法がない。
更に厳密に考えると、using directiveを使うのも問題になってくる。
処理系は、ユーザー定義リテラルに使える名前はすべて、グローバル名前空間で使っている可能性がある。
それこそ、処理系は独自のユーザー定義リテラルを提供することだって、規格上、合法かつ安全にできるわけだ。
using directiveを使うと、名前が衝突した場合、曖昧になってしまう。
すると確実に安全なのは、using declarationを使って、一個ずつ宣言していくしかない。
// 処理系は、独自のユーザー定義リテラルを、グローバル名前空間に提供しているかも知れない。
int operator ""( const char* ) _a ;
namespace foo {
int operator ""( const char* ) _a ;//実際のライブラリでは、もっとたくさん提供されている。
}
void f() {
// using directiveを使うと、実際に_aを使おうとした時に、曖昧でエラーになる。
using foo::operator "" _a ;// 以下、必要な名前を、いちいち全部列挙。
auto a = "ハーゲー パーゲー こんなのやーだー 髪の毛 去ってゆくー"_a ;
}
現行規格を真面目に守ろうとすると、簡単のため、ライブラリ側で、必要な複数のusing declarationに展開されるマクロを提供されるのが一般的になると思う。
ユーザーは、おまじないとして、関数内などで、そのマクロを先頭に記述することになるだろう。
最悪なのは、Joe Coderがこの辺のことをわきまえず、規格違反のコードが世にあふれ、後のリテラルの規格改定に影響を及ぼすこと。
0025デフォルトの名無しさん
2009/09/19(土) 06:17:12あー、たしかにuser defined literalの識別子だけでは、entityたりえないようだなぁ。
すると、user defined literalの識別子は、予約語の制約を無視できるという事になるのか。
0026デフォルトの名無しさん
2009/09/19(土) 06:25:33「グローバル名前空間内の名前」についての予約名は無視できるけど、 >>16 に
あるとおり _X や __x はやっぱりダメなんで、微妙な隙間を使うことしか許されていない
という嫌な状況であることにはちがいない。↓この部分ね。
> 規格違反のコードが世にあふれ、後のリテラルの規格改定に影響を及ぼすこと。
0027デフォルトの名無しさん
2009/09/19(土) 06:30:250028デフォルトの名無しさん
2009/09/19(土) 06:30:59ごめん。なぜアンダースコア二つから始まる名前、及びアンダースコアひとつに大文字で始まる名前がダメなんだ?
user defined literalの識別子は「名前」じゃないんだろ?
0029デフォルトの名無しさん
2009/09/19(土) 06:42:00そいつらは "reserved to the implementation for any use" ということで、
処理系定義のマクロやキーワードとして使われている可能性があり、
該当する場合はそもそも文法上の identifier として認識されない可能性もある。
その場合はパース時点で >>21 にある構文にマッチしなくなる。
0030デフォルトの名無しさん
2009/09/19(土) 06:43:34規格上は、関係ないのでは。何しろ、名前じゃないんだから。
003130
2009/09/19(土) 06:45:300032デフォルトの名無しさん
2009/09/19(土) 06:45:43もうない。
>>5-11
よそでやれ。
>>28
03 の頃から決まってる。
0033デフォルトの名無しさん
2009/09/19(土) 07:13:32言いたいことがよくわからない。
「それは処理系の都合」の「それ」って何?
「大方の処理系はそうだろう」の「そう」って何?
「規格上は、関係ないのでは」の「関係ない」って何と何の話?
0034デフォルトの名無しさん
2009/09/19(土) 11:54:17直接コードにリテラルを書くと保守性が悪くならない?
0035デフォルトの名無しさん
2009/09/19(土) 13:05:50ひとつ上のレスに対してのレス。
現実の処理系の実装どうあれ、
規格上では、名前に対しての予約語であるから、
user defined literalにまでは及ばないという話。
0036デフォルトの名無しさん
2009/09/19(土) 14:25:15>>23 の最後にも書いてあるけど、 17.6.3.3 Reserved names では "name" が
マクロ名も含むなど、 Basic concepts で定義される "name" と違う意味でも
使われている。このため、厳密に読もうとすると、破綻している。
name の定義が見直されたのはわりと最近で、以前から identifier と name は
混同されがちであったことから、その混乱の一部と考えられる。
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#485
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#719
C99 のほうを見ると "7.1.3 Reserved identifiers" となっていて識別子に
ついて予約が行われている。これに倣って C++ の 17.6.3.3 も全面的に
書き直すのがよさそう。
そもそも name と macro name がオーバーラップしない別物として定義されて
いるあたりも問題な気がする。
0037デフォルトの名無しさん
2009/09/19(土) 20:05:44たしかに書き直して欲しいね。
0038デフォルトの名無しさん
2009/09/19(土) 20:07:03C++0xがどれだけつかえるのかと思えば・・・
あんまりだね
Windows7対応かとおもったら、ビルドした実行プログラムが
とまってたやつ修正だけか
0039デフォルトの名無しさん
2009/09/19(土) 20:31:43intel c++ 11.1のhelpにはrvalueが使えそうに書いてあるので、試したけどどうもうまく動かないのはなぜ?
class A
{
int a1;
int a2;
};
void test(A&& s) //ここの2個目の&でエラーが出る。
{
}
0040デフォルトの名無しさん
2009/09/20(日) 00:30:04右辺値つかえそうな記述とかあった?ないと思うよ
autoとラムダぐらいじゃないの?
テンプレートらへんも全然だったし・・・
0041デフォルトの名無しさん
2009/09/20(日) 00:51:03これじゃ意味がわからんだろ。右辺値参照って言えよ。
0042デフォルトの名無しさん
2009/09/20(日) 02:57:10http://wiki.apache.org/stdcxx/C++0xCompilerSupport
0043デフォルトの名無しさん
2009/09/20(日) 03:00:51> we'll be supporting the rvalue feature in our next major release.
だそうだ
0044デフォルトの名無しさん
2009/09/20(日) 09:01:530045デフォルトの名無しさん
2009/09/20(日) 10:00:50次のバージョンでサポートされるんですね。
コードに突込みが入らなかったので使い方はそれでよさそうか。
ありがとうです。
0046デフォルトの名無しさん
2009/09/20(日) 11:57:49オーバラップうんぬんはどういうこと?
名前空間的な話?
そんなのいまさら変えられないでしょ。
予約語をきっちり定義すればいいだけの話。
0047デフォルトの名無しさん
2009/09/20(日) 12:03:59常識的に考えて "name" ⊃ "macro name" なんだが、 C++ 標準規格の中では
それらはまったくの別物であって、わかりにくい、ということ。
0048デフォルトの名無しさん
2009/09/20(日) 13:37:48初心者の頃にCreateWindowでハマった数日を返せと
0049デフォルトの名無しさん
2009/09/20(日) 18:07:18constexpr があれば static const の代替としても使えるのかな?
あと、In-class member initializers は無名クラスの
メンバー初期化にも使えると考えてよい?
0050デフォルトの名無しさん
2009/09/20(日) 18:43:20static constで修飾したものの完全な代替として使えるわけじゃない。
0051デフォルトの名無しさん
2009/09/20(日) 18:49:170052デフォルトの名無しさん
2009/09/20(日) 18:51:520053デフォルトの名無しさん
2009/09/20(日) 18:56:54言語の枠内でconstexprとして実装できない以上、
ライブラリ関数の仕様として要求すべきじゃないんじゃないかな。
コンパイル時に計算されてほしいってだけなら、
最近のgccはmfprだかgmpだかを組み込んで出来るようになってるみたいだね。
0054デフォルトの名無しさん
2009/09/20(日) 19:59:590055デフォルトの名無しさん
2009/09/20(日) 20:03:220056デフォルトの名無しさん
2009/09/20(日) 20:24:290057デフォルトの名無しさん
2009/09/20(日) 22:40:28意味わかってくれてありがとう
0058デフォルトの名無しさん
2009/09/20(日) 22:58:14ぶっちゃけPerlとかで定数埋めたソースを生成した方がマシだと思うな
というか、boostのソース眺めてたら実際に生成用のPerlが落ちてて笑った
0059デフォルトの名無しさん
2009/09/20(日) 23:11:240060デフォルトの名無しさん
2009/09/20(日) 23:22:270061デフォルトの名無しさん
2009/09/20(日) 23:25:200062デフォルトの名無しさん
2009/09/20(日) 23:59:240063デフォルトの名無しさん
2009/09/21(月) 09:39:400064デフォルトの名無しさん
2009/09/21(月) 10:19:220065デフォルトの名無しさん
2009/09/21(月) 10:36:310066デフォルトの名無しさん
2009/09/21(月) 12:52:500067デフォルトの名無しさん
2009/09/21(月) 13:01:060068デフォルトの名無しさん
2009/09/21(月) 13:59:400069デフォルトの名無しさん
2009/09/21(月) 14:03:070070デフォルトの名無しさん
2009/09/21(月) 14:15:180071デフォルトの名無しさん
2009/09/21(月) 14:23:57return (next>0?next:-next) > epsilon ? fseries_impl(x, part+next, f(x, k), epsilon, k+1) : part;
}
//Σ[k=0...∞]f(x,k)
constexpr fseries(double x){
return fseries_impl(x, 0, f(x,0), 0.000000001, 0);
}
意外と面倒臭いすなあ
0072デフォルトの名無しさん
2009/09/21(月) 20:10:33そんなもんじゃね
0073デフォルトの名無しさん
2009/09/21(月) 22:32:130074デフォルトの名無しさん
2009/09/21(月) 22:35:23char,int,float,double用に関数を何個も作らなくてもいいんだぜ!えっへん
0075デフォルトの名無しさん
2009/09/21(月) 22:36:490076デフォルトの名無しさん
2009/09/21(月) 23:10:25Template Metaprogramming
Boost.MPL
どれも日本語の情報少ないよね。
0077デフォルトの名無しさん
2009/09/21(月) 23:15:03template<typename T, typename U>
result_type min(T x, U y) {return x < y ? x : y;}
さて、result_typeの部分にはなんと書いたらいいんだろうという話から始まるんだよ、きっと。
0078デフォルトの名無しさん
2009/09/21(月) 23:30:09と
C++ Template Metaprogrammingは原著で我慢するから、
C++0x対応のテンプレート本が出たときには早く和訳してくれ
0079デフォルトの名無しさん
2009/09/21(月) 23:33:260080デフォルトの名無しさん
2009/09/21(月) 23:35:590081デフォルトの名無しさん
2009/09/21(月) 23:57:53C++ Templatesぐらいの厚みのあるページ数で解説しないといけないわけだが。
0082デフォルトの名無しさん
2009/09/22(火) 02:30:29割と典型的なパターンは決まってる気もするけど
まぁパターンで教えちゃっていいんですかって話ではあるけど、関数の呼び出し規約
とかしっかり把握させる教科書も無い訳だから別にいいような気もしたり
ってのはちょっと話が違うか
0083デフォルトの名無しさん
2009/09/22(火) 03:24:57再帰使いまくりだし
0084デフォルトの名無しさん
2009/09/22(火) 11:03:250085デフォルトの名無しさん
2009/09/22(火) 11:44:320086デフォルトの名無しさん
2009/09/22(火) 17:23:170087デフォルトの名無しさん
2009/09/22(火) 20:26:22俺漏れもー。
でも一から MPL するならともかく Boost.MPL の上に乗っかっちゃえば
大分楽になるし割と適当でも何とかなる気はするんだ。
0088デフォルトの名無しさん
2009/09/22(火) 20:27:570089デフォルトの名無しさん
2009/09/23(水) 14:30:5616進数?
0090デフォルトの名無しさん
2009/09/23(水) 14:44:59ちなみによく間違われるが別に16進数という訳ではない。
0091デフォルトの名無しさん
2009/09/23(水) 15:45:510092デフォルトの名無しさん
2009/09/23(水) 23:32:400093デフォルトの名無しさん
2009/09/24(木) 10:08:38> そろそろ初心者にMPLをどうやって教えるかを考えようじゃないか
板違いだろ、このカス。
0094デフォルトの名無しさん
2009/09/24(木) 22:06:49まともな日本語の参考書なんてでるかねぇ。
0095デフォルトの名無しさん
2009/09/24(木) 22:39:50これマスターしたら俺もBoostみたいな変態ライブラリ書けるようになるん?
0096デフォルトの名無しさん
2009/09/24(木) 23:25:330097デフォルトの名無しさん
2009/09/25(金) 00:27:000098デフォルトの名無しさん
2009/09/25(金) 01:19:52最近gcc lambda brancheが頻繁に更新されていてまさか、と思ったけど
ついにメンテナ自ら4.5にマージするつもりであることを発言したね
0099デフォルトの名無しさん
2009/09/25(金) 02:35:040100デフォルトの名無しさん
2009/09/25(金) 11:24:50lambdaってそのへんどうなの?
0101デフォルトの名無しさん
2009/09/25(金) 12:11:30それじゃ lambda の意味がないだろ?
0102デフォルトの名無しさん
2009/09/25(金) 12:15:53nested functionとは別物
0103デフォルトの名無しさん
2009/09/25(金) 14:01:50関数内関数なんて、
デバッガのためのシンボル情報処理以外、実装は極めて簡単じゃん。
lambdaはずっと実装が難しい。
0104デフォルトの名無しさん
2009/09/25(金) 15:52:030105デフォルトの名無しさん
2009/09/25(金) 18:03:56conceptGCCの二の舞を恐れて急いでたのかな
0106デフォルトの名無しさん
2009/09/25(金) 18:39:530107デフォルトの名無しさん
2009/09/25(金) 21:56:300108デフォルトの名無しさん
2009/09/25(金) 22:06:470109デフォルトの名無しさん
2009/09/25(金) 22:23:44すると、コンパイラの最適化もかかりそうで嬉しいな。
どんな型の関数オブジェクトか分からないけどautoで受ければいいから問題ないか。
0110デフォルトの名無しさん
2009/09/25(金) 22:29:05オーバーヘッドは最小限に抑えられるだろう
なんかlambdaの認識が弱いスレ住民が結構多いみたいだな
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
lambdaだけなら大した分量でも無いから、paperあたろうぜ
0111デフォルトの名無しさん
2009/09/25(金) 22:56:090112デフォルトの名無しさん
2009/09/26(土) 00:12:06static領域やらスレッドローカルストレージでも利用して
関数に偽装してくれりゃよかったのに。typeidやらbad_exceptionだけでも、
ライブラリ依存の機能はうんざりだったんだが。
0113デフォルトの名無しさん
2009/09/26(土) 00:14:190114デフォルトの名無しさん
2009/09/26(土) 00:18:130115デフォルトの名無しさん
2009/09/26(土) 00:27:54それを知ってての上の話。
例外機構も事実上ライブラリ依存はしてるけど、
からくりを言語コアに封じ込めてるでしょ。
あんな感じにしてほしかった。
もっと言えば、昔BCCにクロージャーって機能があったが
あんな感じ。
0116デフォルトの名無しさん
2009/09/26(土) 00:36:26何が問題なのか分からん。具体的に問題点を例を挙げて説明してくれ。
0117デフォルトの名無しさん
2009/09/26(土) 00:40:50逆に考えるんだ。言語機能によって生成されるオブジェクトにアクセスするための
インターフェースとしてライブラリがあるのだと。 sizeof と size_t みたいなもんだ、と。
0118デフォルトの名無しさん
2009/09/26(土) 00:59:27型もオブジェクトも完全にコンパイラ内部で生成されてて
ヘッダのincludeもランタイムのリンクも必要無いよね
operator()すなわちライブラリって考え?
0119デフォルトの名無しさん
2009/09/26(土) 02:06:29ライブラリであるという事は、コンパイラが他の
クラスと同様の最適化しかできないということ。
functionalオブジェクトを引き渡す相手がテンプレートなら
インライン展開できるかも知れないが、相手が別リンケージに
いるならそれも不可能。さらに、配列に放り込むにもポインタでは
無いので、次の式みたいに関数のポインタと混在させて利用する
なんて事も不可能。
void(*p[])()={function,[](){}};
0120デフォルトの名無しさん
2009/09/26(土) 02:20:01ライブラリじゃなかったら別リンケージでもインライン展開出来るという根拠は?
関数オブジェクトでもLTOが発達すれば特に劣る理由は無いと思うし、
関数オブジェクト一般を扱うコードとの親和性が高い分マシ
下の例はstd::function使った方が汎用性があるよね
0121デフォルトの名無しさん
2009/09/26(土) 02:44:30現時点だとEmbedded C++信奉者の方がまだまともなレベル
0122デフォルトの名無しさん
2009/09/26(土) 03:05:18実装とベタベタに相互依存した最適化をすればいいだけじゃん
標準/準標準ライブラリあたりにはよくあること
0123デフォルトの名無しさん
2009/09/26(土) 03:12:42std::initializer_list も range-based for-loop も
実装依存した最適化されるんでしょうし
0124デフォルトの名無しさん
2009/09/26(土) 10:08:04リンク時コード生成でインライン展開可能だよ
0125デフォルトの名無しさん
2009/09/26(土) 13:11:23関数ポインタは最適化の期待が薄い上に分岐予測の妨害になりやすい。
関数ポインタも関数オブジェクト(std::function)の配列に格納できるので関数オブジェクトと共存できる。
>>119 関数ポインタのメリットは?
0126デフォルトの名無しさん
2009/09/26(土) 13:24:33しなきゃならないから扱いが大変。
最近はスタックを実効不可にする例が増えてるけど、そうすると昔のgccの
関数内関数なんかは実行できなくなってるし。
0127デフォルトの名無しさん
2009/09/26(土) 13:43:50「lambdaも関数オブジェクトに偽装してるだけ」という可能性は考えないのだろうか
抽象的には関数オブジェクトが関数に劣る面は何も無いし、実装的にも融通は利かせやすい
んだから効率は上がりこそすれ下がりはしないだろう、普通に考えたら
0128デフォルトの名無しさん
2009/09/26(土) 14:14:41Cのインターフェースに渡せること
0129デフォルトの名無しさん
2009/09/26(土) 14:34:16どうしても必要なら、関数オブジェクトでも効率そのままで渡せるし
0130デフォルトの名無しさん
2009/09/26(土) 14:39:460131デフォルトの名無しさん
2009/09/26(土) 14:49:53テンプレート関数に引き渡すときは、インライン展開され関数のポインタに
引き渡されたときは関数の様に最適化されるといったところか。
まぁ、ここまではFunctorと変わらないが更なる最適化は例外やらexportを
実装した狂人が考えるだろよ。lambda関数が内部で上位関数に対し
参照するポインタを定数に書き換えるぐらいやっても構わんだろうから。
それより重要なのは、関数ポインタと互換性が有る点。
旧来の関数ポインタを使うスレッドを始としたコールバック関数に直接放り込める。
もちろん、関数ごとにラップしてやればFunctorでも使えなくは無いが面倒だろ。
それもlambdaが生まれたのと同様の理由で。
0132デフォルトの名無しさん
2009/09/26(土) 14:52:28そもそも関数ポインタとして扱えてキャプチャと並列安全性を両立って実装出来るの?
Intel TBBとか見てると、C++0x lambdaはかなり現実のニーズに答えていると思うけどね
Appleのblocks拡張よりは好きだな
0133デフォルトの名無しさん
2009/09/26(土) 14:59:00C=レガシーって考えてるとしたら色々とズレてる
0134デフォルトの名無しさん
2009/09/26(土) 15:11:31なんて、「最適化」の範囲でできることなの?
汎用引数として void* が付いてるインターフェースならそこを経由させられるけど、
そうじゃなかったら追加の引数はどうやって渡されることになるの?
静的変数使ったりするの?
0135デフォルトの名無しさん
2009/09/26(土) 15:12:05C++なんだから関数ポインタとかコールバック関数とかCのやり方にこだわる必要性を感じない。
稀な使用例のためにC++の仕様が後退するほうがデメリットが大きい。
コールバック関数が必要な場面なんか稀なんだからそのときにstatic関数を宣言すればいいとおもうよ。
0136デフォルトの名無しさん
2009/09/26(土) 15:16:30無名関数ポインタが欲しいなら、C1xに入れてもらえば良い
まともに実装可能で矛盾が無いならその後にC++に入るだろ
0137デフォルトの名無しさん
2009/09/26(土) 15:58:32Cとの連携は必要ないどころかC++0xでますます強化されてるんだけどな
ラムダもなんかの条件満たしたら関数ポインタになるようにすれば良かったんだ
POFとか言って
0138デフォルトの名無しさん
2009/09/26(土) 16:14:51これはCとの連携の強化とは逆の方向行ってるだろ
0139デフォルトの名無しさん
2009/09/26(土) 16:27:45まだ、関数オブジェクトに対する関数ポインタのメリットが示されていない。
0140デフォルトの名無しさん
2009/09/26(土) 17:10:11そうでなければCOMの様な複雑なインターフェースを考えることになる。
0141デフォルトの名無しさん
2009/09/26(土) 17:30:01で?
そんなところは局所化して一段ラップすれば済むんだから、関数ポインタに特化するような
規則を標準化する必要性にはつながらないでしょ?
0142デフォルトの名無しさん
2009/09/26(土) 18:13:56思いつきで言ったのに反論されて、
粘着しているだけなんじゃないのかね。
0143デフォルトの名無しさん
2009/09/26(土) 18:40:08template<typename T>
struct is_stateless {
static const bool value = /*略*/;
};
template<typename S, typename F>
struct make_function_pointer_impl;
template<typename R, typename... A, typename F>
struct make_function_pointer_impl<R (A...), F> {
static R func(A... args) {
F f; // ←デフォルトコンストラクタが必要
return f(args...);
}
};
template<typename S, typename F>
inline S* make_function_pointer(F) {
static_assert(is_stateless<F>::value, "The function object must be stateless");
return make_function_pointer_impl<S, F>::func;
}
0144デフォルトの名無しさん
2009/09/26(土) 18:54:22WindowsAPIはC呼び出しではなく、PASCAL呼び出し(stdcall)なんだけどな。
0145デフォルトの名無しさん
2009/09/26(土) 19:55:41関数ポインタは整数(intptr_t/uintptr_t)に変換して持ち運べる
0146デフォルトの名無しさん
2009/09/26(土) 20:10:23コンパイラ屋をなんだと思っているんだ
標準化の過程の中で、function pointerを通して扱えるlambdaを作る、
なんて案は提出された記録すらないんだから、もはやスレ違いだろ
http://pc12.2ch.net/test/read.cgi/tech/1173238573/
行け
0147デフォルトの名無しさん
2009/09/26(土) 20:19:19むしろコンパイラ屋は何を考えてるんだといいたい
0148デフォルトの名無しさん
2009/09/26(土) 20:31:300149デフォルトの名無しさん
2009/09/26(土) 20:33:12そりゃ不可能だよ。
0150デフォルトの名無しさん
2009/09/26(土) 20:33:23> 現に関数オブジェクトなせいで使いづらくなってるだろ
???
たとえばどんなときに?
具体的に頼む。
0151デフォルトの名無しさん
2009/09/26(土) 20:39:480152デフォルトの名無しさん
2009/09/26(土) 20:40:05qsort(a,100,sizeof(int),[](void*a,void*b)->int{return *(int*)a>*(int*)b;})
0153デフォルトの名無しさん
2009/09/26(土) 20:42:210154デフォルトの名無しさん
2009/09/26(土) 20:44:090155デフォルトの名無しさん
2009/09/26(土) 20:46:080156デフォルトの名無しさん
2009/09/26(土) 20:47:060157デフォルトの名無しさん
2009/09/26(土) 20:50:040158デフォルトの名無しさん
2009/09/26(土) 20:52:07「printfでoperator<<みたいにオブジェクト出力できないぞ!」とか言われてるような感じ。
0159デフォルトの名無しさん
2009/09/26(土) 21:06:48CのヘッダーはC++では使うメリットが無いし。
#include <algorithm>
を使って議論しようよね。
0160デフォルトの名無しさん
2009/09/26(土) 21:12:54std::sortはクイックソートじゃないかもしれないんだしさ
何もキャプチャしてないラムダ式くらい関数ポインタに暗黙変換してくれよ
出来るはずだろ
0161デフォルトの名無しさん
2009/09/26(土) 21:16:03それって鼻から悪魔じゃなかったっけ
てか、FFIやら呼び出し規約やらでC言語関数の共用ができるとはいえ
所詮もともとC言語特有のものを他の言語であたりまえにサポートすると思うなよ・・・
0162デフォルトの名無しさん
2009/09/26(土) 21:17:49Cとの連携はちゃんとしてもらわないと言語の意味がない
0163デフォルトの名無しさん
2009/09/26(土) 21:19:35クイックソートであるかどうかにそんなに意味があるのかよ?
だいたい、クイックソートなんてこの1レスに収まる程度のコード量で実装できるだろうが。
もちろんgenericなクイックソートをな。
お前みたいなヤツはBoostに転がってるc_funtionでも使ってればいいだろ。
0164デフォルトの名無しさん
2009/09/26(土) 21:19:410165デフォルトの名無しさん
2009/09/26(土) 21:23:250166デフォルトの名無しさん
2009/09/26(土) 21:26:54qsortは中でmemcpy使うからね
というかラムダが使えないという話はqsortに限らずCのAPI全般での問題であって
いくらqsortを否定されても本題とは関係ないんだけど
0167デフォルトの名無しさん
2009/09/26(土) 21:28:07lambdaがポインタでもオブジェクトでも後方互換は満たしてるじゃん。
新機能までわざわざCに追従させる意味があるんかいな。
0168デフォルトの名無しさん
2009/09/26(土) 21:30:10qsort() なら実際のアルゴリズムがクイックソートだというのも間違い。
std::sort() と同じぐらいに実装は自由。
> 何もキャプチャしてないラムダ式くらい関数ポインタに暗黙変換してくれよ
これは、生成される関数オブジェクトの変換 operator としてあってもいいかもしれない。
0169デフォルトの名無しさん
2009/09/26(土) 21:31:17キャプチャ付きのラムダまで全部関数ポインタにしろとは誰も言わない
0170デフォルトの名無しさん
2009/09/26(土) 21:39:59C++の新機能をCのライブラリで使いたいってのが無謀じゃないのか。
0171デフォルトの名無しさん
2009/09/26(土) 21:41:48> 例えば少々大きめなPOD構造体の配列だったら、普通はqsortの方が早いでしょう
> qsortは中でmemcpy使うからね
qsort() が memcpy() 使うとは限らないし、 memcpy() 使うから速いというのも意味不明。
> いくらqsortを否定されても本題とは関係ないんだけど
ええと、「本題」が何なのかよくわからないんだけど、
「関数ポインタが欲しいところでも余計な記述無しに lambda を使いたい」ってことでいいの?
>>112 まで遡ると「lambdaをオブジェクトにした」のが嫌だって話が出てたんだけど、
その理由がこれだけのためってことなら lambda 式で生成されるものが
関数オブジェクトでも >>168 みたいな変換 operator があれば済むわけでちょっと
的を外してたかな、と思う。
0172デフォルトの名無しさん
2009/09/26(土) 21:42:41その当然あるべき変換operatorが今の規格にないことが問題でしょ?
0173デフォルトの名無しさん
2009/09/26(土) 21:47:360174デフォルトの名無しさん
2009/09/26(土) 21:47:49それが、>>163のc_functionだね。
今初めてc_functionの使い道が解った。こんなレアケースに対応する為のものだったとは。
boostスゲー
0175デフォルトの名無しさん
2009/09/26(土) 21:49:48当然あるべきと思うかどうかは人による。そこを主張しても意味が無い。
関数ポインタへの変換 operator を追加することは妥当な提案かもしれないとは思うよ。
個人的には、一段ラップして済ませられるし、他の理由で結局ラップする必要がある
ことが多いから、要らないと思うけどね。
条件の規定とか、変換できる場合とできない場合の違いを一般のプログラマが
認識できるか、とか、いろいろ面倒な問題もあるわけで、費用対効果は微妙なところ
だろうとも思う。
0176112
2009/09/26(土) 21:59:47>>112 = >>119 = >>131は俺。
スレッド関数とかAPIの替えの効かない関数にポインタ
突っ込めるから便利と言う発言以外は別人なのでよろしく。
C++で代用可能なライブラリとか、整数型に突っ込めるとかも別人。
0177デフォルトの名無しさん
2009/09/26(土) 22:06:44常人に理解されにくい一面を増やしたりしたらかわいそうだよね
ただでさえC++はバッドノウハウの塊扱いされてるんだからさ
0178デフォルトの名無しさん
2009/09/26(土) 22:08:28その別人はカタコトの言葉しか使えないようだし
ほとんどの人にとっては区別がつくと思う。
0179デフォルトの名無しさん
2009/09/26(土) 22:11:44pmf-conversionとか、friend関数をExtension Methodのように取り扱えたらとか妄想して今日も寝る。
0180デフォルトの名無しさん
2009/09/26(土) 22:59:090181デフォルトの名無しさん
2009/09/27(日) 08:43:510182デフォルトの名無しさん
2009/09/27(日) 11:11:430183デフォルトの名無しさん
2009/09/27(日) 11:32:430184デフォルトの名無しさん
2009/09/27(日) 13:10:43qsortが好きな奴なんて居るわけが無い
0185デフォルトの名無しさん
2009/09/27(日) 13:53:000186デフォルトの名無しさん
2009/09/27(日) 14:30:55世界共通言語たるCの標準ライブラリに含まれてる由緒正しい関数だということ
0187デフォルトの名無しさん
2009/09/27(日) 14:48:530188デフォルトの名無しさん
2009/09/27(日) 15:18:42C++が使えない処理系ならいっぱいある
世界共通言語とは言えないね
0189デフォルトの名無しさん
2009/09/27(日) 15:22:27いっぱいある?昔はそんなこともあったように思うが、今だともう思い当たらないな。
たとえばどの処理系のこと言ってるの?
0190デフォルトの名無しさん
2009/09/27(日) 15:36:040191デフォルトの名無しさん
2009/09/27(日) 15:43:49いい加減Cの話はやめてC++0xの話しようぜ
http://cpp-next.com/
でDave Abrahamsが書いてる記事くらいの質の情報が
日本語で得られるようになれば右辺値参照もすぐに広まるだろうになあ
0192デフォルトの名無しさん
2009/09/27(日) 15:51:030193デフォルトの名無しさん
2009/09/27(日) 16:00:230194デフォルトの名無しさん
2009/09/27(日) 16:18:28お前の言いたいのは処理系じゃなくて環境だろ。
0195デフォルトの名無しさん
2009/09/27(日) 16:24:040196デフォルトの名無しさん
2009/09/27(日) 17:25:58俺も同感。今時の開発環境でCが使えるのにC++が使えない環境を
教えて欲しいと思う。そういった仕事が来たら調査しないで速攻
で断りたいから。
0197196
2009/09/27(日) 17:29:13でも、その場合はしょうがないって諦められるから心理的
ストレスは(俺の場合)殆ど無い。
0198デフォルトの名無しさん
2009/09/27(日) 17:31:540199デフォルトの名無しさん
2009/09/27(日) 19:05:09そういうモジュールを使わなきゃいけないってことはよくあるというか
そういう場合の方が多いがなぁ。
0200デフォルトの名無しさん
2009/09/27(日) 19:10:260201デフォルトの名無しさん
2009/09/27(日) 20:38:300202デフォルトの名無しさん
2009/09/28(月) 22:58:30実行時コンパイルとか、マニアックな条件ならありえる。
0203デフォルトの名無しさん
2009/09/29(火) 00:01:43あと、clangなんかも良いCコンパイラだけど、
C++コード生成はまだまだ実装されそうにないな
それにしても、スレに沿った話で盛り上がらんな
0204デフォルトの名無しさん
2009/09/29(火) 02:05:52あとはRange-based forがどんどん腐っていくのを見守るくらいしかないからなぁ
0205デフォルトの名無しさん
2009/09/29(火) 03:15:26実装されるものはBeta1の時点でほぼ確定しているし、gcc使いにはあまり興味の沸かない話だ
0206デフォルトの名無しさん
2009/09/29(火) 09:28:31conceptに禍根を残さないようにお願いしたい
0207デフォルトの名無しさん
2009/09/29(火) 22:14:340208デフォルトの名無しさん
2009/09/29(火) 23:56:230209デフォルトの名無しさん
2009/09/30(水) 01:33:370210デフォルトの名無しさん
2009/09/30(水) 01:58:39いらねぇぇ
将来conceptの邪魔になりそう
0211デフォルトの名無しさん
2009/09/30(水) 01:59:200212デフォルトの名無しさん
2009/09/30(水) 07:46:44これなら残り24時間ちょっとのstage 1終了までのマージに間に合うはず
stage 1が終わったら新機能の追加は許されなくなるから、
残りのC++0x実装は来年の4.6もしくは5.0に持ち越しかな
0213デフォルトの名無しさん
2009/09/30(水) 12:20:12http://gcc.gnu.org/viewcvs?view=revision&revision=152318
gcc-4.5-20091001のスナップショットに入るだろうから、だいぶ試しやすくなるだろう
0214デフォルトの名無しさん
2009/09/30(水) 18:19:510215デフォルトの名無しさん
2009/09/30(水) 20:30:320216デフォルトの名無しさん
2009/09/30(水) 20:56:320217デフォルトの名無しさん
2009/09/30(水) 22:21:46std::placeholder::_1 とかいうのが。
0218234
2009/09/30(水) 23:47:100219デフォルトの名無しさん
2009/10/01(木) 00:54:570220デフォルトの名無しさん
2009/10/01(木) 01:47:54ガーンだな
0221デフォルトの名無しさん
2009/10/01(木) 02:51:51>14.10 Concepts [concept]
>removed.
Oh!
0222デフォルトの名無しさん
2009/10/01(木) 03:22:16News 2009-09-30: The deadline for the next mailing is 2009-11-06
News 2009-09-30: The 2009-09 pre-Santa-Cruz mailing is available
News 2009-09-30: The C++ Standard Core Language Issues List (Revision 66) is available
News 2009-09-30: The C++ Standard Library Issues List (Revision 67) is available
Draft: n2960
0223デフォルトの名無しさん
2009/10/01(木) 07:37:240224デフォルトの名無しさん
2009/10/01(木) 17:53:06そうかも
一応、bind自体の機能はbindの方がlambdaのbindよりも高機能だ
stdcallやfastcallの関数もbindできる
0225デフォルトの名無しさん
2009/10/01(木) 19:54:170226デフォルトの名無しさん
2009/10/01(木) 19:55:460227デフォルトの名無しさん
2009/10/01(木) 20:22:12専門家だけあって強力なのね。
0228デフォルトの名無しさん
2009/10/01(木) 20:27:100229デフォルトの名無しさん
2009/10/01(木) 23:50:31どんだけタイピングしたくねぇんだよ
0230デフォルトの名無しさん
2009/10/01(木) 23:55:35あって困るものとは思えません。
新しいことがもう覚えられないとかそういうことですか?
0231デフォルトの名無しさん
2009/10/02(金) 00:07:00このスレでも誰か言っていなかったっけ。
次にConceptが入って拡張forを作り直すとき、
現在の拡張forが(互換性のためと言って)邪魔にならないだろうかという懸念。
個人的には、std::for_each+ラムダの手もあるし、
あるいは、もう数年BOOST_FOR_EACHのお世話になってもいいと考えているけど。
0232デフォルトの名無しさん
2009/10/02(金) 00:12:440233デフォルトの名無しさん
2009/10/02(金) 00:26:09次にConceptを導入するときに書き直したりすることになるんでしょ
for loopがその中の一つになっても別にって感じ
今の拡張forの状態だと
begin/end関数は適切に書きましょう、そうしないとひどいぞ!ってことではあるが
0234デフォルトの名無しさん
2009/10/02(金) 00:26:10lambdaの影に隠れて、constexprも実装された件
これがはじめての実装だから弄るのが楽しみだな
0235デフォルトの名無しさん
2009/10/02(金) 00:48:15http://www.pubbs.net/gcc/200909/129886/
これからの発展を祈る!
0236デフォルトの名無しさん
2009/10/02(金) 02:29:57疑わしい
0237デフォルトの名無しさん
2009/10/02(金) 07:35:25いじって遊ぶなんて意味ないんだが。
0238デフォルトの名無しさん
2009/10/02(金) 07:46:350239デフォルトの名無しさん
2009/10/02(金) 08:16:00無くなるのがなぁ
0240デフォルトの名無しさん
2009/10/02(金) 08:50:13でも、,の罠は引っかかるけどコンパイルエラーがでるから問題ない。
0241デフォルトの名無しさん
2009/10/02(金) 11:11:330242デフォルトの名無しさん
2009/10/02(金) 11:21:480243デフォルトの名無しさん
2009/10/02(金) 12:45:240244デフォルトの名無しさん
2009/10/03(土) 03:16:29lambda は使えるけど、まだ関数構文の統合がされてなかった。
constexpr については今のところはあってもエラーにならないだけ。
0245デフォルトの名無しさん
2009/10/03(土) 13:19:200246デフォルトの名無しさん
2009/10/03(土) 16:13:41拡張sizeofもOKのようだ。
0247デフォルトの名無しさん
2009/10/03(土) 18:03:16サーバプロセスのメインループで停まらないんですけど?
0248デフォルトの名無しさん
2009/10/05(月) 16:32:540249デフォルトの名無しさん
2009/10/05(月) 18:34:420250デフォルトの名無しさん
2009/10/05(月) 21:33:54Conceptsあのままでも間に合わなかったが、
抜くことになって余計時間はかかることになった。
0251デフォルトの名無しさん
2009/10/07(水) 18:19:37不毛で後ろ向きな作業を見てるのは辛い
0252デフォルトの名無しさん
2009/10/07(水) 21:59:25俺はデックルタイプなんだけど
0253デフォルトの名無しさん
2009/10/07(水) 22:37:120254デフォルトの名無しさん
2009/10/08(木) 06:52:260255デフォルトの名無しさん
2009/10/09(金) 03:57:40デフォルトムーブコンストラクタを提供すれば右辺値参照を使っていない
既存のコードでも高速化が期待出来る、ってことだったけど
例外安全との絡みで結構ややこしいことになってるみたいだね
0256デフォルトの名無しさん
2009/10/09(金) 06:57:500257デフォルトの名無しさん
2009/10/09(金) 07:19:350258デフォルトの名無しさん
2009/10/09(金) 08:20:00ムーブコンストラクタは魔法使いにしか使えないよ。
0259デフォルトの名無しさん
2009/10/09(金) 18:52:18どれだけ現場を知らないやつが、仕様作ってるわけ⁈
馬鹿どもが。
0260デフォルトの名無しさん
2009/10/09(金) 19:07:050261デフォルトの名無しさん
2009/10/09(金) 19:29:27#define LAZY_T(type) std::function<type()>&
void foo(bool b, LAZY_T(std::string) str){ if(b) std::cout << str(); }
int main(){
foo(false, LAZY(std::string("H") + "e" + "ll" + "o, w" + "orld" + "!" + "\n"));
}
0262デフォルトの名無しさん
2009/10/10(土) 09:54:29的な問題は解決する気はないのかな
0263デフォルトの名無しさん
2009/10/10(土) 10:01:57コンストラクタに関してはUniformな構文({}を使うやつ)で回避できるようになるけど。
0264デフォルトの名無しさん
2009/10/10(土) 17:45:49きれい
0265デフォルトの名無しさん
2009/10/10(土) 19:16:170266デフォルトの名無しさん
2009/10/10(土) 19:20:510267デフォルトの名無しさん
2009/10/10(土) 19:23:32///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0268デフォルトの名無しさん
2009/10/10(土) 19:27:08mainはreturnしなくてもいいよ
0269デフォルトの名無しさん
2009/10/11(日) 01:10:59ユー・アー・古い!
0270デフォルトの名無しさん
2009/10/11(日) 01:32:21returnもretrunもneutronもしなくていいの?
0271デフォルトの名無しさん
2009/10/11(日) 01:45:53return 0;を行うというような旨の規定があるので省略可能。
ちなみに、これは確かC99にも持ち込まれたはず。
0272デフォルトの名無しさん
2009/10/11(日) 02:51:34X3014の35ページ 3.6.1 第5節に書いてあるのね。
>... return 文に出会うことなく制御が関数 main の終わり
>に達した場合,次の文の実行と同じ働きをもつ。
> return 0;
スレチなのに申し訳ない。
0273デフォルトの名無しさん
2009/10/15(木) 15:11:44動的なメモリ確保はできなかったけど、必要十分だと思うの。環境はVC9EEなの〜。単発でごめんなの。
#include <iostream>
template<class T>
class Singleton:public T{
public:
static T& GetInstance(){
static Singleton<T> Value;
return Value;
}
private:
Singleton(){}
virtual ~Singleton(){}
};
class ScreenObj{
public:
void Do(){std::cout<<"Do Something!!"<<std::endl;};
protected:
ScreenObj(){std::cout<<"construct!"<<std::endl;};
~ScreenObj(){std::cout<<"destruct!"<<std::endl;};
};
int main(){
Singleton<ScreenObj>::GetInstance().Do();
return 0;
}
0274デフォルトの名無しさん
2009/10/15(木) 15:17:220275デフォルトの名無しさん
2009/10/15(木) 18:33:390276デフォルトの名無しさん
2009/10/15(木) 18:53:36どこがシングルトンなのかと小一時間。
せめて Curiously Recurring Template Pattern にしろよ。
0277デフォルトの名無しさん
2009/10/15(木) 20:26:320278デフォルトの名無しさん
2009/10/16(金) 00:46:15staticなインスタンスを使用する、メイヤーズさんのシングルトンですな。
残念ながらこの方式には欠陥があることが知られている。
詳しくは「Modern C++ Design」を読もう。
0279デフォルトの名無しさん
2009/10/16(金) 01:36:45昔critical sectionでこの方法を使おうとして悩まされたわ。
0280デフォルトの名無しさん
2009/10/16(金) 06:59:250281デフォルトの名無しさん
2009/10/16(金) 08:05:360282デフォルトの名無しさん
2009/10/16(金) 08:32:39右辺値参照について質問です
-----
ちょっと質問いいすか
const右辺値参照ってどこで使うの?
右辺値参照の提案書を見てもnon-constの使い方しか書いてない気がするんだけど…
Visual Studio 2010
http://pc12.2ch.net/test/read.cgi/tech/1231857024/529
0283デフォルトの名無しさん
2009/10/16(金) 12:31:49const 修飾された右辺値参照の使い道はおそらく
ほとんど無いのではないかと思います.
(1)右辺値参照でオーバーロードされた関数の内部で,
実引数が右辺値 (無名オブジェクト) であることが分かる
(2)無名,つまり他の誰からも参照されていないことが分かるので
そのオブジェクトはぶっ壊しても大丈夫
という流れでの使い方を想定しているので, const 修飾されている,
つまりぶっ壊せないオブジェクトは上のストーリで恩恵を受けられないからです.
元スレで指摘されていますが, mutable なメンバがあればもしかすれば
恩恵を受けられる文脈があるかも知れませんけれど自分は思いつきません.
0284デフォルトの名無しさん
2009/10/16(金) 18:08:140286デフォルトの名無しさん
2009/10/16(金) 20:39:28template<class T>
void hoge(T&& a)
{
0287デフォルトの名無しさん
2009/10/16(金) 20:41:11で T=const Fuga が渡されたときでもそれっぽくいくようにじゃね?
でもconst Fugaだと結局関数内でエラーになるな。やっぱり意味ないか?
0288デフォルトの名無しさん
2009/10/17(土) 01:21:27>>286 のときに T = const Fuga になるのは,
const 修飾した右辺値で hoge が呼び出されたとき
(か, hoge を T = const Fuga で explicit specialization したとき)ですけれど,
右辺値参照があるならば const 修飾した右辺値を生成することに
ほとんど意味が見出せなくなるので,そういう意味でもやはり意味が無いかと思います.
0289デフォルトの名無しさん
2009/10/18(日) 23:30:01ttp://sourceforge.jp/magazine/09/09/10/1214252/4
インテル コンパイラー 11.1では、並列処理を容易に実行するためのC/C++キーワードが新たに追加されている。
でも、シングルプロセッサだと逆に遅くなっちゃうよね。
並列度もコーディングで決定するみたいだし、それほど効率よくなさそう。
0290デフォルトの名無しさん
2009/10/19(月) 00:17:550291デフォルトの名無しさん
2009/10/19(月) 09:49:550292デフォルトの名無しさん
2009/10/19(月) 20:34:04std::threadかintel TBBか、並列構文か、まあ、それぞれが競合しそうに無いから臨機応変に併用もできるのかな。
OpenMPのような機能だけど、intel以外だとコンパイルエラーになりそうだな。
OpenMPなら非対応コンパイラだとOpenMP構文は無視されるだけなんだけどね。
0293デフォルトの名無しさん
2009/10/19(月) 20:57:34#define __par
#endif
0294デフォルトの名無しさん
2009/10/20(火) 06:58:270295デフォルトの名無しさん
2009/10/20(火) 10:46:56意外かもしれないが、お前以外はお前と違う仕事をしてるから、
お前が必要としていない機能を必要とすることもあるんだよ。
0296デフォルトの名無しさん
2009/10/20(火) 11:17:32翔泳社より201x年発行
0297デフォルトの名無しさん
2009/10/20(火) 11:27:17第二章:raw string literalとは何ぞや
第三章:user defined literalのすすめ
第四章:conceptなしのrange-based forは超簡単
0298デフォルトの名無しさん
2009/10/20(火) 21:13:47それって情報産業?
どんな仕事か言っでみ?
0299デフォルトの名無しさん
2009/10/20(火) 21:19:470300デフォルトの名無しさん
2009/10/20(火) 21:24:09工場長、今日はもう家に帰ってください。
0301デフォルトの名無しさん
2009/10/20(火) 22:30:410302デフォルトの名無しさん
2009/10/20(火) 22:33:42なぜなら俺様にはわからないからだ(キリッ
こんなのが普通にうようよしてるから困る
0303デフォルトの名無しさん
2009/10/20(火) 23:02:54(関数オブジェクトの基礎からレビュアーに説明)こんな世の中じゃ
0304デフォルトの名無しさん
2009/10/20(火) 23:12:020305デフォルトの名無しさん
2009/10/20(火) 23:25:020306デフォルトの名無しさん
2009/10/20(火) 23:33:38あ、ここboostスレじゃなかった
0307デフォルトの名無しさん
2009/10/20(火) 23:34:43新しい概念を次から次へと追加しまくってメタボってる C++ には神を感じない
いやな予感は new からすでにくすぶっていたが type なんたらシリーズに至っては閉口もの
言語とライブラリの分業が巧くない(というより人柱的な)ことによる綻びが積もり積もって、
かつて滅んでいった親類縁者達の轍をすでに踏んでいるように見える
加えて造反組の仕事のお粗末さが、状況を更に悪化させていることも頭の痛い問題だ
「うようよしてる」連中の目線で造反してはいけないことを COBOL から学んでいない
0308デフォルトの名無しさん
2009/10/20(火) 23:35:55具体的にしゃべれアホ
0309デフォルトの名無しさん
2009/10/21(水) 00:05:39もうすぐ2009年が終わってしまうのに・・・
0310デフォルトの名無しさん
2009/10/21(水) 08:50:040311デフォルトの名無しさん
2009/10/21(水) 09:16:170312デフォルトの名無しさん
2009/10/21(水) 09:53:45> 数少ない概念で多くの状況に対応しえていた C から一転、
今は無理でしょ。UNIX v7のコード量の少なさと言ったら…
0313デフォルトの名無しさん
2009/10/21(水) 10:21:540314デフォルトの名無しさん
2009/10/21(水) 14:18:280315デフォルトの名無しさん
2009/10/21(水) 18:11:14xは16進数だ!、って話はよく聞くけど、
それは、ネタなの?
本当に最初からそうで、情弱な俺が知らなかっただけ?
0316デフォルトの名無しさん
2009/10/21(水) 19:30:38なにしろ最初は2008年に発行するつもりだったんだから
0317デフォルトの名無しさん
2009/10/21(水) 19:41:090318デフォルトの名無しさん
2009/10/21(水) 22:15:360319デフォルトの名無しさん
2009/10/21(水) 22:51:35だまれ
0320デフォルトの名無しさん
2009/10/21(水) 22:54:530321デフォルトの名無しさん
2009/10/22(木) 07:15:320322デフォルトの名無しさん
2009/10/22(木) 09:09:400323デフォルトの名無しさん
2009/10/22(木) 19:55:540324デフォルトの名無しさん
2009/10/22(木) 21:49:56いやな予感を new から感じ取れないアホに type なんたらシリーズという以上の説明は不能
0325デフォルトの名無しさん
2009/10/22(木) 21:52:180326デフォルトの名無しさん
2009/10/22(木) 21:58:45(U )つ わかってます。
u u
0327デフォルトの名無しさん
2009/10/22(木) 23:35:21そこは触らなければいいだけのことじゃない
0328デフォルトの名無しさん
2009/10/23(金) 04:26:47new の何が嫌なのか言ってみろアホ
0329デフォルトの名無しさん
2009/10/23(金) 07:05:500330デフォルトの名無しさん
2009/10/23(金) 08:36:22C++の演算子オーバーロード全体の問題だと思うけどね
0331デフォルトの名無しさん
2009/10/23(金) 12:22:410332デフォルトの名無しさん
2009/10/23(金) 19:15:040333デフォルトの名無しさん
2009/10/23(金) 20:03:130334デフォルトの名無しさん
2009/10/23(金) 21:12:420335デフォルトの名無しさん
2009/10/23(金) 21:31:260337デフォルトの名無しさん
2009/10/23(金) 23:41:30お前がnewで嫌だと思う所が通じないのがアホだとしたら
この世にアホでない奴などいない
0338デフォルトの名無しさん
2009/10/23(金) 23:43:410339デフォルトの名無しさん
2009/10/24(土) 00:12:220340デフォルトの名無しさん
2009/10/24(土) 01:35:19new の何が嫌なのか具体的に言ってみろアホ
0341デフォルトの名無しさん
2009/10/24(土) 02:51:40307自身が今から作るとしたらどうするかってのは気になるよね。
0342デフォルトの名無しさん
2009/10/24(土) 03:16:21newみたいにコア機能とライブラリが癒着してるのは気持ち悪い
でも0xでまた増えるんだよなぁ…
0343デフォルトの名無しさん
2009/10/24(土) 03:44:30自分が嫌だと思うところがさも他人にも嫌であるに決まっていると盲信してるどころか
自分の考えが 状況に寄らず 科学的に真実であると思ってるだろ・・・
この場に>>307の主張を本人以外に説明できる人が現れたら>>307の話に耳を傾けることにする
0344デフォルトの名無しさん
2009/10/24(土) 10:59:320345デフォルトの名無しさん
2009/10/24(土) 11:42:510346デフォルトの名無しさん
2009/10/24(土) 11:59:31顧客とプログラマーの関係に等しい……
無理ばっかり言ってきやがる。
0347デフォルトの名無しさん
2009/10/24(土) 14:33:24安定するまで使わなくてすむ。
0348デフォルトの名無しさん
2009/10/24(土) 14:42:58馬鹿なプログラマは無視すればすむから無問題。
MSみたいに委員会の有力者を雇って、
自社技術を規格に潜り込ませようとするのは勘弁。
0349デフォルトの名無しさん
2009/10/24(土) 14:43:27無理言ってる人と無関係に言語仕様が固まるだけ。
0350デフォルトの名無しさん
2009/10/24(土) 14:46:33うるさいプログラマたちにうんざりしたら辞めちゃうだけだよ
0351デフォルトの名無しさん
2009/10/24(土) 14:53:380352デフォルトの名無しさん
2009/10/24(土) 14:54:430353デフォルトの名無しさん
2009/10/24(土) 15:05:00少量の言葉の断片がかすっただけで「ああ、そのことね」と理解されるから。
でも、彼らの中に無い物は、必死で言葉にしていかなきゃ形にならないよ。
0354デフォルトの名無しさん
2009/10/24(土) 18:58:50それともC++1xになるの?
0355デフォルトの名無しさん
2009/10/24(土) 19:01:290356デフォルトの名無しさん
2009/10/24(土) 19:02:040357デフォルトの名無しさん
2009/10/24(土) 19:09:420358デフォルトの名無しさん
2009/10/24(土) 19:26:14出た後はあくまでただの「C++」じゃないの
0359デフォルトの名無しさん
2009/10/24(土) 19:44:150360デフォルトの名無しさん
2009/10/25(日) 00:42:48ってそうかコンセプトのやり直しがあるのか
0361デフォルトの名無しさん
2009/10/25(日) 00:48:560362デフォルトの名無しさん
2009/10/25(日) 01:24:05その次の規格は C++1x と呼ばれるだけだろう。
0363デフォルトの名無しさん
2009/10/25(日) 02:04:360364デフォルトの名無しさん
2009/10/25(日) 02:06:050365デフォルトの名無しさん
2009/10/25(日) 02:06:31ダメなものはダメと毅然と却下するべきだね
0366デフォルトの名無しさん
2009/10/25(日) 10:17:580367デフォルトの名無しさん
2009/10/25(日) 10:46:430368デフォルトの名無しさん
2009/10/25(日) 12:23:110369デフォルトの名無しさん
2009/10/25(日) 12:45:18結構大勢の人間を同一人物認定できるだろう。
0370デフォルトの名無しさん
2009/10/25(日) 12:56:310371デフォルトの名無しさん
2009/10/25(日) 18:32:240372デフォルトの名無しさん
2009/10/25(日) 18:35:120xの仕様もなかなか決まらないのかな?
委員会のメンバーって仲悪いのか?
0373デフォルトの名無しさん
2009/10/25(日) 19:00:32「仲」でモノが早く決まるような集まりに決めてもらっても困るし。
0374デフォルトの名無しさん
2009/10/25(日) 19:06:21そうなの?
創始者のハゲに9割くらいの決定権があるのじゃないの?
0375デフォルトの名無しさん
2009/10/25(日) 19:16:430376デフォルトの名無しさん
2009/10/25(日) 19:43:30おまえこのスレにいてこれすら読んでないとは、
ttp://www.devx.com/cplus/Article/42448/0/page/4
モグリだな。
0377デフォルトの名無しさん
2009/10/25(日) 20:54:200378デフォルトの名無しさん
2009/10/25(日) 21:51:01禿そのものが無茶慎重な性格だからな。
"Simplifying the use of concepts"だって、
結局は自分のもともとの意見に引き込んでいるけど、
他の人の議論をかなり咀嚼した上で書いてる。
0379デフォルトの名無しさん
2009/11/02(月) 16:05:350380デフォルトの名無しさん
2009/11/03(火) 11:23:01std::cout << R"[hoge
foo]";
std::cout << R"[hoge
foo]";
↑ここにtab入れられない。
0381デフォルトの名無しさん
2009/11/03(火) 11:33:43どの辺が便利なんだろうか?
0382デフォルトの名無しさん
2009/11/03(火) 11:37:14こうやって改行とかできるところじゃね?
特に長文とかなると便利かも]";
0383デフォルトの名無しさん
2009/11/03(火) 11:41:24もしかすると regex 関連で入れることになったのかもしれない。
0384デフォルトの名無しさん
2009/11/03(火) 12:30:07here documentを言語にいれるのが最近の流行りじゃん。
馬鹿っぽいけどやっぱり便利ではあるよ。
\nを解釈できるライブラリばかりじゃないし。
0385デフォルトの名無しさん
2009/11/03(火) 14:35:530386デフォルトの名無しさん
2009/11/03(火) 17:45:15R"[
>>390は
こう書けばいいよ
]";
0387デフォルトの名無しさん
2009/11/03(火) 18:43:210388デフォルトの名無しさん
2009/11/03(火) 20:33:15>>390さんへの振りですか。
0389デフォルトの名無しさん
2009/11/03(火) 22:42:160390デフォルトの名無しさん
2009/11/03(火) 22:51:510391デフォルトの名無しさん
2009/11/05(木) 10:44:060392デフォルトの名無しさん
2009/11/05(木) 22:05:10here documentってどういう意味でしょうか?
ttp://yougo.ascii.jp/caltar/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88
こんな解説などが見つかりましたが今ひとつ分かりません。
0393デフォルトの名無しさん
2009/11/05(木) 22:16:16こんな奴。スクリプト言語なんかではよくある。
複数行に渡る文字列なんかを埋め込む時は楽だし、余計な手間が無い分バグも入れ込み
にくいと俺は思う。
0394デフォルトの名無しさん
2009/11/05(木) 22:21:44ありがとうございます。
やっとそれが導入されたわけですね。
0395デフォルトの名無しさん
2009/11/06(金) 06:38:25機能を多くして、どうするよ?
・・・って、世界中の人は誰も思わないの?
0396デフォルトの名無しさん
2009/11/06(金) 07:00:43むしろ足りないと思っているでしょうな。
TR2とか。
0397デフォルトの名無しさん
2009/11/06(金) 08:28:40スクリプト言語の仕様なんかいらなくない?
なんでそんなの必要なの?
0398デフォルトの名無しさん
2009/11/06(金) 09:42:53頭おかしい人ですか?
0399デフォルトの名無しさん
2009/11/06(金) 15:17:26CLIなツールを作るときにうさげ書くのが楽になるってくらいしか出てこない。
0400デフォルトの名無しさん
2009/11/06(金) 16:08:270401デフォルトの名無しさん
2009/11/06(金) 17:45:40頭おかしい人ですか?
0402デフォルトの名無しさん
2009/11/06(金) 18:00:270403デフォルトの名無しさん
2009/11/06(金) 18:08:140404デフォルトの名無しさん
2009/11/06(金) 18:33:45printf(R"[Date: %s
Content-Type: text/html; charset=utf-8
Content-Length: %u
]", date, length);
0405デフォルトの名無しさん
2009/11/06(金) 20:00:490406デフォルトの名無しさん
2009/11/06(金) 20:06:29今の仕様が一貫性を欠いていて憶えにくいだけで、
例えば関数テンプレートを部分特殊化できないとか、
コンストラクタ実引数からクラステンプレート仮引数を導出できないとか、
その辺はむしろ「増やす」ことによってより単純化できるんじゃないか?
0407デフォルトの名無しさん
2009/11/06(金) 20:07:27ふつー、>404ではCRは入らないと思う。
0408デフォルトの名無しさん
2009/11/06(金) 20:18:110409デフォルトの名無しさん
2009/11/07(土) 02:39:060410デフォルトの名無しさん
2009/11/07(土) 13:15:38intrinsicsが浸透しつつある今ではインラインアセンブラの必要性自体が急速に減りつつあるけど。
0411デフォルトの名無しさん
2009/11/07(土) 13:30:00カッコ悪くなるからイラない。
0412デフォルトの名無しさん
2009/11/07(土) 14:00:190413デフォルトの名無しさん
2009/11/07(土) 14:38:040414デフォルトの名無しさん
2009/11/07(土) 14:42:310415デフォルトの名無しさん
2009/11/07(土) 15:47:310416デフォルトの名無しさん
2009/11/07(土) 15:51:49それは「括弧笑い」やー!
0417デフォルトの名無しさん
2009/11/07(土) 16:53:541)
extern "C"
2)
typename Hoge<Fuga>::type x;
3)
Hoge::Hoge()
try: mem(0)
{ ...
4)
Hoge Hoge::operator ++(int)
5)
p->~Hoge();
Hoge::operator delete(p, x, y);
0418デフォルトの名無しさん
2009/11/07(土) 19:35:590419デフォルトの名無しさん
2009/11/07(土) 19:39:510420デフォルトの名無しさん
2009/11/07(土) 19:52:44intの意味のなさじゃね
前置と後置を区別する方法は他になかったのかと
0421デフォルトの名無しさん
2009/11/07(土) 20:02:070422デフォルトの名無しさん
2009/11/07(土) 20:12:28Borland では通らないけど、これは
15 Exception handrling の 1 の
function-try-block:
try ctor-initializer opt compound-statement handler-seq
に違反してるな
0423デフォルトの名無しさん
2009/11/07(土) 20:19:190424デフォルトの名無しさん
2009/11/07(土) 20:47:59:をctor-initializer_optじゃなくて、
tryの方にくっつけるスタイルは始めて見た。
まあ4のoperator++が圧倒的にダサイ。
>>417さんはoperatorの後ろに空白入れるんだな。これも珍しい。
0425デフォルトの名無しさん
2009/11/07(土) 20:55:390426デフォルトの名無しさん
2009/11/07(土) 21:02:02intrinsicsって何ですか?
0427デフォルトの名無しさん
2009/11/07(土) 22:29:500428デフォルトの名無しさん
2009/11/07(土) 22:35:145) はちがくね?
p->Hoge::~Hoge();
0429デフォルトの名無しさん
2009/11/08(日) 02:55:080430デフォルトの名無しさん
2009/11/09(月) 12:07:54○ちがわね?
○ちがってね?
×ちがくない
○ちがわない
○ちがってない
0431デフォルトの名無しさん
2009/11/09(月) 12:51:480432デフォルトの名無しさん
2009/11/09(月) 12:59:230433デフォルトの名無しさん
2009/11/09(月) 16:39:590434デフォルトの名無しさん
2009/11/09(月) 20:44:510435デフォルトの名無しさん
2009/11/10(火) 18:51:22| || ロロロロロロ || がしゃーん
| || ・ ・・・ ・・ ||
| || ロロロロロロ ||
| || Coca Θ.|| がしゃーん
| ||口口口□||
|ミ||====||
 ̄ ̄ ̄ ̄
自動販売機だよ
自動で販売してくれる凄いやつだよ
0436デフォルトの名無しさん
2009/11/10(火) 19:59:220437デフォルトの名無しさん
2009/11/11(水) 13:35:24DarwinのGrand Central Dispatchで採用された"Blocks"が、
FreeBSDでもGCDとともに導入されて、勢力を拡大しそうな感じです。
C++ではなくてCの拡張機能ですが。
http://libdispatch.macosforge.org/
http://developer.apple.com/mac/articles/cocoa/introblocksgcd.html
0438デフォルトの名無しさん
2009/11/11(水) 14:15:22http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1370.pdf
http://clang.llvm.org/docs/BlockLanguageSpec.txt
http://clang.llvm.org/docs/BlockImplementation.txt
0439デフォルトの名無しさん
2009/11/12(木) 21:38:570440デフォルトの名無しさん
2009/11/12(木) 21:50:540441デフォルトの名無しさん
2009/11/12(木) 23:16:01C/C++の代わりにはならない
0442デフォルトの名無しさん
2009/11/12(木) 23:34:17なぜ?
0443デフォルトの名無しさん
2009/11/12(木) 23:39:01お前の言い方だと
GC付き言語はC/C++の代わりにはならない
と言っているようにしか取れないんだけど、
何で?
0444デフォルトの名無しさん
2009/11/12(木) 23:41:29勉強しろ。お前には説明してもわからんよ
0445デフォルトの名無しさん
2009/11/12(木) 23:42:150446デフォルトの名無しさん
2009/11/12(木) 23:42:411秒を争う処理の最中に呑気にゴミ拾い始めたらどうするつもり?
0447デフォルトの名無しさん
2009/11/12(木) 23:44:480448デフォルトの名無しさん
2009/11/12(木) 23:50:130449デフォルトの名無しさん
2009/11/12(木) 23:53:05> 勉強しろ。
お前は勉強した気になっているだけだろ。
0450デフォルトの名無しさん
2009/11/13(金) 00:01:16アプリならそれでいいんだろうけど、C++の得意分野で大事なのは最悪実行時間の方
少なくとも現代のGCはその方面では話にならない
ところでN3000の最後に付いてる新しいindexは便利ですね
0451デフォルトの名無しさん
2009/11/13(金) 00:08:130452デフォルトの名無しさん
2009/11/13(金) 00:35:19致命傷だも
0453デフォルトの名無しさん
2009/11/13(金) 00:43:04もっとも、そろそろRTシステムのプログラミングは全部MATLABのオートコーダが持っていっちゃいそうな雰囲気だけどね
0454デフォルトの名無しさん
2009/11/13(金) 01:08:00がんばれGoogleまけるなGoogle!
0455デフォルトの名無しさん
2009/11/13(金) 01:43:40わかるけどさ
0456デフォルトの名無しさん
2009/11/13(金) 01:51:02言語仕様のレベルで多機能や新しいパラダイムやスタイルを追っかけていけば意味不明になってくさ。
0457デフォルトの名無しさん
2009/11/13(金) 01:52:57GoがGCをオフにできるなら話は別だけどね。
どんな時にも使わなきゃいけないのなら、「C++にできてGoにできないことがある」わけで、
C++の必要性は潰えないのでは。
0458デフォルトの名無しさん
2009/11/13(金) 03:45:52逆にCでもメモリアロケートすればGCと同様のペナルティがある
ってDの人がいってた
0459デフォルトの名無しさん
2009/11/13(金) 05:05:48とりあえずそのDの人はGCのペナの意味とかほとんど分かってないだろうな
0460デフォルトの名無しさん
2009/11/13(金) 08:15:140461デフォルトの名無しさん
2009/11/13(金) 10:53:10GCがなくてもあまりいみないよ。
たとえばnew や malloc でヒープからメモリを利用する。
解放する、利用する、解放する、利用する、
そうすると、ヒープが断片化する。
断片化したメモリは、連続して扱えないから、
それを集めるガベージコレクションに似た操作が必要になる。
0462デフォルトの名無しさん
2009/11/13(金) 10:55:36あらかじめプールするんだが
0463デフォルトの名無しさん
2009/11/13(金) 11:02:190464デフォルトの名無しさん
2009/11/13(金) 11:03:19その機能がOSに無ければOSが動かなくなるだろ
98以前は再起動必要だったりしたが
0465デフォルトの名無しさん
2009/11/13(金) 11:10:35お前、アプリがメモリ要求したときに
いちいちOSからメモリをもらっていると思っているの?
そんなことしたらパフォーマンスが劣る
標準ライブラリが、OSからある一定量まとめて取得した後
アプリの要求に対して細かくメモリを割り当てているんだが。
0466デフォルトの名無しさん
2009/11/13(金) 11:25:41プールを確保・破棄すれば
断片化はある程度避けられるんだ
0467デフォルトの名無しさん
2009/11/13(金) 11:33:380468デフォルトの名無しさん
2009/11/13(金) 16:57:11特にゲームではそれが問題になる。
あと、デストラクタがいつ呼び出されるのかわからなくなってRAIIがなくなるのが痛い。
0469デフォルトの名無しさん
2009/11/13(金) 17:37:26200x年最後のWorking Draftがn3000か。
結局Move Constructorはどうなるんだろうね。
0470デフォルトの名無しさん
2009/11/13(金) 17:38:37たいていの言語はGCを手動で実行・一時停止したり、
あらかじめメモリをプールしたり、特定のオブジェクトだけ破壊する方法をもってるよ。
0471デフォルトの名無しさん
2009/11/13(金) 18:01:51つまり結局手動でメモリ管理しなきゃならないわけだ
0472デフォルトの名無しさん
2009/11/13(金) 18:04:48GCのスケジューリングをメモリ管理と呼ぶならそうだな。
RAIIに関しては糖衣構文でかけるようになってる場合が多いから楽なもんだが
0473デフォルトの名無しさん
2009/11/13(金) 18:40:54GCが管理するメモリって自分が書いたコードのみならず、ライブラリも含まれるから、GCの動作を見積もれないよ。
手動でGCを操作するぐらいなら、GCない方が楽だし安全だと思う。
>>472
RAIIは、全てのクラスに対してRAIIが働くことが保障されてこそ、大きなメリットがあるんじゃない?
0474デフォルトの名無しさん
2009/11/13(金) 21:29:40C++の存在意義がなくなっちゃうじゃん。
0475デフォルトの名無しさん
2009/11/13(金) 21:32:03C++でもRAII使いたかったらオブジェクトをスタックに割り当てる必要があるだろ。
プログラマが気を遣うのはその程度で済むようになってる
0476デフォルトの名無しさん
2009/11/13(金) 21:35:34お前が確保したメモリは
物理メモリなのか
ディスク上のswapなのか
把握できるとでも言うのか?
0477デフォルトの名無しさん
2009/11/13(金) 21:40:16初めて一人前のC++使い
0478デフォルトの名無しさん
2009/11/13(金) 21:50:030479デフォルトの名無しさん
2009/11/13(金) 21:50:250480デフォルトの名無しさん
2009/11/13(金) 23:20:40RAIIとは言わないのかもしれないが、ヒープに割り当てた時でも、
オブジェクトが参照されなくなったらすぐにメモリ解放と一緒にデストラクタが呼ばれる事にメリットはあると思う。
0481デフォルトの名無しさん
2009/11/13(金) 23:30:58メモリは解放を遅延しても大して問題にはならないけど、
ファイルハンドルとかロックみたいに正しい時期に解放する必要のある資源も
デストラクタ+RAIIだとうまいこと扱えるのがいいところ
0482デフォルトの名無しさん
2009/11/13(金) 23:38:40ここを勝手に解釈されることが問題なわけだが
0483デフォルトの名無しさん
2009/11/14(土) 05:04:54スワップ禁止の物理メモリに確保するAPIとか普通あると思うけど
そういうのが必要な時にそれを使えると使えないとの違いは大きい
必要ない時でも、RAIIの方がタイミングはコントロールしやすい
GCのメリットっつーと、メモリ資源の解放が表舞台から隠蔽される、って点だろ?
最大のメリットは、コーディングしなくても面倒見てくれる、という点で、バグの入る
余地が無いに等しい
が、RAIIもきっちり運用すればバグの入る余地は乏しく、メモリ資源以外にも適用可能
だったりする訳だが
で、GCに付随するデメリットが響くようなアプリケーションなら、明らかに向いてない
訳で、別に世の中みんなそういうアプリなんて話じゃないから、使える場面では使える
だろうさ
0484デフォルトの名無しさん
2009/11/14(土) 05:15:050485デフォルトの名無しさん
2009/11/14(土) 05:55:07しかしながらGCの存在が問題になる対象も確実にあり、C++はこれを切り捨てない。
他でもないC/C++が必要になる場面はこれからもあるだろう。
そもそもの原因であるGo言語の設計者もインタビューで「既存の何かを
置き換えるものではない」と言ってるし。
0486デフォルトの名無しさん
2009/11/14(土) 10:31:270487デフォルトの名無しさん
2009/11/14(土) 10:34:32そんなんあったら俺に教えてくれ。
0488デフォルトの名無しさん
2009/11/14(土) 10:39:13C++みたいに膨大な利用ベースを持つ言語になると、そういうのも考えづらいが
0489デフォルトの名無しさん
2009/11/14(土) 11:03:300490デフォルトの名無しさん
2009/11/14(土) 11:05:520491デフォルトの名無しさん
2009/11/14(土) 11:14:590492デフォルトの名無しさん
2009/11/14(土) 11:19:56フリーランチは終わったし、アムダールの法則も健在だから、当面はC++でいいけど。
0493デフォルトの名無しさん
2009/11/14(土) 11:25:38俺もそれは思う。
だが!
ここは C++0x スレだ
お前らいい加減に実りある C++0x の話をしろ!
0494デフォルトの名無しさん
2009/11/14(土) 17:34:00GC付きの言語でも明示的にオブジェクトを破壊することができるから、それは全くの杞憂
0495デフォルトの名無しさん
2009/11/14(土) 17:40:25その場合、GCは無駄なオーバーヘッドになるが
0496デフォルトの名無しさん
2009/11/14(土) 17:46:50GC管理外のリソースを持っているオブジェクトだけ破壊すればいいのであってすべて明示的に壊す必要はない
0497デフォルトの名無しさん
2009/11/14(土) 18:49:58C++0xにGCが導入されるならともかく、
されない以上 その話題は禁止!
0498デフォルトの名無しさん
2009/11/14(土) 18:51:36時間予測できればいいならGCありでもよさそうな気がする。
旧式のマークアンドストップじゃだめだけど。
必要なときにはGCを強制オフってのもいいかもね。
あるいはGCいらないならそれ自体オフにしておけるとか。
リアルタイム系使われるAdaはそういう感じだっけ。
0499デフォルトの名無しさん
2009/11/14(土) 19:21:05API駆使すれば一応出来るってんじゃなくて、言語設計の時点で
0500デフォルトの名無しさん
2009/11/14(土) 19:32:10最後の一言、しみ入るな
#include <gc>
とか、やめて欲しい
0501デフォルトの名無しさん
2009/11/14(土) 21:13:36話すべき事に、もともと実りがないんだから仕方がない。
0502デフォルトの名無しさん
2009/11/16(月) 12:19:26最近覚えたんだね^^
0503デフォルトの名無しさん
2009/11/16(月) 12:53:260504デフォルトの名無しさん
2009/11/16(月) 12:54:23そうするとC++/CLIになる予感
0505デフォルトの名無しさん
2009/11/16(月) 17:09:260506デフォルトの名無しさん
2009/11/16(月) 17:18:30回収しようとするから止まる。
0507デフォルトの名無しさん
2009/11/16(月) 17:31:17大方GCで予測困難な時間が発生するのは是か非かという議論だったと思うが…
誰も何故止まるかなんて話はしてない
あとスレチ
0508デフォルトの名無しさん
2009/11/16(月) 18:17:23GCというのはプログラム一つに一つとは限らないんですよね。
GCで管理されるオブジェクト上の資源を管理する別のGCがあってもいいし、
まったく無関係に独立のGCが複数あってもいい。
いくつでもありうるのです。
それならGCの時間を予測するのは簡単ですよね。
0509デフォルトの名無しさん
2009/11/16(月) 21:12:35ただでさえ複雑なGCが複数動くなんて考えただけでも複雑すぎて恐ろしいんだけど
0510デフォルトの名無しさん
2009/11/16(月) 21:27:580511デフォルトの名無しさん
2009/11/16(月) 22:01:150512デフォルトの名無しさん
2009/11/16(月) 22:07:370513デフォルトの名無しさん
2009/11/16(月) 22:10:500514デフォルトの名無しさん
2009/11/16(月) 22:13:47たまにじゃなくて頻繁に
0515デフォルトの名無しさん
2009/11/16(月) 22:19:26「プログラム一つに一つのGC」という頭の悪すぎる発言がその証拠
0516デフォルトの名無しさん
2009/11/16(月) 22:24:28文章全体が言ってることはバカだけど
0517デフォルトの名無しさん
2009/11/16(月) 22:38:25あぼん した方が良さそうだな。
0518デフォルトの名無しさん
2009/11/16(月) 23:40:300519デフォルトの名無しさん
2009/11/16(月) 23:43:200520デフォルトの名無しさん
2009/11/17(火) 00:55:460521デフォルトの名無しさん
2009/11/17(火) 03:23:37デストラクタと関係ねーじゃん
0522デフォルトの名無しさん
2009/11/17(火) 16:49:13C++を、これ以上、ブクブクに太らせてどうするのだ?
0523デフォルトの名無しさん
2009/11/17(火) 18:29:50太って困るのは実装する人。
0524デフォルトの名無しさん
2009/11/17(火) 18:47:46C++はもう未来はないな。
組み込み専用言語としての未来しかない。
0525デフォルトの名無しさん
2009/11/17(火) 19:04:20「尤もらしく意見する俺すげぇ」
とか思ってんのかしら
0526デフォルトの名無しさん
2009/11/17(火) 19:10:18というか今の実装でお前は満足しているのか?
そんな程度のお前にはTMPをお薦めしよう。
0527デフォルトの名無しさん
2009/11/17(火) 19:15:45動的型付けで書いたコードの方が実行ファイル軽くてしかも速度になんら問題ないというのは良くある話
0528デフォルトの名無しさん
2009/11/17(火) 19:49:130529デフォルトの名無しさん
2009/11/17(火) 19:51:07TMPの利点としてますが、C++がそうだといってるんですよね。
また世の中の全ての言語のTMPが同じようなものといいたいのでしょうね。
僕はそうは思わない。
C++のテンプレートはインライン展開をしないようにできない欠陥があるんだと思う。
0530デフォルトの名無しさん
2009/11/17(火) 20:23:35思う思わないはチラシの裏へどうぞ。
0531デフォルトの名無しさん
2009/11/17(火) 20:24:340532デフォルトの名無しさん
2009/11/17(火) 20:24:43だからどうしたとしか言えんわな
0533529
2009/11/17(火) 20:42:110534デフォルトの名無しさん
2009/11/17(火) 21:54:430535デフォルトの名無しさん
2009/11/18(水) 00:50:24残すところあと1ヶ月半となりました。
0536デフォルトの名無しさん
2009/11/18(水) 01:08:5621世紀は2001年から始まっているのだからして、
最初の10年には2010年の年末までが含まれるべきだ。
0537デフォルトの名無しさん
2009/11/18(水) 01:20:45異議だろ
出直して来い
0538デフォルトの名無しさん
2009/11/18(水) 12:28:2921世紀は2001年から始まっているのだからして、
最初の10年には2010年の年末までが含まれるべきだ。
0539デフォルトの名無しさん
2009/11/18(水) 13:09:440540デフォルトの名無しさん
2009/11/18(水) 13:15:290xの実装を落として自由と安息を手に入れて一気に生きる意味を見失った。
0541デフォルトの名無しさん
2009/11/18(水) 17:52:580542デフォルトの名無しさん
2009/11/18(水) 18:08:35大勢のC++グルが10年づつ時間が必要だというところ。
これからの言語は基本的な小さな言語を定義して、
そのコードを生成する俺様言語の時代だろう。
0543デフォルトの名無しさん
2009/11/18(水) 18:16:430544デフォルトの名無しさん
2009/11/18(水) 20:40:25http://pc12.2ch.net/test/read.cgi/tech/1258431145/
0545デフォルトの名無しさん
2009/11/18(水) 21:30:23ただのLispじゃないか。
0546542
2009/11/18(水) 23:11:07C++のコードを生成してやってもいい。
右辺値参照のような機能は俺様言語にも有用だ。
そういった機能を定義、実装されることを望む。
0547デフォルトの名無しさん
2009/11/21(土) 23:52:40int foo = 1;
using bar = foo;
とかでいい気がするんだけど、こういう文法だと何か面倒が起こるのかな?
0548デフォルトの名無しさん
2009/11/22(日) 00:07:56auto &bar = foo;
これに何か不満が?
0549デフォルトの名無しさん
2009/11/22(日) 00:24:29typdef代わりにusing使ってもよくなるし
multi-wayになること自体は別にいいのでは
>>547
その構文を採用するとなるとtypedefの意味のときに
typenameつけないといけなくなる気がする
using UINT = unsined int;
↓
using typename UINT = unsined int;
0550デフォルトの名無しさん
2009/11/22(日) 00:25:21正:unsigned
0551デフォルトの名無しさん
2009/11/23(月) 07:44:03なんでわざわざ既に別の意味で使われてる&に、
参照の意味を持たせたのだろうか?
0552デフォルトの名無しさん
2009/11/23(月) 07:50:000553デフォルトの名無しさん
2009/11/23(月) 10:56:350554デフォルトの名無しさん
2009/11/23(月) 11:06:44void a(int*);
a(&b);
↓
void a(int&);
a(b);
つまりアドレス演算子を関数側でつけるってこと
既に別の意味といえば & ならビット AND にも使われているわけで
そんなの気にしだしたらきりがない
0555デフォルトの名無しさん
2009/11/23(月) 11:09:000556デフォルトの名無しさん
2009/11/23(月) 11:12:270557デフォルトの名無しさん
2009/11/23(月) 11:30:450558デフォルトの名無しさん
2009/11/23(月) 12:59:40>>554
アドレス演算子、参照の宣言という関連があるところで同じ記号使うのは逆にタチが悪いと思う。
0559デフォルトの名無しさん
2009/11/23(月) 13:05:44無闇に記号使ったら
将来使える記号が無くなって困るんじゃない?
0560デフォルトの名無しさん
2009/11/23(月) 13:10:130561デフォルトの名無しさん
2009/11/23(月) 13:20:290562デフォルトの名無しさん
2009/11/23(月) 13:31:40ポインタだけで何の不足もなかったのに何で付け足したの?
禿げってアホだったの?死ぬの?
0563デフォルトの名無しさん
2009/11/23(月) 13:35:290564デフォルトの名無しさん
2009/11/23(月) 13:35:510565デフォルトの名無しさん
2009/11/23(月) 13:43:18Hoge a,b,c;
c = &a+&b
とか書きたかった?
0566デフォルトの名無しさん
2009/11/23(月) 13:48:43記号じゃなくてもいいでしょ。
D言語は参照にrefっていうキーワード使ってる。
>>561
実際、C/C++は学習に時間がかかるでしょ。
わかりやすくて使いやすいに越したことはないと思うけど。
0567デフォルトの名無しさん
2009/11/23(月) 13:51:120568デフォルトの名無しさん
2009/11/23(月) 13:53:46作るのに困りそうだが
「俺の理解できない物は実用的じゃないオモチャだ」の理論を使えば、心の平穏は
得られるんだろうけど
0569デフォルトの名無しさん
2009/11/23(月) 13:53:480570デフォルトの名無しさん
2009/11/23(月) 13:54:380571デフォルトの名無しさん
2009/11/23(月) 13:58:220572デフォルトの名無しさん
2009/11/23(月) 13:59:35Cから参照の概念を抽出する過程ではC++もあんな感じにしかならんかった気がする。
それがあるからDやらJavaやC#はC++と同じ轍を踏まないようにしたって面も大きい。
歴史を結果から逆に見て批判しても無意味だよ。
0573デフォルトの名無しさん
2009/11/23(月) 14:01:56ポインタ渡しなら中身が書き換えられることが
呼ぶ側も呼ばれる側もソース見れば一目瞭然だった
func(&hoge); なら hoge が書き換えられる可能性があるとみなせるし
&hoge += 1; なら hoge が呼んだ側の変数なんだろうとすぐに分かった
参照渡しを導入したことでそういうメリットがすべて台無しになった
0574デフォルトの名無しさん
2009/11/23(月) 14:02:58x &hoge += 1; なら hoge が呼んだ側の変数なんだろうとすぐに分かった
o *hoge += 1; なら hoge が呼んだ側の変数なんだろうとすぐに分かった
0575デフォルトの名無しさん
2009/11/23(月) 14:03:36その程度の初歩的な話はみんな見飽きてると思うよ
0576デフォルトの名無しさん
2009/11/23(月) 14:05:570577デフォルトの名無しさん
2009/11/23(月) 14:08:19それを整理しただけだと思えばいい >>573
0578デフォルトの名無しさん
2009/11/23(月) 14:09:130579デフォルトの名無しさん
2009/11/23(月) 14:10:050580デフォルトの名無しさん
2009/11/23(月) 14:10:460581デフォルトの名無しさん
2009/11/23(月) 14:11:46いや
それはない
0582デフォルトの名無しさん
2009/11/23(月) 14:15:02それが分からんならCに帰った方が幸せになれる
0583デフォルトの名無しさん
2009/11/23(月) 14:44:30右辺値参照とか見たら発狂するんじゃないのか
0584デフォルトの名無しさん
2009/11/23(月) 14:44:57D言語の例は>>559の「記号は有限」に対する反論のつもりで出した。
C++がD言語のように仕様変更できないのは御尤も。
>>572
確かにC/C++の結果があるから言える事ではある。
0585デフォルトの名無しさん
2009/11/23(月) 14:46:53それで発狂するくらいなら、他の言語でも結局発狂すると思う。
0586デフォルトの名無しさん
2009/11/23(月) 21:29:460587デフォルトの名無しさん
2009/11/23(月) 21:33:070588デフォルトの名無しさん
2009/11/23(月) 23:00:43変数の値が変えられてるのかどうだか分からなくなった。
クソソースをデバッグするときのタイヘンさがパワーアップした。
0589デフォルトの名無しさん
2009/11/23(月) 23:06:01Cでも結局引数が構造体の場合には
余程サイズが小さくない限り
値渡しなんて効率考えたらあり得ない選択だよ。
結局基本構造体はポインタ渡しにせざるを得ない。
逆にC++でも基本型は、値渡しで済む用途の場合
値渡しで渡すのが当然
0590デフォルトの名無しさん
2009/11/23(月) 23:07:570591デフォルトの名無しさん
2009/11/23(月) 23:10:51いや、何を言っているのか。
const参照ならオブジェクトは変更されていないだろ?
そして非constな参照の場合はオブジェクトは変更されている可能性があるだけ。
というかむしろもう俺は変更するぜという意思表示に近い物がある。
0592デフォルトの名無しさん
2009/11/23(月) 23:28:14&は変数書き換えの目印というけど、int const*とかどうするんだろ。コーディング規約で禁止?
0593デフォルトの名無しさん
2009/11/23(月) 23:32:55参照なしなら
int a;
f(a);
g(&a);
の時点で a が変更されるのかどうかがわかるけど
参照があると
void f(int& x);
を見ないとわからないということを言いたいんだろう
0594デフォルトの名無しさん
2009/11/23(月) 23:33:34議論の有無だけでいえば、死ぬほど議論した上でそうなった仕様が殆ど。
だから、自分の経験の枠内でしか物を考えない上、そういった議論の歴史を
解説しているような文書を読み込んだこともない自意識だけのドカタ君が、
「ぼくのすばらしいせんす」だけを頼りに論理を開陳しても、まず間違いなく
滑稽なものにしかならないと思うよ。
0595デフォルトの名無しさん
2009/11/23(月) 23:34:49> 議論の有無だけでいえば、死ぬほど議論した上でそうなった仕様が殆ど。
同意。
わからんやつはこのC++0xの標準化委員会のごたごたを見てみろ!
0596デフォルトの名無しさん
2009/11/23(月) 23:37:30C++0xスレで文句を言ってもだな、……と思う
0597デフォルトの名無しさん
2009/11/23(月) 23:41:46誰も保守できなくなりそうな勢いだから、怖いのだよ
0598デフォルトの名無しさん
2009/11/23(月) 23:43:000599デフォルトの名無しさん
2009/11/23(月) 23:44:09その主な例がC++とUnicode。
0600デフォルトの名無しさん
2009/11/23(月) 23:46:14>const参照ならオブジェクトは変更されていないだろ?
const参照は単にreadonlyな参照であることを表明しているだけだがな。
単にreadonlyなだけなので、読み出すたびに内容が変わっていてもそれは問題ない。
キーワードの問題さえなければreadonly参照とでもするべきだった。
0601デフォルトの名無しさん
2009/11/23(月) 23:46:27じゃあ文句ばかり言ってても始まらんだろ
0602デフォルトの名無しさん
2009/11/23(月) 23:49:30それはまた別の話だね。
ここでのポイントは、いま仕様批判を頑張ってる子の根底にあると思われる
「こんな簡単なこともわからずに、なんでこんな仕様にしちゃったの?」っていう発想は、
自意識過剰な無能によくある「ぼくだけお利口、あとは馬鹿」タイプの勘違いに過ぎないということ。
0603デフォルトの名無しさん
2009/11/23(月) 23:49:57> 既に現実にあるC++
これに問題大ありだからこそ、それを改訂すべく各所で論議されているわけで、
草の根からわき上がる様々な意見こそが貴重な原動力であり、
自らの思うところを黙っていることはただ乗りだと思うぞ
0604デフォルトの名無しさん
2009/11/23(月) 23:50:090605デフォルトの名無しさん
2009/11/23(月) 23:51:21こんな所でか? 冗談キツイっすw
0606デフォルトの名無しさん
2009/11/23(月) 23:51:270607デフォルトの名無しさん
2009/11/23(月) 23:59:06適当に決めてしまって来年中にC++0Aを出せばいい。
0608デフォルトの名無しさん
2009/11/23(月) 23:59:38まだその位置にすら日本はたってないだろ。
時代錯誤というレベルだぜ。
0609デフォルトの名無しさん
2009/11/24(火) 00:01:44そう思うなら黙ってれば?
0610デフォルトの名無しさん
2009/11/24(火) 00:02:00その結果がexportだと思う。
0611デフォルトの名無しさん
2009/11/24(火) 00:19:400612デフォルトの名無しさん
2009/11/24(火) 00:20:200613デフォルトの名無しさん
2009/11/24(火) 00:31:100614デフォルトの名無しさん
2009/11/24(火) 00:33:53C++0xがどうなってるかなんて、分かりようもない。
だから、別の話題にそれるのだろ?
0615デフォルトの名無しさん
2009/11/24(火) 00:39:080616デフォルトの名無しさん
2009/11/24(火) 00:41:040617デフォルトの名無しさん
2009/11/24(火) 00:41:04確かにゴテゴテしているが、
積み重ねられた議論、
公開された提案は宝の山だぜ。
>>455
これは好きだ。
0618デフォルトの名無しさん
2009/11/24(火) 02:48:400619デフォルトの名無しさん
2009/11/25(水) 06:00:10バッドノウハウ言語あげ
0620デフォルトの名無しさん
2009/11/25(水) 07:04:520621デフォルトの名無しさん
2009/11/25(水) 07:30:010622デフォルトの名無しさん
2009/11/25(水) 07:33:400623デフォルトの名無しさん
2009/11/25(水) 07:37:290624デフォルトの名無しさん
2009/11/25(水) 07:41:03中学生にはわからない会話だから入ってきちゃ駄目。
0625デフォルトの名無しさん
2009/11/25(水) 07:44:240626デフォルトの名無しさん
2009/11/25(水) 07:47:020627デフォルトの名無しさん
2009/11/25(水) 07:51:050628デフォルトの名無しさん
2009/11/25(水) 07:58:400629デフォルトの名無しさん
2009/11/25(水) 07:58:440630デフォルトの名無しさん
2009/11/25(水) 08:01:49それ以外はただの脳内
0631デフォルトの名無しさん
2009/11/25(水) 12:12:20実装面からの都合だけギャーギャー並べ立ててる奴
0632デフォルトの名無しさん
2009/11/25(水) 21:05:12言語仕様の設計コンセプトの一つだから、
他の言語ほど使う人最優先で言語仕様を決める
ってワケにはいかないのじゃね?
0633デフォルトの名無しさん
2009/11/25(水) 21:09:08今みたいなことにはなっていなかっただろう
0634デフォルトの名無しさん
2009/11/25(水) 21:52:38C++の前にC++無しだ
0635デフォルトの名無しさん
2009/11/25(水) 22:30:57残念ながらC++はもう終わりです。
これからは俺言語の時代。
0636デフォルトの名無しさん
2009/11/25(水) 22:40:040637デフォルトの名無しさん
2009/11/25(水) 22:58:31そのときあんたは俺言語の非常にコンパクトなバックエンド言語の
コンパイラをセコセコ作ってるだろう。
0638デフォルトの名無しさん
2009/11/25(水) 23:05:300639デフォルトの名無しさん
2009/11/26(木) 08:42:310640デフォルトの名無しさん
2009/11/26(木) 10:39:32俺言語はアセンブリ言語のコードを出力するのではなく
別のコンパクトな言語を生成するだろう。
C++はそのための言語として活用されるだろうか?
そうはならない。
C++は無駄に複雑で、汚い、学習に不向き、
俺言語の要求に応じて改訂するのも非常に大変、面倒くさい。
生産性の非常に高い俺言語が作られいき、
C++を学ぼうとする人は激減し
C++は単体のコンパイラとしてメンテナンスされなくなり
コンパクトな言語に変換されるトランスレータになる。
そしてリタイヤした特殊な人々が墓に入るまで
細々と小さな改訂をしていく…
0641デフォルトの名無しさん
2009/11/26(木) 10:52:410642デフォルトの名無しさん
2009/11/26(木) 10:53:22>コンパイラの実装が簡単になることも
C はそれで普及したけども、C++ はなあ…
0643デフォルトの名無しさん
2009/11/26(木) 11:45:260644デフォルトの名無しさん
2009/11/26(木) 12:01:56池沼が1人か2人くらい暴れてるだけで
あとはいつもどおりの過疎スレです
0645デフォルトの名無しさん
2009/11/26(木) 12:31:59おまえら本当に哀れだな。C++0xの成功は無いよ。
COBOLプログラマがコボラーと呼ばれ散々バカにされ蔑まれただろ。
今度はC++プログラマはプラプラーと呼ばれてコボラーの末路をなぞるんだよ。
0646デフォルトの名無しさん
2009/11/26(木) 12:36:20勘違いしないでよね!
0647デフォルトの名無しさん
2009/11/26(木) 12:36:520648デフォルトの名無しさん
2009/11/26(木) 12:39:200649デフォルトの名無しさん
2009/11/26(木) 12:43:25スレ違い、板違いの話題はご遠慮ください。
C++プログラマの話をしたいならマ板へ。
バカにされたくないという話をしたいなら、よく知らんけど心の病の関係の板へ。
0650デフォルトの名無しさん
2009/11/26(木) 14:47:540651デフォルトの名無しさん
2009/11/26(木) 15:05:09ツンデレ美少女中学生だ!
0652デフォルトの名無しさん
2009/11/26(木) 15:05:480653デフォルトの名無しさん
2009/11/26(木) 16:39:51なんで中学生なんだよ
いや、好きなジャンルだけども。
0654デフォルトの名無しさん
2009/11/26(木) 16:54:200655デフォルトの名無しさん
2009/11/26(木) 18:07:04お経みたいなもんだ。
0656デフォルトの名無しさん
2009/11/26(木) 18:18:07禿に掛けたのですね、わかります
0657デフォルトの名無しさん
2009/11/26(木) 21:06:24実装困難な所ってもうそんなにないんじゃないの
0658デフォルトの名無しさん
2009/11/26(木) 21:53:24治療できますからあきらめないでくだしあ
0659デフォルトの名無しさん
2009/11/26(木) 22:01:390660デフォルトの名無しさん
2009/11/26(木) 22:55:20exportばりばりって・・・
どのコンパイラ使ってるの?Comeau?
>>657
> コンセプト無くなったしexportもD行きになるし
決めつけるなよ。
きっと次のC++1xかC++2xくらいには・・・きっと・・・ね。
0661659
2009/11/26(木) 23:06:43色々面白い
0663デフォルトの名無しさん
2009/11/27(金) 02:21:42最高峰だろ?
最先端技術や研究は、みんなC++じゃね?
0664デフォルトの名無しさん
2009/11/27(金) 02:36:590665デフォルトの名無しさん
2009/11/27(金) 02:56:32普通のアプリを真面目に書く時はC++
組み込みかそれに近い時はCやアセンブラ
素人に書かせる時は、DSLをスクリプト言語で書いて使わせる
何しろ納期の前夜に仕様追加が必要になったりするから、スクリプト言語じゃないと
結構死ねる(スケジュールが完璧な会社なら無用な苦労なのかもしれないが)
0666デフォルトの名無しさん
2009/11/27(金) 03:27:13開発には向かない言語じゃね?
C++は、研究分野や趣味で使うもの。
0667デフォルトの名無しさん
2009/11/27(金) 03:29:210668デフォルトの名無しさん
2009/11/27(金) 03:48:230669デフォルトの名無しさん
2009/11/27(金) 09:03:09以前からjavaを使ってるところは変わらずjava
vbを使ってたところはvb.net
処理速度や実行効率を求める場合にC++を使う
0670デフォルトの名無しさん
2009/11/27(金) 10:42:27理解できないのは言語のせいでもあるしお前のせいでもある。
どっちにしろ理解できてる奴には関係ない話。
0671デフォルトの名無しさん
2009/11/27(金) 11:32:33そりゃツールとかではスクリプトも使うけどさ
0672デフォルトの名無しさん
2009/11/27(金) 11:47:030673デフォルトの名無しさん
2009/11/27(金) 11:54:060674デフォルトの名無しさん
2009/11/27(金) 13:20:02仕事で作る場合は、スキルが上から下まで
いろいろなヤツが居て、チームで作るからな。
大きなプロジェクトになればなるほど。
そんな状況でC++を選択するのは、リスク管理
の意識が低すぎて、SE失格。
ハゲには悪いが、現実的に大規模開発にC++は向かない。
だから、スキルの高いやつだけが集まって、
あるいは個人で、シコシコやる分には、問題ない。
それが、研究だったり、趣味だったりするのだろ?
0675デフォルトの名無しさん
2009/11/27(金) 13:35:19企業でもスキルの高い奴が集まってるとこは普通にあるしな
結局は「理解できないなら使うな」に戻るんだよ、企業だろうが個人だろうが
0676デフォルトの名無しさん
2009/11/27(金) 13:39:540677デフォルトの名無しさん
2009/11/27(金) 13:43:53パワーアップするのか?緩和されるのか?
0678デフォルトの名無しさん
2009/11/27(金) 13:45:180679デフォルトの名無しさん
2009/11/27(金) 13:58:240680デフォルトの名無しさん
2009/11/27(金) 14:06:280xになっても同様に困難だろう
まぁ、中級者向けのトラップみたいなのは減るんじゃね?
0681デフォルトの名無しさん
2009/11/27(金) 14:22:24上でだれかが書いてたようにスキルのレベルが違うプログラマ
が共同で開発するには危険な言語だ。
組込系でももっぱらC言語が使われていてEmbedded C++さえ
使われていないそうな。
個人の趣味で使う、あるいはC++の達人がソフトウェアの核の部分を
一人で開発するのには向いているかもしれんが。
まして、C++0xなんかリリースしても一般のプログラマからは
「勝手にゴチャゴチャやってろ。どうせ使わんから」と却下され
てしまうのでは? Modula2みたいにね。
マイクロソフトもC++/CLRだかC++/CLIだかの標準規格認定を
却下されてからはC++に対してやる気なしだというし。
C++規格委員会そのものが世間から浮き上がったカルト集団
になってるんじゃね?
0682デフォルトの名無しさん
2009/11/27(金) 14:24:310683デフォルトの名無しさん
2009/11/27(金) 14:38:26Goってウインドウツールキットってある??
0684デフォルトの名無しさん
2009/11/27(金) 14:38:34自称C++の達人とか邪魔どころか痛い。
0685デフォルトの名無しさん
2009/11/27(金) 15:00:050686デフォルトの名無しさん
2009/11/27(金) 15:13:00より生産効率の高い言語があったらそれを使いたいと思うでしょ。達人か素人か関係なく。
0687デフォルトの名無しさん
2009/11/27(金) 15:23:31あと、メジャーなオープンソースでは WebKit とか Qt は C++ だよね
0688デフォルトの名無しさん
2009/11/27(金) 15:25:53付いてこられない開発者に悩まされる心配も全く無いし
0689デフォルトの名無しさん
2009/11/27(金) 15:44:380690デフォルトの名無しさん
2009/11/27(金) 15:58:23>Embedded C++さえ
なんで「紗江」なのか知らんが、好き好んであんな糞使う人もあんまりいないだろう。
(よく解んない人が採用決めちゃうと渋々使うしかないかも知れんが)
0691デフォルトの名無しさん
2009/11/27(金) 15:58:55○さえ
0692デフォルトの名無しさん
2009/11/27(金) 16:03:34消えたのではない、死んだ。
0693デフォルトの名無しさん
2009/11/27(金) 16:45:09組み込みのガーベジコレクションのない
オブジェクト指向言語はいくらでもあるんだから。
0694デフォルトの名無しさん
2009/11/27(金) 16:57:11正直templateよりも仮想関数よりも、namespaceが一番大事と思うんだが。
0695デフォルトの名無しさん
2009/11/27(金) 17:43:16誰が使うか
0696デフォルトの名無しさん
2009/11/27(金) 17:56:51問題は出来た物がサブセットになってなかったことだ
0697デフォルトの名無しさん
2009/11/27(金) 17:58:55SubsetじゃなくてSabusettoなのは馬鹿専用の印な。
0698デフォルトの名無しさん
2009/11/27(金) 18:40:250699デフォルトの名無しさん
2009/11/28(土) 01:02:200700デフォルトの名無しさん
2009/11/28(土) 03:21:380701デフォルトの名無しさん
2009/11/28(土) 10:00:500702デフォルトの名無しさん
2009/11/28(土) 10:03:15まて、それだと
そのソースはWindows以外では使えないソースってことか?
・・・まあそう気を落とすな。
0703デフォルトの名無しさん
2009/11/28(土) 10:14:160704デフォルトの名無しさん
2009/11/28(土) 10:45:29違うと思う。boostでも使われてるし。
http://www.boost.org/doc/libs/1_41_0/boost/non_type.hpp
0705デフォルトの名無しさん
2009/11/28(土) 10:59:20その
template <typename T, T n>
struct non_type { };
って何に使うんでしょうか?
0706デフォルトの名無しさん
2009/11/28(土) 11:26:12というか下位レイヤがクローズドソースのC++だと死ねる。仕様書もUMLも隠し、ドキュメントも不十分とか止めれ本当。
0707デフォルトの名無しさん
2009/11/28(土) 11:29:19いきなり何の話をし始めるw
?
0708デフォルトの名無しさん
2009/11/28(土) 17:50:170709デフォルトの名無しさん
2009/11/28(土) 18:08:150710デフォルトの名無しさん
2009/11/28(土) 18:56:000711デフォルトの名無しさん
2009/11/28(土) 21:30:38このスレをC++ 0x7と思ってるとかな
0712デフォルトの名無しさん
2009/11/28(土) 21:39:450713デフォルトの名無しさん
2009/11/28(土) 21:52:33思っていたのだが、そうでもなかったりするのか?
0714デフォルトの名無しさん
2009/11/29(日) 00:18:350715デフォルトの名無しさん
2009/11/29(日) 00:29:210716デフォルトの名無しさん
2009/11/29(日) 01:11:20次期規格「HTML5」のスレなのに、HTMLスレのパート5と認識している奴がいるのでは?という話。
0717デフォルトの名無しさん
2009/11/29(日) 01:12:31戦いはそれから
次の規格はテンプレの理不尽さをもっと合理的にまとめてくれると希望的観測をしている
スーパーセットの皮を被った本当はサブセット
へたするとテンプレートと C++ コアで機能拡大しながらその実簡素化という舵を切ってくれることを期待してる
テンプレート型のテンプレート引数で柔軟性を飛躍的に向上させた列概念を待っている
0718デフォルトの名無しさん
2009/11/29(日) 01:19:210719デフォルトの名無しさん
2009/11/29(日) 02:53:55遅レスだけどC++標準の仕様だよ。もちろん0x以前でも。
boost::non_type は何に使うのかようわからんけど、
boost::mpl::integral_c<T, N> で型として扱える定数をつくったりとか。
0720デフォルトの名無しさん
2009/11/29(日) 03:10:190721デフォルトの名無しさん
2009/11/29(日) 03:12:440722デフォルトの名無しさん
2009/11/29(日) 04:39:410723デフォルトの名無しさん
2009/11/29(日) 05:16:290724デフォルトの名無しさん
2009/11/29(日) 08:09:350725デフォルトの名無しさん
2009/11/29(日) 08:11:170726デフォルトの名無しさん
2009/11/29(日) 08:39:290727デフォルトの名無しさん
2009/11/29(日) 09:04:56そのうちコインやら王冠が出てきそうだな
0728デフォルトの名無しさん
2009/11/29(日) 10:10:42それ何て マr ・・・ うわなにをするやめ
0729デフォルトの名無しさん
2009/11/29(日) 12:54:23> 次の規格はテンプレの理不尽さをもっと合理的にまとめてくれると希望的観測をしている
ドラフト読めよw
0730デフォルトの名無しさん
2009/11/29(日) 13:05:150731デフォルトの名無しさん
2009/11/29(日) 13:21:350732デフォルトの名無しさん
2009/11/29(日) 13:46:59base64 だけであと 54年持つなw
0733デフォルトの名無しさん
2009/11/29(日) 14:09:180734デフォルトの名無しさん
2009/11/29(日) 20:58:40範囲ではなく具体的な制定年を指定ということでは?
0735デフォルトの名無しさん
2009/11/29(日) 21:06:22そうなのか!それなら今のペースでも余裕で間に合うな!
0736デフォルトの名無しさん
2009/11/29(日) 21:35:130737734
2009/11/29(日) 21:41:540738デフォルトの名無しさん
2009/11/29(日) 21:57:45何の問題ないのに、みんなバカなのか?
0739デフォルトの名無しさん
2009/11/29(日) 22:23:32ドキュメントのバージョンが細かく上がってくからそういう風になったんでない?
ここで切りましょう。的な。
0740デフォルトの名無しさん
2009/11/29(日) 22:50:03C++0xで何か問題でも起こりますか?
0741デフォルトの名無しさん
2009/11/29(日) 23:06:132100年問題が起きるだろ……
0742デフォルトの名無しさん
2009/11/29(日) 23:12:300743デフォルトの名無しさん
2009/11/30(月) 11:07:460744デフォルトの名無しさん
2009/11/30(月) 11:15:060745デフォルトの名無しさん
2009/11/30(月) 16:11:370746デフォルトの名無しさん
2009/11/30(月) 17:24:540747デフォルトの名無しさん
2009/11/30(月) 17:26:36それが constexpr の目的の一つ。
0748デフォルトの名無しさん
2009/11/30(月) 18:11:34気のせいだろ。
0749デフォルトの名無しさん
2009/11/30(月) 21:09:010750デフォルトの名無しさん
2009/11/30(月) 21:18:200751デフォルトの名無しさん
2009/12/07(月) 13:53:42using static_if = typename boost::mpl::if_c<cond, A, B>::type;
template aliasを使えばメタ関数の定義が楽になって呼び出す時も
typenameとか::typeを書かなくて済むと思うんだけどあってる?
0752デフォルトの名無しさん
2009/12/07(月) 14:51:44どうでもいいがVC10betaは本当に0xの役に立つ機能だけごっそり実装されてなくて悲しくなってくるな。
0753デフォルトの名無しさん
2009/12/07(月) 20:49:44VC9はスルーしていまだにVC8だけど、VC10は買うよ。
0754デフォルトの名無しさん
2009/12/07(月) 20:57:410755デフォルトの名無しさん
2009/12/07(月) 21:23:020756デフォルトの名無しさん
2009/12/07(月) 22:41:410757デフォルトの名無しさん
2009/12/08(火) 13:37:33↑このような関数について、
C++ 2003 では f() + f() の結果は引数の評価順が未規定であることにより
一意に定まりませんが、関数呼び出しに伴うシーケンスポイントがあるので
未定義の動作とはなりません。
これは「シーケンスポイント」が無くなる次期規格でも同じなんでしょうか?
同じだとするとどういう解釈になるんでしょうか?
ドラフト N3000 を見たところ、 1.9 p15 に以下の記述がありました。
> If a side effect on a scalar object is unsequenced relative to either
> another side effect on the same scalar object or a value computation
> using the value of the same scalar object, the behavior is undefined.
上記の例で x について2回発生する副作用がお互いに sequenced となれば
いいようですが、式中の2つの関数呼び出し内にある副作用についての
sequencing がどうなるのか、よくわかりませんでした。上記の記述に続く
"When calling a function ..." で説明されている気配はあるのですが。
「元々結果が定まらなかったんだから、こっそり未定義に格下げしたって
だれも困りゃしねーよ。」
とかいう話になってたりしないか心配です。
0758デフォルトの名無しさん
2009/12/08(火) 19:03:10今までもこれからも、処理系定義だと
思ってたけど、違うの?
0759デフォルトの名無しさん
2009/12/08(火) 21:06:19質問なのですが、標準C++ 2003において、
static int x;
(++x)+(++x)
これは未定義の動作ですよね?
ところが
int f() { static int x; return ++x; }
f() + f()
は
> 関数呼び出しに伴うシーケンスポイントがあるので
不定の動作になるということでしょうか?
(つまり一応動作はするということでしょうか?)
0760デフォルトの名無しさん
2009/12/08(火) 22:35:49評価順序は不定(unspecified)だよ。
> 14882:2003 5/4
>Except where noted, the order of evaluation of operands of individual operators and subexpressions of individual
>expressions, and the order in which side effects take place, is unspecified.
0761デフォルトの名無しさん
2009/12/08(火) 23:03:53++の前値と後置を間違えてない?
(x++)+(x++) ならコンパイラ依存だけど
(++x)+(++x)の結果は無問題.
int f() { static int x; return x++; }
f()+f() も無問題. 不定な例にするなら
extern int x;
int f1() { return x++; }
int f2() { x *= 2; return x; }
で f1()+f2() とか
0762デフォルトの名無しさん
2009/12/08(火) 23:19:40引数の評価は関数実行前に sequenced、
一方、他に特に明示されていない場合は、関数の実行と(呼び出し側の)その他の評価との間は indeterminately sequenced
(sequenced だけどどっちが先かは unspecified)って書いてあるみたい。
ということで結論は従来通り未規定のままだと思われ。
>758
n3000 だと 1.9/15
> Except where noted, evaluations of operands of individual operators and of subexpressions of individual
> expressions are unsequenced.
でやっぱり処理系定義ではないね。
オーバーラップしても OK なので制約が緩くなってると考えてもいいんじゃないかな。
0763759
2009/12/08(火) 23:24:11おっしゃるとおり、
前値と後置を間違えていたようです。
(++x)+(++x)の結果はいつも同じになるのですね。
>(x++)+(x++) ならコンパイラ依存だけど
こちらは未定義の動作ということでよろしいでしょうか?
0764デフォルトの名無しさん
2009/12/08(火) 23:34:02「コンパイラ依存」は implementation defined か undefined behaviour かどっちの意味で言ってる?
sequence point 間で 2 回値を変更しているから (++x)+(++x) はやっぱり undefined behavior じゃないの?
n3000 だとこんな例もあるよ?
f(i = -1, i = -1); // the behavior is undefined
特に↑の新しいルールだと実行がオーバーラップしうるからなおさら undefined behavior を示唆する気もする。
0765デフォルトの名無しさん
2009/12/08(火) 23:51:25(++x)+(++x)はundefined behaviorだったと思うんだけど。
> f(i = -1, i = -1); // the behavior is undefined
は知らなかった。ありがとう。
やっぱC/C++言語って難しい。
0767デフォルトの名無しさん
2009/12/09(水) 00:52:32(++x)+(++x)も未定義。
「どちらから評価するか」が決まっていないのではないよ。
0768757
2009/12/09(水) 01:40:13> 一方、他に特に明示されていない場合は、関数の実行と(呼び出し側の)その他の評価との間は indeterminately sequenced
片方の f() が呼び出された際の ++x と、その外にあるもう一方の f() 呼び出しとの
関係を見れば indeterminately sequenced になるということですね。
片方の f() ともう一方の f() とが unsequenced なので、それぞれの中にある2つの
++x について見ても unsequenced になるんじゃ・・・と思ってましたが、従来どおりという
ことで安心しました。ありがとうございました。
0769デフォルトの名無しさん
2009/12/10(木) 00:28:100770デフォルトの名無しさん
2009/12/10(木) 10:21:12classA * auto ptr = classA(1, 2, 3);
0771デフォルトの名無しさん
2009/12/10(木) 16:29:140772デフォルトの名無しさん
2009/12/10(木) 16:34:070773デフォルトの名無しさん
2009/12/10(木) 16:47:250774デフォルトの名無しさん
2009/12/10(木) 16:47:550775デフォルトの名無しさん
2009/12/10(木) 16:58:260776デフォルトの名無しさん
2009/12/10(木) 17:12:130777デフォルトの名無しさん
2009/12/10(木) 17:20:500778デフォルトの名無しさん
2009/12/10(木) 17:23:03http://pc11.2ch.net/test/read.cgi/prog/1260433369/
0779デフォルトの名無しさん
2009/12/12(土) 19:08:07それはどんな動作を期待しとるん?
コピーなん?参照なん?
0780770
2009/12/12(土) 19:51:30newを忘れてた。
0781デフォルトの名無しさん
2009/12/12(土) 20:12:130782デフォルトの名無しさん
2009/12/12(土) 20:52:400783デフォルトの名無しさん
2009/12/12(土) 23:26:13ptr<int> p(new int(0));
0784デフォルトの名無しさん
2009/12/12(土) 23:59:390785デフォルトの名無しさん
2009/12/13(日) 00:02:170786デフォルトの名無しさん
2009/12/13(日) 00:59:120787デフォルトの名無しさん
2009/12/13(日) 06:06:06const std::ref<std::array<std::ptr<int> > > a;
0788デフォルトの名無しさん
2009/12/13(日) 06:27:240789デフォルトの名無しさん
2009/12/13(日) 06:41:340790デフォルトの名無しさん
2009/12/13(日) 07:22:14要素数を省略できるんだよ
0791デフォルトの名無しさん
2009/12/13(日) 09:00:42あと>>770は論外っつーかスマポをガチで使ったことねーだろ
0792770
2009/12/13(日) 09:29:580793デフォルトの名無しさん
2009/12/13(日) 09:48:450794デフォルトの名無しさん
2009/12/13(日) 10:47:050795デフォルトの名無しさん
2009/12/13(日) 10:50:540796デフォルトの名無しさん
2009/12/13(日) 10:54:02ユーザー定義ポインタが出来てもいいんでは。
T * hogehoge を hogehoge_ptr<T> に変換とか。
0797デフォルトの名無しさん
2009/12/13(日) 10:56:210798デフォルトの名無しさん
2009/12/13(日) 11:01:590799デフォルトの名無しさん
2009/12/13(日) 11:03:130800デフォルトの名無しさん
2009/12/13(日) 11:05:15>>6
で酷評されているw
0801デフォルトの名無しさん
2009/12/13(日) 11:06:12それに気付いて軌道修正できない奴は駄目だが
0802デフォルトの名無しさん
2009/12/13(日) 11:25:49registerさんのイメチェンは何が良い?
0803デフォルトの名無しさん
2009/12/13(日) 12:12:11・・・それが何かはまだ思いつかないけどねw
0804デフォルトの名無しさん
2009/12/13(日) 12:24:090805デフォルトの名無しさん
2009/12/13(日) 12:44:59自分はラムダ式自体使ったことないけどね
0807デフォルトの名無しさん
2009/12/13(日) 13:42:340808デフォルトの名無しさん
2009/12/13(日) 13:48:310809デフォルトの名無しさん
2009/12/13(日) 14:32:590810デフォルトの名無しさん
2009/12/13(日) 14:36:02std::vector<int> v(10);
for (auto i = v.begin(); i != v.end(); ++i)
イテレータの型名とかもかなりタイプ数減らせる。
0811デフォルトの名無しさん
2009/12/13(日) 14:38:40すごいコードですね。
そんな使い方ができるのですね。
0812デフォルトの名無しさん
2009/12/13(日) 15:08:19もういい加減にしたいですよ、まったく。
昔はC++コンパイラはC言語のコードを生成してた。
それがC++の仕様変更でできなくなったのなら、
C言語の次期規格C1Xで再びできるようにすればいいではないのか?
0813デフォルトの名無しさん
2009/12/13(日) 15:20:44C++ to Cトランスレータがあれば極一部の人に便利ではあるかもしれないけど,
多くの最適化ができなくなるだろうし,
テンプレート回りのコンパイルとかはるかに遅くなるだろうから,
そんな処理系を作る人はいないんじゃないかね.
0814デフォルトの名無しさん
2009/12/13(日) 15:54:320815デフォルトの名無しさん
2009/12/13(日) 19:08:310817デフォルトの名無しさん
2009/12/13(日) 19:53:550818デフォルトの名無しさん
2009/12/13(日) 20:12:310819デフォルトの名無しさん
2009/12/13(日) 20:37:57Comeauのこと、時々でいいから思い出してください
0820デフォルトの名無しさん
2009/12/13(日) 20:54:550821デフォルトの名無しさん
2009/12/13(日) 23:43:28いらねーよ、そんなのw
ユーザ定義ポインタ(smart pointer)は今でもつくれるって。
0822デフォルトの名無しさん
2009/12/14(月) 22:39:28テンプレートで使うときに、戻りの型が複雑すぎて手書きできない時なんかに便利。
0823812
2009/12/14(月) 22:56:11それはあなたの仕事。
私はC1X委員会に働きかけて、
C++0xを完全にC1Xに変換できるようにします。
それができたら私は俺言語をつくりC1Xに変換するようにします。
0824デフォルトの名無しさん
2009/12/14(月) 22:58:51どれもチューリング完全だから出来るに決まってるんだが
何をどうしたいの?
0825デフォルトの名無しさん
2009/12/14(月) 23:11:17ttp://live.gnome.org/Vala
このスレで存在を知ってる人ってどのくらいいるんだろうか?
0826デフォルトの名無しさん
2009/12/14(月) 23:39:23結局、コンパイラの高速化などを理由に機械語やアセンブリ言語を
直接吐く処理系が主流になることにかわりはないと思う。
あったらあったで面白いだろうということは否定しないけど。
0827デフォルトの名無しさん
2009/12/15(火) 02:49:47普通にコンパイルしてからC言語ディスコンパイラでも使ってろ
0828デフォルトの名無しさん
2009/12/15(火) 10:59:49そうでない人にとってはどうでもいい話
0829デフォルトの名無しさん
2009/12/15(火) 19:42:04お前の持ってる常識なんて一瞬で翻されるよ。
0830デフォルトの名無しさん
2009/12/15(火) 20:06:00ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1013807615
バカはこれを100回読みな
0831デフォルトの名無しさん
2009/12/15(火) 20:24:40最適化が何なのかもわからないでよく言えるな。
具体的にC++コンパイラでやってる最適化の何が
トランスレータでできないのか言ってみろ。
0832デフォルトの名無しさん
2009/12/15(火) 20:53:54暇を潰したい人だけ参加しな。
0834ちんこ ◆GbXlaaQNk.
2009/12/15(火) 22:25:53C++って使ってて、生きた心地しなくないですか?
メモリ管理も動作とろいし、パフォーマンスもさほど高くないでしょ。
みんなjavaに来いよ。
0835デフォルトの名無しさん
2009/12/15(火) 22:28:560836デフォルトの名無しさん
2009/12/15(火) 22:29:18ところでいつになったらC++0xが正式に採用されるの?
現時点での現実的な見込み時期ってあります?
0837デフォルトの名無しさん
2009/12/15(火) 22:29:23> メモリ管理も動作とろいし
とろい理由を述べよ
ハスケルに目覚めてJava捨てたんじゃなかったのか?
0838ちんこ ◆GbXlaaQNk.
2009/12/15(火) 22:34:31生成が遅くて、回収にも時間がかかると書いてあった。
javaは生成がC++より6倍くらい速くて、回収はほとんど0。
0839デフォルトの名無しさん
2009/12/15(火) 22:42:230840デフォルトの名無しさん
2009/12/15(火) 22:44:370841デフォルトの名無しさん
2009/12/15(火) 22:49:10My word is " C++ is bitch !! ".
Good night.
0842デフォルトの名無しさん
2009/12/15(火) 23:28:210843デフォルトの名無しさん
2009/12/15(火) 23:35:57> わざわざ無駄レスして相当の暇人ですね。
ここはお前の喧嘩だから好きにしてくれればいいけど
> 他の暇人のみなさん、じっくり考えて下さいね。
なんだテメェは。失礼な。
0844デフォルトの名無しさん
2009/12/16(水) 00:31:49土方サイトだから
0845デフォルトの名無しさん
2009/12/16(水) 11:14:01ISO/IECの規格は、成立まで投票を3回(3ヶ月・4ヶ月・2ヶ月)しなきゃいけないんだけど、
1回目の投票が終わったところで例のconceptの一件が発生したので、多分最初からやり直し。
来年の7月からは投票制度が変わる予定なので、若干期間が短縮されるかもしれないけど、
どれだけ順調に行っても来年後半〜再来年頭より早まることはないと思う。
0846デフォルトの名無しさん
2009/12/16(水) 16:57:14> どれもチューリング完全だから出来るに決まってるんだが
無限長のテープを持ったチューリングマシンを用意してから言え。
0847デフォルトの名無しさん
2009/12/16(水) 16:58:300848デフォルトの名無しさん
2009/12/16(水) 17:42:430849デフォルトの名無しさん
2009/12/16(水) 18:03:260850デフォルトの名無しさん
2009/12/17(木) 04:02:37実用的かどうかについては問題あり
0851デフォルトの名無しさん
2009/12/17(木) 09:45:520852デフォルトの名無しさん
2009/12/17(木) 10:49:14って「統一された関数宣言構文」ではどう書けるの?
0853デフォルトの名無しさん
2009/12/17(木) 11:57:48これでいいのか自信は無い
0854デフォルトの名無しさん
2009/12/17(木) 12:13:440855デフォルトの名無しさん
2009/12/17(木) 22:44:42なんか, スゲぶさいく
# lambdaちゃんそっくり
0856デフォルトの名無しさん
2009/12/17(木) 22:49:170857デフォルトの名無しさん
2009/12/17(木) 23:35:140858デフォルトの名無しさん
2009/12/17(木) 23:45:040859デフォルトの名無しさん
2009/12/18(金) 23:58:58C++2xは来るのだろうか?
0860デフォルトの名無しさん
2009/12/19(土) 11:09:58ふゆやすみ?
0861デフォルトの名無しさん
2009/12/19(土) 11:30:220863デフォルトの名無しさん
2009/12/19(土) 13:24:220864デフォルトの名無しさん
2009/12/19(土) 15:50:150865デフォルトの名無しさん
2009/12/19(土) 16:31:480866857
2009/12/25(金) 22:41:28HaskellのエッセンスをC++に生かす研究している人いませんかね。
0867デフォルトの名無しさん
2009/12/26(土) 01:27:35Haskellのエッセンスって何
0868デフォルトの名無しさん
2009/12/26(土) 01:41:370869デフォルトの名無しさん
2009/12/26(土) 02:32:370870デフォルトの名無しさん
2009/12/26(土) 02:39:03でもconceptが入らなくなっちゃったし
実際にHaskellで書いてて他との違いを一番感じるのは無限上等なとこなので
やっぱり遅延評価か
0871デフォルトの名無しさん
2009/12/26(土) 04:41:42型クラスはオーバーロードだったり継承だったりするので
やっぱ遅延評価だよね
0872デフォルトの名無しさん
2009/12/26(土) 08:34:230873デフォルトの名無しさん
2009/12/26(土) 10:52:34> 型クラスはオーバーロードだったり継承だったりするので
これはconceptもtype classも理解してないと言わざるをえない。
Multiple constraintsもassociative type constraintsもC++ 2003にはない。
Generic programmingに重要と考えらえている要素がない。
個人的にはretroactive modelingが弱いのがきつい。
それからC++はconcept baseの0xになっても、
modular typeのサポートが弱い。Cを引き摺ってる。
ただ型の話はDouglas Gregorと愉快な仲間達が
すっかりやっちゃってるので、>>866の言うような余地は余りない。
0874デフォルトの名無しさん
2009/12/26(土) 23:25:40カリー化有りか無しかは言語の特徴として特筆すべきことだと思う
0875デフォルトの名無しさん
2009/12/26(土) 23:30:07C系統の言語なら別に1番目の引数に特別な意味がある訳じゃないし
0876デフォルトの名無しさん
2009/12/26(土) 23:47:480x では型推論してくれるのでHaskellのカリー化より便利か
0877デフォルトの名無しさん
2009/12/27(日) 01:28:41引数を部分的にapplyするためのテンプレート。
0878デフォルトの名無しさん
2009/12/27(日) 11:26:080879デフォルトの名無しさん
2009/12/27(日) 11:55:11難しくて分かりませんって言えよ。w
0880デフォルトの名無しさん
2009/12/27(日) 16:01:27凝縮されてるな
0881デフォルトの名無しさん
2009/12/27(日) 16:18:54要は引数を1つずつ順番に使うってだけの話だし
0882デフォルトの名無しさん
2009/12/27(日) 16:22:25始められないしな
0883デフォルトの名無しさん
2009/12/27(日) 16:39:11つ 関数を引数を一つづつ適用できるようにする
0884デフォルトの名無しさん
2009/12/27(日) 18:36:400885デフォルトの名無しさん
2009/12/27(日) 18:38:120886デフォルトの名無しさん
2009/12/27(日) 23:50:060887デフォルトの名無しさん
2009/12/28(月) 09:05:083引数関数をcurry(f)すると
f(x)(y)(z)
f(x, y)(z)
f(x, y, z)
が全部できるとかならカリー化って感じはするが
0888デフォルトの名無しさん
2009/12/28(月) 11:10:45fusionで上手いこと出来ないかな?
0889デフォルトの名無しさん
2009/12/28(月) 12:53:39ttp://d.hatena.ne.jp/kmizushima/20091216/1260969166
0890デフォルトの名無しさん
2009/12/28(月) 16:30:30実際意味ねー
0891デフォルトの名無しさん
2009/12/28(月) 17:01:010892デフォルトの名無しさん
2009/12/28(月) 22:00:360893デフォルトの名無しさん
2009/12/29(火) 03:14:080894デフォルトの名無しさん
2009/12/29(火) 08:22:40なんでcurryなのよさ。
0895デフォルトの名無しさん
2009/12/29(火) 08:26:170896デフォルトの名無しさん
2009/12/29(火) 08:37:17そうだったのか。
サンクス。
0897デフォルトの名無しさん
2009/12/29(火) 09:02:370898デフォルトの名無しさん
2009/12/29(火) 10:39:44とりあえずでっちあげ。Boost のバージョン違いで codepad だと動かないですが。
http://codepad.org/8h1gFMwQ
>888
fusion をどう使うイメージでしょうか。
引数を fusion に溜めておいて一時オブジェクトの破棄時に関数呼び出し?
0899デフォルトの名無しさん
2009/12/29(火) 11:27:17Haskell Brooks Curry と申します。
0900デフォルトの名無しさん
2009/12/29(火) 20:45:400901デフォルトの名無しさん
2009/12/29(火) 20:55:26またそーやって痛いとこ付いちゃうwww
0902デフォルトの名無しさん
2009/12/29(火) 21:25:330903デフォルトの名無しさん
2009/12/29(火) 21:38:37・curry化概念は実用的です。
・C++はcurry化がなくても実用的な言語です。
・curry化したければboostのLambdaを使って出来ます。
・一般にcurry化そのものよりも部分適用の方が有用です。
・関数がcurry化されているかのように部分適用するために、bindがあります。
0904デフォルトの名無しさん
2009/12/29(火) 23:02:26と言ってみるものの、カリー化があると書いてて楽しいのなんのって
0905デフォルトの名無しさん
2009/12/30(水) 00:57:01fusionで引数を与えて、再帰させならが引数を自動的に減少させていくような記述ができないかな?
0906デフォルトの名無しさん
2009/12/30(水) 00:58:56ただなんとなく。
0907デフォルトの名無しさん
2009/12/30(水) 10:07:55部分束縛(partial binding)なら普通に理解できるだろう(と思う)。
0908デフォルトの名無しさん
2009/12/30(水) 10:18:57m(m < n)引数に変換するのがカリー化
0909デフォルトの名無しさん
2009/12/30(水) 10:42:25普通の多引数関数を高階関数のように使える
ってぐらいしか使い道がわからないな
0910デフォルトの名無しさん
2009/12/30(水) 10:50:31operator()に対して、
関数を引数に適用する
ってぐらいしか使い道がわからないな
って言ってるようなもの。
0911デフォルトの名無しさん
2009/12/30(水) 11:31:08引数の型があらかじめ定まっていないから、色々なデータに対する操作が1引数関数1個で表現できるんだからすごいと思うよ。
0912デフォルトの名無しさん
2009/12/30(水) 11:32:48> 関数を引数に適用する
ちなみにそれ以外の使い道なんてあるの?
0913デフォルトの名無しさん
2009/12/30(水) 11:51:46それ多相ラムダ式の話じゃないかね?
0914デフォルトの名無しさん
2009/12/30(水) 18:00:46加齢化?
0915デフォルトの名無しさん
2009/12/30(水) 18:08:530916デフォルトの名無しさん
2009/12/30(水) 18:34:02すべての関数が部分適用の機能を自動的に持ってる感覚というか、
考えることが一つ減って自由になるみたいな感覚がある。
OCamlの例だけど、リストを条件でフィルタして変換して全部足す、
みたいな処理を、
fold_left (+) 0 (map to_xxx (filter is_xxx lst))
と書くところを、
let (|>) x f = f x
みたいな演算子を定義して(型は 'a -> ('a -> 'b) -> 'b)、
lst |> filter is_xxx
|> map to_xxx
|> fold_left (+) 0
などと(見やすく)書いてみたりとか、さらに引数順が違うユーザー関数
xmap lst f があって、これを map の替わりに使いたいとかなったら、
let flip f x y = f y x
とか汎用的に定義しておけば(型は ('a -> 'b -> 'c) -> 'b -> 'a -> 'c)、
... |> flip xmap to_xxx |> ...
と書けるとか。
型推論とかラムダの記法のせいもあるけど、引数回りのインターフェースを
合わせるのが楽になって、あまり引数を bind してるって感覚が薄くなるのが
便利なのかな。
0917デフォルトの名無しさん
2009/12/30(水) 18:53:11> みたいな処理を、
> fold_left (+) 0 (map to_xxx (filter is_xxx lst))
> と書くところを、
> let (|>) x f = f x
> みたいな演算子を定義して(型は 'a -> ('a -> 'b) -> 'b)、
> lst |> filter is_xxx
> |> map to_xxx
> |> fold_left (+) 0
> などと(見やすく)書いてみたり
それovenとeggで(ry
0918デフォルトの名無しさん
2009/12/30(水) 19:57:10誰がアホや?え?
0919デフォルトの名無しさん
2009/12/30(水) 20:55:43関数オブジェクトの引数の数をコンパイル時に取得する手段がないと汎用的に書けないねぇ
arity_of<F>::value みたいな
というかそもそもオーバーロードされてるとダメか?
オーバーロードとカリー化って相性悪そう
0920デフォルトの名無しさん
2009/12/31(木) 00:40:030921デフォルトの名無しさん
2009/12/31(木) 09:41:050922デフォルトの名無しさん
2009/12/31(木) 09:57:400923デフォルトの名無しさん
2009/12/31(木) 10:36:110924デフォルトの名無しさん
2009/12/31(木) 10:48:530925デフォルトの名無しさん
2009/12/31(木) 10:50:170926デフォルトの名無しさん
2009/12/31(木) 11:03:56もしかしてenable_ifをしっかり書けばコンパイル速くなる?
0927デフォルトの名無しさん
2009/12/31(木) 11:09:330928デフォルトの名無しさん
2009/12/31(木) 11:39:49右辺値を--するとは、乙なことするな。
0929デフォルトの名無しさん
2009/12/31(木) 12:11:150930デフォルトの名無しさん
2009/12/31(木) 12:21:00operator++が参照を返すかも知れないぞ
それより不必要な括弧が言語名につくことこそ問題だと思う
0931デフォルトの名無しさん
2009/12/31(木) 12:27:50そんなクソコードまで予想してなかったわ。
0932デフォルトの名無しさん
2009/12/31(木) 13:18:57それってマイナスじゃん
0933デフォルトの名無しさん
2009/12/31(木) 15:43:10何が?
0934デフォルトの名無しさん
2009/12/31(木) 16:29:360935デフォルトの名無しさん
2009/12/31(木) 19:12:55C#ならもうあるじゃん
0936デフォルトの名無しさん
2009/12/31(木) 19:18:52発表マダー?
0937デフォルトの名無しさん
2009/12/31(木) 19:46:250938デフォルトの名無しさん
2009/12/31(木) 19:54:57UTC-12のタイムゾーンを基準にするなら、更に12時間程度余裕がある
0939デフォルトの名無しさん
2009/12/31(木) 21:12:260940デフォルトの名無しさん
2010/01/01(金) 12:00:270941デフォルトの名無しさん
2010/01/01(金) 12:02:060942デフォルトの名無しさん
2010/01/01(金) 12:40:28>2009/01/01(木) 02:18:43
>いよいよ09年なわけだが
>
>[906]デフォルトの名無しさん<sage>
>2009/01/01(木) 03:41:14
>今年中に纏まるとは思えないのだが。
>
>[907]デフォルトの名無しさん<sage>
>2009/01/01(木) 03:59:11
>日本限定なら09年度という便利な言葉が使えるんだが。
>
>[908]デフォルトの名無しさん<sage>
>2009/01/01(木) 04:04:08
>それでも猶予は4ヶ月しか増えないのだが
>
>[909]デフォルトの名無しさん<sage>
>2009/01/01(木) 06:57:41
>いや、そもそも0x年まであと27年もあるわけだが
>
>[910]デフォルトの名無しさん<sage>
>2009/01/01(木) 07:08:47
>C++0xa
>
>[911]デフォルトの名無しさん<sage>
>2009/01/01(木) 09:10:41
>(++0x)
>だからあと2年猶予があるぞ
0944デフォルトの名無しさん
2010/01/01(金) 22:36:54誰か、公式の完成版仕様書のリンク貼れよ
0945デフォルトの名無しさん
2010/01/01(金) 23:12:06ggrks www
0946デフォルトの名無しさん
2010/01/02(土) 00:56:25(char16_tとchar32_t)
0947デフォルトの名無しさん
2010/01/02(土) 08:11:15http://gcc.gnu.org/gcc-4.5/cxx0x_status.html
ここだとサポートしてる事になってるけど実際には動作しないって事?
0948デフォルトの名無しさん
2010/01/02(土) 11:32:48struct foo { auto f()->int && { ... } };
が int f() && か int && f() のどちらと
解釈されるか?
という問いに正解できるヤツいる?
0949デフォルトの名無しさん
2010/01/02(土) 13:25:00個人blogのネタコピペかっこわるい。
0950デフォルトの名無しさん
2010/01/02(土) 13:25:30よく知ってるなw
0951デフォルトの名無しさん
2010/01/02(土) 18:11:080952デフォルトの名無しさん
2010/01/02(土) 20:29:040953デフォルトの名無しさん
2010/01/02(土) 23:40:33cucharがない
0954デフォルトの名無しさん
2010/01/03(日) 09:47:59ライブラリ側は
> support for char16_t, char32_t
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33979
見る限りは C ライブラリ側の対応待ちじゃないかと思う。
0955デフォルトの名無しさん
2010/01/04(月) 00:09:37C++0xがいつ発表されるのか決着つけてくれだれか
0956デフォルトの名無しさん
2010/01/04(月) 00:21:370957デフォルトの名無しさん
2010/01/04(月) 10:03:410958デフォルトの名無しさん
2010/01/04(月) 13:49:56typedef __CHAR16_TYPE__ char16_t;
typedef __CHAR32_TYPE__ char32_t;
0959デフォルトの名無しさん
2010/01/04(月) 19:32:26今年は012ですよ皆さん。
0960デフォルトの名無しさん
2010/01/04(月) 21:08:50俺は16進だと思う。
0961デフォルトの名無しさん
2010/01/04(月) 21:21:170x
x0
xx
二進数説
0962デフォルトの名無しさん
2010/01/04(月) 21:27:10早くリリースしろ
と叫ぶしか俺らにはできることがない。
0963デフォルトの名無しさん
2010/01/04(月) 21:57:38同感
とは言うものの現 C++ の拙速感(特に STL)はもうたくさん
巧遅を早くやれってことだけど、どないもこないも・・・
0964デフォルトの名無しさん
2010/01/04(月) 22:07:57奇才現る!!
0965デフォルトの名無しさん
2010/01/04(月) 22:27:39今、C++0xの内容も含めてリハビリするとしたら、どの辺りの
ドキュメント・書籍がおすすめ?和書洋書問わず。
0966デフォルトの名無しさん
2010/01/04(月) 22:32:300967デフォルトの名無しさん
2010/01/04(月) 22:37:56○ヒロヒト
0968デフォルトの名無しさん
2010/01/04(月) 23:48:190969デフォルトの名無しさん
2010/01/05(火) 00:57:05なんかURLが羅列してあるだけなんですが
0970デフォルトの名無しさん
2010/01/05(火) 00:59:490971デフォルトの名無しさん
2010/01/05(火) 01:58:29処理系もまだβ臭ぷんぷんなのに
0972デフォルトの名無しさん
2010/01/06(水) 20:41:10それでもなお規格の開発はすすむ。
C++はもう限界を越えて破滅の道を進んでいるんでしょうね。
0973デフォルトの名無しさん
2010/01/06(水) 20:58:270974デフォルトの名無しさん
2010/01/06(水) 20:59:05右辺値参照とかどうなのよって感じ
あれば高速化に寄与するのは分かるけど
それ使ったコードは他の人に分かるんかと
0975デフォルトの名無しさん
2010/01/06(水) 21:04:010976デフォルトの名無しさん
2010/01/06(水) 21:07:34それってある意味とてもすごいことだよな。
でも逆に自分がライブラリを書くときは
そこまで考えて書かないと
こいつなにやってんの?って思われるってことか?
0977デフォルトの名無しさん
2010/01/06(水) 21:16:170978デフォルトの名無しさん
2010/01/06(水) 21:19:30標準ライブラリを利用してもソースコード公開不要
てなライセンスだから、それを越えて実装しないと
実質的に意味ないよね?
0979デフォルトの名無しさん
2010/01/06(水) 21:21:26右辺値参照の準備は、const hoge func()をhoge func()に変えておく必要があるけどな。
0980デフォルトの名無しさん
2010/01/06(水) 21:45:36そういやそうだったな。
Effective C++ に書いてあった内容が
現在にそぐわなくなるわけね。
0981!omikuji!dama
2010/01/06(水) 22:03:25これまでの開発で右辺値参照が欲しいと思ったことがある奴にとっては大変ありがたい
そう思ったことが無い奴にとってはこれからも不要なので気にしなくてよい
0982>976
2010/01/06(水) 23:06:05いままでは
テンポラリオブジェクトはconst参照で捕まえていたが、
あれがnon-constに捕まえられたら少しは早くなるだろうなぁ
と思ったことはある。
レス数が950を超えています。1000を超えると書き込みができなくなります。