09/02/19 23:47:39
同じ事ができるならシンプルな方が正しい。
301:デフォルトの名無しさん
09/02/19 23:54:10
百歩譲ってシンプルな事は認めても、同じ事(表現)はできないだろ
302:デフォルトの名無しさん
09/02/20 00:13:28
EC++は名前空間さえ残してれば単なるC++サブセットでほぼ済んだのに
なんでわざわざ互換性捨てちゃったんだろうな
303:デフォルトの名無しさん
09/02/20 00:44:53
いらないから。
やたら短い関数名つけて検索性下げるバカとか普通に多いから。
304:デフォルトの名無しさん
09/02/20 00:45:36
EC++のメリットがパフォーマンスとか言っちゃうやつらに何いってもね。
305:デフォルトの名無しさん
09/02/20 00:52:47
日本の企業が中心になって決めたから。
306:デフォルトの名無しさん
09/02/20 09:15:46
>>300
それは大きなカンチガイ。
このバカ。
307:デフォルトの名無しさん
09/02/20 10:53:55
シンプルだと言うにも視点はそれぞれだからね
短かく書ければシンプルであるというわけでもない
308:デフォルトの名無しさん
09/02/20 11:00:10
ああ、三項演算子がバグの元とかいうアレですね
309:デフォルトの名無しさん
09/02/20 12:22:46
いいかげんgccのコナピルまんどくせ
310:デフォルトの名無しさん
09/02/20 15:31:51
昔gccにあったSignatureいつか次期C++で復活しないかなぁ。
interfaceなんかより遥に便利そうなんだけど何で廃止されかなぁ。
311:デフォルトの名無しさん
09/02/20 15:32:54
>>303
逆にループ変数にわざわざcounterとかつけてたり、引数に関数名が入ってたりするアホも見たことがある
312:デフォルトの名無しさん
09/02/20 15:50:13
>ループ変数にわざわざcounter
いや、それは別にいいんでねーの。
最近はディスプレイの解像度も上がったし、MSのインテリセンスに代表されるように、
エディタには補完機能があって便利だし。
変数一覧でiとかcntなんて表示されるよりよほど分かりやすそうだ。
引数に関数名ってのがよくわからんが。
こういうのか?
void hoge( int hoges_first_argument, int hoges_second_argument ) ;
313:デフォルトの名無しさん
09/02/20 16:14:24
そんなん
ループ変数の方はアホはいい過ぎだったな
314:デフォルトの名無しさん
09/02/20 16:31:42
>>306
それはシンプルという言葉から、アインシュタイン言うところの
「単純化せよ。ただし単純化しすぎてもいけない」
の後者のケースばかり思い出すから出てくる反応で、
前者を完全スルーするお前の姿勢がカンチガイってオチじゃないの?
315:デフォルトの名無しさん
09/02/20 19:56:49
>>314
アインシュタインはプログラマーか?
つーか、シンプルとか言えたのはアインシュタインが最後だって知ってたか?
このバカ!
316:デフォルトの名無しさん
09/02/20 20:34:28
simplicityとかいった形で数値化できればいいのにな
でさらにある法則に沿って変形していったらsimplicityがmonotonically decreasingになっていってそれを使って機械的にコードを変形して云々
317:デフォルトの名無しさん
09/02/20 20:34:51
アインシュタインのその言葉を引用するには致命的なほど具体性にかけているな。
318:デフォルトの名無しさん
09/02/20 21:23:40
w
319:デフォルトの名無しさん
09/02/20 21:43:09
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
320:デフォルトの名無しさん
09/02/20 23:17:46
>>310
concept来たやん
321:デフォルトの名無しさん
09/02/21 00:14:40
クラス作る時にコンセプト使って
InputIterator my_iterator{/*...*/};
とかやって要件満たしてなかったらエラー出してくれるみたいな使い方ができればよかったのに
322:デフォルトの名無しさん
09/02/21 00:16:33
表記が違うだけで出来るやん
323:デフォルトの名無しさん
09/02/21 00:27:12
いや、そりゃやろうと思えばできるけどさ
こんな風になるのかな
class my_iterator{/*...*/};
template<InputIterator T> class InputIteratorChecker{};
static_assert(sizeof(InputIteratorChecker<my_iterator>));
めんどくさくね?
324:デフォルトの名無しさん
09/02/21 00:29:53
>>315
主旨だけシンプルに書きましょう。
わめいて逃げてるようにしか見えませんw
325:デフォルトの名無しさん
09/02/21 00:49:16
>>323
Only required,
> requires InputIterator
326:デフォルトの名無しさん
09/02/21 01:02:42
>>325
それでどうやって簡単に書くんだ?
requiresってテンプレートとコンセプトの中でしか使えないだろ
327:デフォルトの名無しさん
09/02/21 01:13:26
my_iteratorは、template<~> iteratorとは無縁のクラス、
まったく別のsignatureってわけですか?
だったらconcept_map書くしかないですね。
328:デフォルトの名無しさん
09/02/21 01:18:10
めんどくさい誤解招いてるみたいだからInputIteratorやめる
auto concept HasFoo<class T>{
void foo();
};
があるときに
HasFoo Hoge{void foo(){}}; //OK
HasFoo Fuga{}; //NG
とかできたらいいなー、というのが>>321の趣旨
329:デフォルトの名無しさん
09/02/21 02:01:42
fooにT型の関与なしかあ。
auto concept HasFoo<>{
void foo();
};
template<> class Hoge {
void foo();
};
template<> concept_map HasFoo<Hoge> {
void foo() {}
};
~ Hoge<> ~
でいいのかなあ。
330:デフォルトの名無しさん
09/02/21 02:14:42
めんどくさいなぁ
やりたいことはただ自作クラスがHasFooコンセプト満たしてるかどうかチェックしたいだけだってのに
チェックするためだけにテンプレート化すんの?
馬鹿げてる
331:デフォルトの名無しさん
09/02/21 02:23:59
これでいいじゃん
template<> class Hoge {
void foo();
requires HasFoo<Hoge>;
};
332:デフォルトの名無しさん
09/02/21 02:23:59
auto concept HasFoo<typename T>{
void foo(T);
};
だと、
template<typename T> class Hoge {
requires HasFoo<T> void foo(T) {}
}
って書けるけど。
template<> class Hoge {
requires HasFoo<> void foo() {}
}
はいけるかどうかわからん。もう一回ドラフト読まんと。
333:332
09/02/21 02:26:50
間違えた。
class Hoge {
requires HasFoo<> void foo() {}
}
これは駄目だった。
>>331
ああそだね。
334:デフォルトの名無しさん
09/02/21 02:28:05
>>332
それ以前の問題として
HasFooは簡単なコンセプトだからいいけど
これがもし10個の型名と20個の関数を要求するコンセプトだったら
Hogeの型名と関数全部にそのrequires付けて回る気か?
>>323の方が楽だわ
335:デフォルトの名無しさん
09/02/21 02:31:08
直接こう書ければなんの問題もないのにな
class Hoge {
void foo();
requires HasFoo<Hoge>;
};
336:デフォルトの名無しさん
09/02/21 02:44:18
C++ってほんとに糞言語ですね☆
337:デフォルトの名無しさん
09/02/21 02:45:25
C++がwadlerとかにボロ糞に貶されるところを見てみたい
338:デフォルトの名無しさん
09/02/21 03:30:09
class Hoge : public HasFoo<Hoge> {
void foo();
};
こう書かせろよ。めんどくさいな
339:デフォルトの名無しさん
09/02/21 03:53:18
>>320
配列で使えんやん
340:デフォルトの名無しさん
09/02/21 08:56:53
>>338
class Hoge requires HasFoo {
void foo();
};
ならあり得るかも。
341:デフォルトの名無しさん
09/02/21 12:08:31
>>339
concept_map ?
342:デフォルトの名無しさん
09/02/21 18:07:11
>>341
concept_mapってsignatureのようなことできる様になるの?
便利やね。
struct A
{
//・・・
void Method();
};
struct B
{
//・・・
void Method():
};
signature Sig
{
void Method();
};
Sig array[]={new A(),new B()};//継承関係の無いオブジェクトを代入
array[0].Method();//それぞれ正しいメンバーが呼び出される
343:デフォルトの名無しさん
09/02/21 20:13:06
↓がg++4なら通るけどVC9などintがint&に変えられなくて駄目といって通らない。
これって自分何か勘違いしてますか?VC9のバグってことはありませんか?
struct MyClass {
int value;
void set_value(int v) { value = v; }
int get_value(void) const { return value; }
};
vector<shared_ptr<MyClass> > v;
...vに適当に要素を入れる...
for_each(v.begin(), v.end(), bind(&MyClass::set_value, _1, bind(&MyClass::get_value, _1))); // 駄目子ちゃん
344:343
09/02/21 20:14:24
あ、bindは<functional>のstd::tr1::bind、_1はstd::tr1::placeholders::_1です。
345:343
09/02/21 20:21:13
スレ違いな気がしてきた。C++スレへ行きます。すみません。
346:デフォルトの名無しさん
09/02/22 15:49:24
さあもう一度アインシュタインでなにか例え話してみれば?
347:デフォルトの名無しさん
09/02/22 17:01:38
誰もアインシュタインで例えたことなんて無いと思うが。
348:デフォルトの名無しさん
09/02/22 17:47:07
誰かアインシュタインclass作れよ
349:デフォルトの名無しさん
09/02/22 18:35:28
__declspec(dllimport) class Einstein * __stdcall BangEinstein(void);
class Einstein *Albert=BangEinstein();
350:デフォルトの名無しさん
09/02/22 18:55:22
assert(E==mc2)
351:デフォルトの名無しさん
09/02/22 19:19:11
アインシュタインタンジェント
352:デフォルトの名無しさん
09/02/23 10:05:15
もう拡張メソッドも組み込んじゃえよ
353:デフォルトの名無しさん
09/02/23 19:54:44
C++に拡張メソッドは色々と面倒で厄介な問題があるから無理
354:デフォルトの名無しさん
09/02/23 23:39:28
もうちょっと説明クレ
抽象的な言い方では判らないよ
355:デフォルトの名無しさん
09/02/24 00:23:27
ヒント:拡張メソッドはメンバ関数もどきを提供するんだから
当然ポインタから->を通して呼ぶこともできるべきだよな、C++的に考えて
ここから思いつく面倒ごとに思いを馳せれば現実的じゃないという結論には簡単にたどり着く
356:デフォルトの名無しさん
09/02/24 05:30:40
>>355
テンプレートメンバ関数の特殊化と同じような方法で実装すればいいんじゃね?
あれも新しいメンバ関数をクラスの定義の外で作ってるわけだし。
357:デフォルトの名無しさん
09/02/24 10:13:33
なんか演算子余ってないの?
p->>func() を func(p) の糖衣構文として扱うとかそんなんでいいんだが
358:デフォルトの名無しさん
09/02/24 10:17:34
>>356
特殊化はシグネチャを変えているわけじゃない。
359:デフォルトの名無しさん
09/02/24 15:44:17
>>357
->* とか?
でも (p->*func)() みたいに括弧が必須なのが面倒。
360:デフォルトの名無しさん
09/02/24 18:49:01
>>359
肛門を指してるように見えた俺は逝ったほうがいいんだろうな orz
361:デフォルトの名無しさん
09/02/24 19:02:12
)*(
362:デフォルトの名無しさん
09/02/24 22:53:49
>>352
拡張メソッドのメリットって何?
363:デフォルトの名無しさん
09/02/25 01:13:23
>>361
むしろ梅干し食べてる感じ
364:デフォルトの名無しさん
09/02/25 03:35:03
>>356
難しく考えすぎ
普通に第一引数がthisでそれ以外が普通の関数の定義と同じようになるようにすれば良い。
たとえば
class foo {}; // 定義
class foo { int bar(int baz) { return baz; } }; // 拡張メソッド(C#風)
って書いたら
int foo_extended_method_bar(foo* this, int baz) { return baz;}
って書くのと同じようになるようにすればいい。
でも継承したらどうなるかとかは知らん
>>362
使ったこと無いからわかんないなぁ
rubyのサンプルコードで良く見るけど
365:デフォルトの名無しさん
09/02/25 09:00:55
>>364
なにその生産性の低い記述は。
366:デフォルトの名無しさん
09/02/25 09:13:32
あくまで後から擬似的にメンバメソッドを追加できるようにするシンタックスシュガーでしょ。
あんまりいい例じゃないけど、なんでこの行列クラス、固有値求められないんだよ…ってときに:
#include "matrix"
// class Matrix;
#include "eigenvalues"
// vector<double> eigenvalues(const Matrix& this);
Matrix m;
auto es = m.eigenvalues(); // eigenvalues(m); と同等
Matrix* pm;
pm->eigenvalues(); // eigenvalues(*pm);
367:デフォルトの名無しさん
09/02/25 11:11:44
比較的簡単な処理の流れはメソッドチェイン出来ると楽ってだけかと
ただC++だと例外を軽く使えないからエラー処理をどうしようってことでMaybeモナドが欲しくなる
368:デフォルトの名無しさん
09/02/25 12:10:37
>>366
例が悪すぎます
369:デフォルトの名無しさん
09/02/25 12:45:38
>>366
Matrixをテンプレートの型パラメータで渡したときなんか拡張メソッドの定義includeの読み込み順で拡張メソッドが適用されたりされなかったりするのかな
370:デフォルトの名無しさん
09/02/25 15:11:17
oven(egg)のpipableは拡張メソッドっぽい
371:デフォルトの名無しさん
09/02/25 19:56:06
ソースが短くなるだけで、生産性の低い、動きがトロい、そんなバイナリーができそうだな。
現状のSTLも遅いし。
372:デフォルトの名無しさん
09/02/25 20:06:19
拡張メソッドの解決は動的ポリモルしなければコンパイル時に行うことができるんでそうとも言いきれない
373:デフォルトの名無しさん
09/02/25 22:40:52
第一引数を前に出す、単なる糖衣構文だから、バイナリが遅くなるなんてことはないわ
374:デフォルトの名無しさん
09/02/25 23:12:40
C++だとただの糖衣じゃ済まないから注意しないとオーバーヘッドはかかるな
375:デフォルトの名無しさん
09/02/25 23:15:33
operator.ぐらいの糖衣
376:デフォルトの名無しさん
09/02/25 23:47:58
generic functionがあるのに必要ですかね。
377:デフォルトの名無しさん
09/02/26 01:09:52
>>372
それが問題なんでねぇかい
テンプレートメンバ関数はその辺上手く逃げたよなぁ
378:デフォルトの名無しさん
09/02/26 05:05:59
普通のオーバーロード解決でなんか問題あるんか。
379:デフォルトの名無しさん
09/02/26 11:52:07
>>378
kwsk
380:デフォルトの名無しさん
09/02/26 13:18:24
objがfuncメソッドを持ってなくて、スコープにfunc拡張関数がある場合、
obj.func(args) を func(obj, args) と字面上同義みなすってことでは?
381:デフォルトの名無しさん
09/02/26 13:20:17
generic functionがあるのに必要ですかね。
382:デフォルトの名無しさん
09/02/26 13:35:21
必要です。目的が違います。
383:デフォルトの名無しさん
09/02/26 13:39:08
ほとんど変らないんじゃない?
virtualにならないんだし。
384:デフォルトの名無しさん
09/02/26 13:44:28
generic functionて何。
385:デフォルトの名無しさん
09/02/26 18:48:11
あるオブジェクトに対して行う処理を
まずオブジェクト名から入力できるとインテリセンスとかで楽できるんだよね
候補が狭まるから
386:デフォルトの名無しさん
09/02/26 20:08:43
あほくさ
387:デフォルトの名無しさん
09/02/26 22:52:27
今時インテリセンスも使いこなせない奴がいるのか・・・
388:デフォルトの名無しさん
09/02/26 22:56:03
0xの次で多重ディスパッチが入れば一緒に入るんじゃないかい>拡張メソッド
389:デフォルトの名無しさん
09/02/26 23:18:24
汎関数の多重ディスパッチは既にある。
390:デフォルトの名無しさん
09/03/15 11:12:39
おっぱいを大きく見せたくて多重ブラジャーする美少女中学生
391:デフォルトの名無しさん
09/03/15 12:53:17
久々に上がってるんで見に来てみたら…
この前、時間が作れたんでようやくmailing2009-02を少し読めた。
久々の単独署名のDouglas Gregorの"Concepts and Ref-qualifiers"、
いやーやはりRvalue Referencesは難しいですね。
それからDouglas GregorってAppleに就職したんだな。(2008/10)
古くはIOKit、今はWebKitとC++結構使ってるからな。
392:デフォルトの名無しさん
09/03/15 15:36:14
0xって本当に0xに出せるの?
393:デフォルトの名無しさん
09/03/15 15:46:12
残念ながら1xがほぼ決定
394:デフォルトの名無しさん
09/03/15 15:47:12
でも未完成のまま強引に0xに出しそうな気もする
やめてほしいけど
395:デフォルトの名無しさん
09/03/15 15:50:09
ISOの手続きのスケジュールの都合で無理なのでは?
それがなかったとしても十分09に間に合いそうもないが。
396:デフォルトの名無しさん
09/03/15 16:03:26
もう出しても意味ネーよ。
397:デフォルトの名無しさん
09/03/15 16:24:56
>>391
auto concept HasAssign<typename T, typename U> {
typename result_type;
result_type T::operator=(U) &; // ←Rvalue reference!
}
ワロス
398:デフォルトの名無しさん
09/03/15 18:27:34
>>395 そうきいている
399:デフォルトの名無しさん
09/03/15 21:34:43
autoっぽいものを現行のC++で実現するマクロってあったような気がするんですがマクロ名を知りませんか
400:デフォルトの名無しさん
09/03/15 21:56:24
BOOST_AUTOのこと?
401:デフォルトの名無しさん
09/03/15 22:44:53
gccのtypeofかなぁ?
402:デフォルトの名無しさん
09/03/21 14:58:40
僕は言語仕様の問題のほか、現実的な理解者とコンパイラがいつ現れるかも
気になる。現行のSTLやBoostですらコンパイルエラー、ワーニングが長すぎて
解読困難なのに、これ以上になるのかと思うと気が重くなる。
403:デフォルトの名無しさん
09/03/21 14:59:11
しまった・・・sage忘れた・・・
404:デフォルトの名無しさん
09/03/21 15:03:06
C++0xのconceptにはエラーメッセージを簡易にする目的もあります。
405:デフォルトの名無しさん
09/03/21 15:03:38
俺を含む凡人以下からすれば
「まずはまともな処理系を出してくれ、話はそれからだ」
だからな
WGにいる仕様書だけでコードを書いてあーだこーだ議論してる奴等は化け物に思えてくる
406:デフォルトの名無しさん
09/03/21 15:06:55
>>404
一般的な開発者がその恩恵を受けられるのは、
どんなに早くても2012年頃かと思われますw
407:デフォルトの名無しさん
09/03/21 15:12:33
concept については厳しいだろうけど他の機能についてはちょこちょこ実装されつつあるじゃん。
408:デフォルトの名無しさん
09/03/21 17:13:32
可変長テンプレートとか右辺値参照とかばっかり先行してて
可読性を良くする機能はことごとく後回しにされてるけどな
409:デフォルトの名無しさん
09/03/21 17:16:56
可変長テンプレートはありがたいだろ。
TEMPL1(X)
TEMPL2(X1, X2)
TEMPL3(X2, X2, X3)
:
TEMPL20(X1, X2, X3 .. X20)
とかもうイヤだよ。
410:デフォルトの名無しさん
09/03/21 17:24:11
そりゃそうだけど、ソースが読みやすくなる訳じゃないじゃん
エラーメッセージは多分もっとわかりにくくなるだろうし
411:デフォルトの名無しさん
09/03/21 17:27:25
可変長テンプレートが「可読性を良くする機能」ではないとすると、
後回しにされてる機能って何のこと言ってるの?
412:409
09/03/21 17:29:11
>>410
そりゃまあ一般論としてはそうかな。
ただ俺は馬鹿だからか、機械生成しなかったのが悪いのか、
5引数のやつだけ書き間違えて大填まりしたことあるわ。
気づくわけないっての
413:デフォルトの名無しさん
09/03/25 03:24:35
URLリンク(www.open-std.org)
News 2009-03-24: The 2009-03 post-Summit mailing is available
News 2009-03-24: The C++ Standard Core Language Issues List (Revision 62) is available
News 2009-03-24: The C++ Standard Library Issues List (Revision 63) is available
414:デフォルトの名無しさん
09/03/25 12:21:54
というわけで最新のWorking DraftはN2857ですか。
415:デフォルトの名無しさん
09/03/25 18:44:11
あんまり面白くねーな
ラムダ関係がボロボロで全面書き直しって事くらいか
あと日本からのコメントrejectされまくり
416:デフォルトの名無しさん
09/03/26 21:07:56
結局ラムダ式って Monomorphic なやつだけしか入らんの?
型名書くのだりーよ…
結局 Boost.Lambda のほうが便利じゃんってオチ?
417:デフォルトの名無しさん
09/03/27 05:20:03
>>416
何言ってるのかわからん。 Boost.Lambda のどんな用法のことを言ってるの?
C++0x のラムダ式で置きかえらない用法があるってことなんだよね?
418:デフォルトの名無しさん
09/03/27 08:58:21
>417
単に引数の型書くのが面倒という話では?
_1 + 1
[] (int n) { return n + 1; }
もともともラムダ式の提案では引数の型を指定しないでよいものも込みだったんだけど、
分割して型を指定するものだけ先に持ってきたのが Monomorphic なラムダ式のはず。
419:デフォルトの名無しさん
09/03/27 09:13:54
[] (auto x) { (ry }とか[] (x) { (ry }とかでできないのかな?
420:デフォルトの名無しさん
09/03/27 11:06:48
>>417
Boost.Lambda は多相じゃん。
(_1 + _2)(1, 1) // -> int 2
(_1 + _2)(1.0, 1.0) // -> double 2.0
単相にして保持したければ
function<double(double, double)> f = (_1 + _2);
f(1, 1) // double 2.0
とかもできるし。
ちょっと調べてみたら n2529 で、
(n2329 にあるように higher implementation cost なんで)
"We do not propose generic lambda functions for C++0x."
って書いてあるな… これはダメっぽい。
421:デフォルトの名無しさん
09/03/27 12:35:25
range based algorithmの採用も却下されたことだし
まだまだboostの役目は終わらないということだな
422:デフォルトの名無しさん
09/03/27 17:45:45
boostの肝心な機能を骨抜きにしたのが標準だな
結局みんなboostを使い続け、std名前空間を汚染するゴミが残るだけという
423:デフォルトの名無しさん
09/03/28 14:18:37
という意見をぜひ comp.std.c++ あたりに投稿してくれ
日本の総意ってことで
424:デフォルトの名無しさん
09/03/29 10:22:55
> range based algorithmの採用も却下されたことだし
( ゚д゚)
425:デフォルトの名無しさん
09/03/30 13:50:22
配列初期化の記述だけはサッサと実現してほしい。
426:デフォルトの名無しさん
09/03/30 19:48:55
関数型言語とC/C++の関数ってどういう関係?
427:デフォルトの名無しさん
09/03/30 19:54:20
特に関係はない
428:デフォルトの名無しさん
09/03/30 19:55:43
ちょっと確認。
cout<<boolalpha<<uppercase<<true;
ってした場合でも、TRUE(大文字)とは出力されないんだっけ?
それで規格どおり?
429:デフォルトの名無しさん
09/03/30 20:14:51
>>427
そんなこともないだろ。両方関数だし。
430:デフォルトの名無しさん
09/03/30 20:16:11
じゃあC/C++の関数が関数型言語とどう関係あるのか教えてよ
431:デフォルトの名無しさん
09/03/30 20:22:42
関数型言語の関数は、数学的な関数ほぼそのもののことを指している。
Cとかの関数は、それから来ている名前ではあるけど、(サブ)ルーチンのことを
そう呼んでるだけ。たまに数学的な関数のような性質を持ってることもある。
432:デフォルトの名無しさん
09/03/30 21:42:56
>>431
いや>>426は「関数型言語における関数と、C/C++における関数」の性質の違いを
知りたがっているのではなくて、「関数型言語」と「C/C++の関数」の関係を知りたがってる。
葉巻型UFOと日本たばこ産業の関係を質問するくらい、わけのわからない質問ではあるが。
433:デフォルトの名無しさん
09/03/30 22:04:53
>関数型言語の関数は、数学的な関数ほぼそのもののことを指している。
>たまに数学的な関数のような性質を持ってることもある。
ん?どう違うの?
434:デフォルトの名無しさん
09/03/30 22:20:25
つ URLリンク(ja.wikipedia.org)
435:デフォルトの名無しさん
09/03/30 22:25:30
さすがwikipedia
436:デフォルトの名無しさん
09/03/30 22:27:55
つまり状態の使用や副作用をおこさなければ関数型言語と等価ということですね。
437:デフォルトの名無しさん
09/03/30 22:41:34
>>436
基本的には Yes.
ただし、状態も副作用もない関数を書くとしても、
手続き的な考え方だとローカル変数を値を変えながらループして計算したりするのに対し、
関数型言語的な考え方だとローカル変数に一度束縛したら値を変えず、ループのかわりに再帰とか集合演算とかを使う。
そこらへんの美学の違いは理解すべきかな。
438:デフォルトの名無しさん
09/03/30 23:44:29
>>428
真偽値を表す文字列をnumpunctから取得して、
ストリームへ「インサートする」って書いてあるから、
uppercaseは適用されないね。
取得した文字列を再度operator<<するわけじゃないから。
439:デフォルトの名無しさん
09/03/30 23:46:01
それで自分流のnumpunctを定義する方法は、
22.2.8.13に例が挙げてある。
440:デフォルトの名無しさん
09/03/31 09:00:20
その筋の用語では「参照透明性」な
441:デフォルトの名無しさん
09/03/31 10:01:21
ぷ
442:デフォルトの名無しさん
09/03/31 16:41:02
美少女中学生のおなら?
443:428
09/03/31 19:51:14
>>438-439
ありがと。
規格の該当パラグラフも確認しました。
locale関連になっちゃうのね。。。
そのあたりの深入りは避けたいので、簡単に文字列として
出力しようと思いますた。
444:デフォルトの名無しさん
09/03/31 20:30:21
そうそう。
結局、os << b ? "TRUE" : "FALSE";を関数にまとめればいいやというとこに落ち着いちゃうんだよね。
445:438
09/04/02 17:10:08
本来の主旨とちょっと違ってくるけど、
マイ書式には引数付きマニュピュレーター使って
その中で出力しちゃってる。
けどこれC++0xの話題じゃないじゃんw
446:デフォルトの名無しさん
09/04/02 18:39:32
美少女中学生の話題をしようぜ!
447:デフォルトの名無しさん
09/04/02 23:27:37
女子中学生をいじったら汁が出てきたよ(^-^)
448:428
09/04/03 21:06:55
>>445
あー、たしかにマニピュレータはよさそう。
また機会があったらオレもそうしよ。
>けどこれC++0xの話題じゃないじゃんw
そうだった。w
でも、C++で規格ガチの話ってこのスレが一番じゃね?
449:デフォルトの名無しさん
09/04/04 00:34:14
>>448
C++相談室でいいよ。だいたい規格ガチで文句言われるスレなんてないだろ。
450:デフォルトの名無しさん
09/04/04 15:20:15
ここは標準化委員会の迷走を横目で生暖かく見守るスレです
451:デフォルトの名無しさん
09/04/05 01:16:11
そんなんだから日本からのコメントがrejectされまくるんだよ。
452:デフォルトの名無しさん
09/04/05 01:21:45
あれは結構な割合で、rejectされるだろうけど一応送っておくか、的な雰囲気のものが入っていた気がする。
453:デフォルトの名無しさん
09/04/05 02:50:54
どーせ仕事じゃ誰も使わないよ。
454:デフォルトの名無しさん
09/04/05 03:45:10
>>452
Unicode関係とか結構気合い入れて議論してたんじゃないの?
サックリrejectされてて笑ったが
455:デフォルトの名無しさん
09/04/05 16:09:19
あんなコメント読まされる方もたまったもんじゃない。
かなり基本的な部分でUTF-8前提にしろとかもうアホかと。
456:デフォルトの名無しさん
09/04/05 17:24:29
URLリンク(ja.wikipedia.org)ビャーネ・ストロヴストルップ
ビャーネ・ストロヴストルップ(Bjarne Stroustrup, 1950年6月11日 - )は、
デンマークのオーフス生まれのコンピュータ科学者。
本人による自身の名前の発音は「びよーねすっぽすっぽ」に近い。
457:デフォルトの名無しさん
09/04/05 20:12:24
URLリンク(www.research.att.com)
URLリンク(www.research.att.com)
どのへんが近いんだ?
458:デフォルトの名無しさん
09/04/05 20:34:26
そうだよな、「すっぽすっぽ」じゃなくて「すぽっすぽっ」だろ?
459:デフォルトの名無しさん
09/04/05 20:41:39
JPのコメントにすぽすぽも呆れとったわ
460:デフォルトの名無しさん
09/04/05 23:11:55
とりあえず提案だけは出しておこうってのはどう考えても間違いだったな
無理なものは無理と委員会で止めるべきだった
461:デフォルトの名無しさん
09/04/06 01:07:29
説明が足りてるか、表現が正確か、おかしな解釈が出来てしまわないか、あたりの確認なのに
JPだけ変な気合い入れて新機能の提案みたいなことしてて明らかに浮いてる
恥ずかしいわ
462:デフォルトの名無しさん
09/04/06 01:09:30
そんなことに恥ずかしがるのはJPだけ
みんな言いたいこと言ってる
463:デフォルトの名無しさん
09/04/06 04:26:23
「スドゥハウっスドホッブ」を「すっぽすっぽ」のリズムで読めば良い。
strou と strup の間の「っ」(stød) で声門を絞めるのが肝
464:デフォルトの名無しさん
09/04/06 09:22:45
肛門が閉まりました。
つーか読みにくい時は、呼び名つけるだろ?
てきとうに、太郎とかつけりゃいいんだよ。
465:デフォルトの名無しさん
09/04/06 09:46:58
禿
466:デフォルトの名無しさん
09/04/06 10:19:55
そんな議論はどこで読めるんですか?
467:デフォルトの名無しさん
09/04/06 10:35:34
>>457
ほんとだ、「びや~ね=すぽっすぽっ」に聞こえる。
468:デフォルトの名無しさん
09/04/06 14:42:26
あまりの卑猥さに美少女中学生も赤面!!!!!!1111
469:デフォルトの名無しさん
09/04/06 18:44:45
生粋のデニッシュには言いやすい発音なんだろうな
470:デフォルトの名無しさん
09/04/07 15:54:36
C++0x出たらJAVAとかいらなくなるんだよね?
またCさえあればいい時代が来るってことか
471:デフォルトの名無しさん
09/04/07 18:39:09
Javaがどうなるかは知らんが、0xはGC付き言語の代わりにはならんよ
472:デフォルトの名無しさん
09/04/07 19:16:45
Javaと対抗になるのはC#とC++/CLIだわな
473:デフォルトの名無しさん
09/04/08 04:33:23
D…いやなんでもない
474:デフォルトの名無しさん
09/04/08 06:13:38
>>473
Delphiですね、わかります
475:デフォルトの名無しさん
09/04/08 08:57:43
C# vs Java
F# vs Scala
C++ vs D…いやなんでもない
476:デフォルトの名無しさん
09/04/08 10:49:00
>>473-475
おまいらとは別スレであってるような気がしてならない
477:デフォルトの名無しさん
09/04/08 12:02:15
>>458
URLリンク(twitter.com)
478:インドリ
09/04/09 10:06:39
URLリンク(blogs.wankuma.com)
URLリンク(d.hatena.ne.jp)
479:デフォルトの名無しさん
09/04/09 13:49:35
> 税込2,940円
高い!
480:デフォルトの名無しさん
09/04/09 14:23:51
淫鳥
481:デフォルトの名無しさん
09/04/09 17:17:02
まあ、どうせ某所にうpされるだろうし
そうなったら眺めてみるか
482:デフォルトの名無しさん
09/04/09 17:31:41
C++でこの手の本を書くと、バッドノウハウの詰め合わせみたいになるのは必至だろ…
483:デフォルトの名無しさん
09/04/09 17:37:08
だがそれがいい
484:デフォルトの名無しさん
09/04/10 00:19:14
びよーんすぽっすぽっ
誰も名前だとは気づかないな
485:デフォルトの名無しさん
09/04/10 00:44:38
バッドでもナンでも成程と思わせる何かが含まれてるかどうか
邦人の著者は入門レベルでお茶濁すパターンの繰り返しだからねぇ
486:デフォルトの名無しさん
09/04/10 01:18:06
>>484
「びよーん」じゃないよ「びや~ね」だよ。
487:デフォルトの名無しさん
09/04/10 01:49:46
MC++Dの焼き直しみたいな本じゃなけりゃいいけどな
488:デフォルトの名無しさん
09/04/10 02:01:02
参考書買ったつもりが
中身は校正不足な教科書崩れですタ
みたいな
489:デフォルトの名無しさん
09/04/10 02:16:06
入門書はもういいよ
490:デフォルトの名無しさん
09/04/10 02:39:24
ガチガチの数学選書みたいにまともなコンパイラもない今の時点での0xの応用を書いてある本がほしいです。
491:デフォルトの名無しさん
09/04/10 12:08:52
どうせ著者のブログ記事の焼き直しでしょ
492:デフォルトの名無しさん
09/04/10 14:04:27
誰も仕事じゃ使わんだろ。
493:デフォルトの名無しさん
09/04/10 19:13:34
>>490
つ 規格書
494:デフォルトの名無しさん
09/04/10 20:34:27
規格書に応用なんて書いてないだろ。
495:デフォルトの名無しさん
09/04/12 03:56:21
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
496:デフォルトの名無しさん
09/04/14 20:39:55
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
497:デフォルトの名無しさん
09/04/15 00:29:40
_, ._
( ・ω・)
○={=}〇,
|:::::::::\, ', ´
.wwし w`(.@)wwwwwwwwwwwwwww
~~~~~
498:デフォルトの名無しさん
09/04/15 00:33:54
テンプレートクラスを入れ子にすると>>演算子が優先されてエラーになることが何度かあったんだが
これって次で直るかなぁ? 演算子の優先度の問題だから無理だよな・・・?
499:デフォルトの名無しさん
09/04/15 00:39:49
>>498
C++0xでは vector<vector<int>> も大丈夫
500:デフォルトの名無しさん
09/04/15 02:19:16
URLリンク(www.open-std.org)
これな
gcc 4.3では取り込まれてる
501:デフォルトの名無しさん
09/04/15 02:20:57
まあ、読みづらいから俺は空白であけるけどな
502:デフォルトの名無しさん
09/04/15 23:37:36
ビルド通らないから空白あけてるけどさw
3つ以上入れ子にすると逆に見づらいというか、typedefつかえってことか。
503:デフォルトの名無しさん
09/04/16 01:44:57
そんなに入れ子にしたら、遅くてたまらんだろ。
504:デフォルトの名無しさん
09/04/16 01:55:51
それほどでもない
505:デフォルトの名無しさん
09/04/16 12:48:27
いや遅いって。
javaや.netよりかなり遅くなるぞ。
506:デフォルトの名無しさん
09/04/16 12:50:07
遅いってコンパイルの話じゃなかったの?
507:デフォルトの名無しさん
09/04/16 17:40:23
何だそりゃ?
508:デフォルトの名無しさん
09/04/16 18:14:57
javaや.netよりかなり遅くなるって何のネタだよw
509:デフォルトの名無しさん
09/04/16 18:32:55
コンパイルの時間の話なら、そんな入れ子にしなくても元から十分遅いし。
510:デフォルトの名無しさん
09/04/16 18:34:26
コンパイルはC++よりC#の方が速いって話でしょ。実行速度の話じゃない
でもMPLでもやらない限りテンプレートはあまり関係ないと思うけどね
511:デフォルトの名無しさん
09/04/16 19:47:04
MPL = MetaProgramming Library な。
512:デフォルトの名無しさん
09/04/16 21:35:25
TMP!TMP!
513:デフォルトの名無しさん
09/04/16 21:36:15
vectorを三つ入れ子にしたら、実行速度は確かにスゲー遅くなるだろうな。
514:デフォルトの名無しさん
09/04/16 21:42:46
MPL() { 笑 };
515:デフォルトの名無しさん
09/04/17 02:17:16
実行速度の話だろ?
バカなのか?お前らは。
516:デフォルトの名無しさん
09/04/17 04:37:53
誰が真の馬鹿なのかは、俺の心の中にしまっておくよ。
517:デフォルトの名無しさん
09/04/17 06:16:19
そこでしか生きられない言い分だものな。
518:デフォルトの名無しさん
09/04/17 08:47:38
みんなでシャドーボクシング
519:デフォルトの名無しさん
09/04/17 10:02:29
じゃあこの山括弧をくっつけて動くようにしろよ!
520:デフォルトの名無しさん
09/04/17 10:15:20
lヽ ノ l l l l ヽ ヽ
)'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l
/ M | | |/| ハ / / ,/ /|ノ /l / l l l| l M ヽ
l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| / ・ /
| P l トー-トヽ| |ノ ''"´` rー-/// | P |
| ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ |
| L | | l | ヽ, ― / | | l L |
| !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! |
ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ
/ / ノ⌒ヾ、 ヽ ノハ, |
,/ ,イーf'´ /´ \ | ,/´ |ヽl |
/-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l
,/ | ヽ \ _,ノーf' ´ ノノ ヽ | |
、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ
 ̄ ̄ | /
プロプロセッサ・メタプログラミングもお忘れなく。
521:デフォルトの名無しさん
09/04/17 11:00:58
c++で何でわざわざ遅いプログラムつくらなあかんのか。
メタなんて価値なしのオナニーだよな。
522:デフォルトの名無しさん
09/04/17 11:06:51
はいはいクマクマ
523:デフォルトの名無しさん
09/04/17 17:18:26
JVM向けのコンパイラ書く奴いねぇかなぁ。
そしたら、ワザワザJavaに書き換える事もなくなって便利なんだが。
ところで、いつのまにやら入れ子クラスから外のクラスにアクセス
出きるようになったんだな。BCC5.5だったか、CL8.0だったか
対応してなくて、ずっとそういうもんだと思い込んでfriend使ってたわ。
524:デフォルトの名無しさん
09/04/17 17:49:55
>>519
なるよ。
525:デフォルトの名無しさん
09/04/18 01:38:10
VECTOR3つでも用途によるだろ。
いまどき遅いといっても知れてるわ。
526:デフォルトの名無しさん
09/04/18 02:31:07
数えられる程度にしか回らないコード部分なら結果が正しければ少々何しようと勝手だよな
527:デフォルトの名無しさん
09/04/18 04:00:06
まったくだ
とはいえ、vectorを三つも入れ子にするようなコードが
数えられる程度にしか回らないケースって少ないような気もするけどな
528:デフォルトの名無しさん
09/04/18 08:28:02
>>513は知恵おくれだろ
馬鹿馬鹿しいからスルー推奨
529:デフォルトの名無しさん
09/04/18 10:49:30
>>528
知恵遅れはお前だろカスだな。
530:デフォルトの名無しさん
09/04/18 12:17:11
本人登場。幼稚なオウム返しによって相手の見方が正しいと証明してしまいました。
531:デフォルトの名無しさん
09/04/18 12:35:00
読み書きの速度は配列と変わんないですよね?
サイズ変更は起こらないケースで
532:デフォルトの名無しさん
09/04/18 13:05:02
違う。配列とは別物なんだから変わってもおかしくない。コンパイラの頑張り次第。
533:デフォルトの名無しさん
09/04/18 13:12:48
コンパイラ?
534:デフォルトの名無しさん
09/04/18 13:19:00
コンパイラ∋オプティマイザ
535:デフォルトの名無しさん
09/04/18 13:21:05
>>532
別物なんですか?どう違うんですか?
536:デフォルトの名無しさん
09/04/18 13:21:59
同じだよ。
537:デフォルトの名無しさん
09/04/18 13:41:32
配列とvectorは全く同じというわけではない。
でも要素を指すポインタの配置だとかの制限が多々あって、
vectorの内部構造は配列を使うことが多い。
その場合、最適化次第で配列とほぼ同じ速度で動かせる。
538:デフォルトの名無しさん
09/04/18 15:02:39
どちらかというと
たいていの場合はまったく同じ速度で動かせる、のが正しいだろ
なんだよほぼ同じ速度ってw
539:デフォルトの名無しさん
09/04/18 15:04:19
operator[]をいちいち呼び出すかもしれないって事でわ?
540:デフォルトの名無しさん
09/04/18 15:12:03
実測しろ。
vectorは連続性が保証されているから、&[0]で先頭アドレスを取って配列として使うなら、配列と同速度であろうことは想像できる。
ただ、配置される場所がヒープかスタックによっても速度は変わるかもしれない。
541:デフォルトの名無しさん
09/04/18 15:19:17
実測、実測って、様々なプラットフォームで実行するプログラムはどうするんだよ。
何でもアホみたく実測する前に、一般論で考察しろ。
542:デフォルトの名無しさん
09/04/18 15:27:11
>>541
様々なプラットフォームで実測して、場合によっては最適な実装を
コンパイラスイッチで切り替えるぐらいはしてもいいんじゃない。
一般論で考察して済むようなら、最初から速度が問題になるような箇所じゃないってことだよ。
543:デフォルトの名無しさん
09/04/18 15:29:40
実測馬鹿
544:デフォルトの名無しさん
09/04/18 15:34:52
なんちゃってー!カクカクカクカクカク!
545:デフォルトの名無しさん
09/04/18 17:06:23
544 名前:デフォルトの名無しさん[sage] 投稿日:2009/04/18(土) 15:34:52
なんちゃってー!カクカクカクカクカク!
546:デフォルトの名無しさん
09/04/18 17:12:51
激烈バカとはなつかしい
547:デフォルトの名無しさん
09/04/18 19:31:45
カクカクと聞いていやらしいことを想像してしまった美少女中学生がこのスレにいます!
548:デフォルトの名無しさん
09/04/18 23:16:36
>>540
保証されてない
549:デフォルトの名無しさん
09/04/18 23:18:40
されてるよ。
550:デフォルトの名無しさん
09/04/18 23:26:03
当初03の規格には入ってなかったんだけど
後から委員会のほうで「そういう風に作ってね」って付け加えたんだっけか。
いずれにしても現在では保証されてたはず。
551:デフォルトの名無しさん
09/04/19 01:17:23
23.2.4.1(2003年版)に
> The elements of a vector are stored contiguously, meaning that if v is
> a vector<T, Allocator> where T is some type other than bool, then it
> obeys the identity &v[n] == &v[0] + n for all 0 <= n < v.size().
と明記されているのでれっきとした仕様です。1998年版にはありませんでした。
552:デフォルトの名無しさん
09/04/19 01:42:29
まあ、むやみに大きさかえまくってたら遅いだろうけど、そういう場合はlist使うだろうし
どっちにしろ入れ子にしなきゃならんものは、Cで書いてもそれなりに重い処理になる。
ということは、使った方が手軽で安全ということになるな。
553:デフォルトの名無しさん
09/04/19 02:34:15
伸びてたから期待して来たのにこんな流れかよ…
ムーブセマンティクスがどう効くかとかarrayと比べてどうとかいう話かと思ったのに
03以前だけの話ならSTLスレでやれよ
554:デフォルトの名無しさん
09/04/19 03:44:12
548 名前:デフォルトの名無しさん[sage] 投稿日:2009/04/18(土) 23:16:36
>>540
保証されてない
555:デフォルトの名無しさん
09/04/19 09:32:40
>>552
それはないだろ。
556:デフォルトの名無しさん
09/04/19 14:49:10
3重vectorの話がでてたけど、
vectorってムーブセマンティクスやCOW
の実装あるんだっけ?
557:デフォルトの名無しさん
09/04/19 18:23:47
あるよ。
558:デフォルトの名無しさん
09/04/19 21:42:09
素朴な疑問すまん。
C++0xってx=9になるの?
それともなんかしくじって、
C++1xに続くの?
559:デフォルトの名無しさん
09/04/19 21:57:41
もう09にはならないはず
560:デフォルトの名無しさん
09/04/19 22:02:11
C++0xAでも0xBでもいいから早く出て来い。
561:デフォルトの名無しさん
09/04/19 22:10:10
>>558
八進数なのに9はない。
562:デフォルトの名無しさん
09/04/19 22:20:41
なんで八進数なんだろね。
K&Rもビット演算で八進数使うんだよね。
二進数と十六進数しかなじみのなかった自分は
ちょっとデカルチャーだった。
563:デフォルトの名無しさん
09/04/19 22:32:06
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
564:デフォルトの名無しさん
09/04/19 23:51:30
C言語 → UNIX → PDP-11
後はもう分かるな?
565:デフォルトの名無しさん
09/04/20 00:10:43
わからない
566:デフォルトの名無しさん
09/04/20 00:48:32
1バイト9ビットのマシンだと八進法も使う機会があると聞いたことがあるけど、PDP-11は違うよね?
567:デフォルトの名無しさん
09/04/20 04:06:37
二進数ベースの数値を10キー(の数字)だけで二進数直打ちよりは楽に入力できるからだよ。
568:デフォルトの名無しさん
09/04/20 08:23:01
x == 10 (ローマ数字)という
無理矢理解釈で2010年リリースか?
569:デフォルトの名無しさん
09/04/20 09:06:44
昔はコンソールにテンキーしかない計算機たくさんあったから。
だから昔の人は基本8進数と10進数。
古いアセンブラの仕様を漁れば分かる。
570:デフォルトの名無しさん
09/04/20 09:35:47
それはない
571:デフォルトの名無しさん
09/04/20 09:47:51
>>561
標準化まえのCの処理系では'\91'(=73)とかできたらしい。
572:デフォルトの名無しさん
09/04/20 23:35:57
例えテンキー入力でも 「8」 「9」キーででもシフト管理すれば簡単に 16進打ち 可能じゃん
char get(char k){
static char f=0;
if(k==9){f=8;return 16}
if(k==8){f=0;return 16}
if(k>=0&&k<=7) return k|f;
つらつら;
}
573:デフォルトの名無しさん
09/04/21 03:28:00
>>572
歴史も現場も知らない人間の机上の発想だな。同様のことを考えた人はいたかもしれんが表に出て主流になることはなかった、ってのはそういうことだ。
574:デフォルトの名無しさん
09/04/21 03:50:52
歴史を知っていると、10キーのカンマや演算子をa-fに割り当てる入力ツールを思い出せるんだけどね。
まぁ、>569はどうかと思うけれど。
575:デフォルトの名無しさん
09/04/21 08:01:02
10キー使わないし
576:デフォルトの名無しさん
09/04/21 08:11:18
俺もテンキー嫌いだし一生使うことは無いと思ってたが、
携帯のせいでテンキー的なものを強要されるようになったな。
577:デフォルトの名無しさん
09/04/21 08:15:48
>>568
ローマに0はなかった…
578:デフォルトの名無しさん
09/04/21 11:22:50
>>576
やっぱりテレビのチャンネルを変えるときは本体のを回したりするんですね
579:デフォルトの名無しさん
09/04/21 12:38:39
そういう人は、チャンネルを「変える」じゃなくて、
「回す」って言うらしいぞ。
580:デフォルトの名無しさん
09/04/21 18:19:48
>>569
当時は逆にテンキーがなかったんじゃ。
タイプライターにはテンキーなんかないし、
今と違ってスイッチいっこが高かった
だろうし。
8進数のいいわけはなんかで見た記憶が
ある。古いCかUNIXかの本だったか。
581:デフォルトの名無しさん
09/04/21 18:30:00
テンキーしかないコンピュータってのはマイコンキットとかだな。
582:デフォルトの名無しさん
09/04/21 18:42:28
>>569はど素人
583:576
09/04/21 21:01:55
>>578
携帯やパソコンのテンキーは少なくとも一秒に3タイプくらいは出来ないと効率悪すぎるし、
テレビのリモコンは30分に1タイプできれば十分事足りるからな。
それとこれとは話が全然違うだろうとマジレスしておく。
584:デフォルトの名無しさん
09/04/21 21:05:27
玄人はこんなスレに来ません
585:デフォルトの名無しさん
09/04/21 21:33:04
回される想像をしてドキドキしている美少女中学生がこのスレにいる!
586:デフォルトの名無しさん
09/04/21 22:58:32
>>581
大丈夫、マイコンキットならきっと16キーだ。
587:デフォルトの名無しさん
09/04/22 03:42:50
>>566
マジレスするとインストラクションの基本形式が
16bit を 1+3, 3+3, 3+3 に分解して使ってたから
octal の方が表現しやすかった.
588:デフォルトの名無しさん
09/04/22 13:40:15
いつまで続けるんだ
589:デフォルトの名無しさん
09/04/22 15:18:38
単にioが四ビットだった名残だろ。
590:デフォルトの名無しさん
09/04/22 15:50:01
4ビットなら8進より16進の方が都合いいだろ
591:デフォルトの名無しさん
09/04/22 15:50:11
それだったら別に8じゃなくても16でもいいはず。
592:デフォルトの名無しさん
09/04/24 12:57:24
8進数なら九九の代わりに七七を覚えれば暗算できるけど、16進でffとなると厳しいと思うぞ。
593:デフォルトの名無しさん
09/04/24 14:22:27
>>592
インドに行って来い
594:デフォルトの名無しさん
09/04/24 14:27:58
インドでは99*99まで暗記するらしいな
595:デフォルトの名無しさん
09/04/24 14:38:46
19*19らしいぞ?
そして、なんと小学校の必須科目に「プログラム」があるそうだ。
しかし、インドはカースト制度のせいで
奴隷同然の生活を送っている子供たちも多数。
596:デフォルトの名無しさん
09/04/24 15:54:33
偉大な文明は多数の労働力を隷属させることにより築かれるものなのだ
597:デフォルトの名無しさん
09/04/24 17:22:19
いつの時代の話?
598:デフォルトの名無しさん
09/04/24 18:58:52
そろそろスレ違い過ぎてる
599:デフォルトの名無しさん
09/04/24 22:16:57
すれ違いの恋ばかりの美少女中学生・・・
600:デフォルトの名無しさん
09/04/24 23:44:59
>>594
サンスクリット語は数体系が複雑すぎて、
99×99まで暗記しないとろくに計算できないというのが実情らしいけど。
日本語みたいに、21を素直に「2 じゅう 1」って読めない。
601:デフォルトの名無しさん
09/04/25 00:10:51
>>600
どうやらそのようだな。
100まで暗記が必要らしい。
URLリンク(www.sf.airnet.ne.jp)
602:デフォルトの名無しさん
09/04/25 01:04:42
外から見ると、インド人すげー、99×99覚えるんだ
実際を見ると、言葉が使いにくいからやむなく覚えてる
それなんてC++?
603:デフォルトの名無しさん
09/04/25 11:21:54
っていうか、インドは言語の数があまりに多いのと
学問に向いてないのとで、大学では英語でしょ?
小学校でも英語の授業があるらしいし。
604:デフォルトの名無しさん
09/04/25 11:30:31
日本語だって日付の読み方とか不規則で滅茶苦茶だけど日本人はみんな普通に読めてるし
ネイティブにはそれくらいあんまり気にならないと思うけどなぁ
605:デフォルトの名無しさん
09/04/25 11:48:50
残念、ヒンズーを筆頭にフランス語も暗算には向かない数の読み上げ方をするんだ。
例えばフランス語の99の読み上げを直訳すると、「4つの20と9足した10」になるらしい。
一方、日本語はエスペラントに準じて綺麗な読み上げ方をする言語なんだけどね。
606:デフォルトの名無しさん
09/04/25 12:54:48
>>605
99 は 4つの20と10-9 だとおもう (quatre-vingts-dix-neuf.)
93 とかのほうがひどい。(quartre-vingts-treize は 4x20+"3+10".)
フランス語地域でもスイス/ベルギーは nonante-neuf,
nonante-cinq に変えたはず。
607:デフォルトの名無しさん
09/04/25 15:18:03
>>604
数システムが複雑な言語では、暗算できない子供が多いみたいな統計もあるらしいけど。
フランス語もその筆頭。
608:デフォルトの名無しさん
09/04/25 17:00:19
中国が漢字を一定量覚えないと
手紙もまともにかけないという現状を憂慮して
簡体字を導入したように、
おフランスも暗算が簡単になるように数字の読みを
国策で変更すべき^^
インドは小学校の授業にプログラムを導入するに当たって
理解しやすい独自の言語を開発したそうな。
609:デフォルトの名無しさん
09/04/25 20:02:26
その頃日本では、三桁のかけ算とか普通は電卓使うから別に教えなくていいよね、とかやってたわけだな。
610:デフォルトの名無しさん
09/04/25 20:59:30
イギリスにも正字運動があったし、日本にもローマ字化運動があった。
>>608
繁体字のままの台湾との比較の論文があればみてみたい。
>>609
そろばん塾に行ってれば、三桁x三桁の掛け算は暗算で出来る。
611:デフォルトの名無しさん
09/04/25 21:48:32
「正字運動」でググったら、そうゆう流れもあるのかって思った。
おもしろい。
612:デフォルトの名無しさん
09/04/25 23:23:56
なんだこの流れwwwwww
正式版が出たgcc4.4のc++0x対応の話とか出てないのかwwww
613:デフォルトの名無しさん
09/04/26 00:21:40
GCCで盛り上がってるかと思ったのに…
なんじゃこりゃ
614:デフォルトの名無しさん
09/04/26 00:29:47
このスレに日本語情報の少ない0xについて語れる奴なんていないよ
615:デフォルトの名無しさん
09/04/26 00:42:56
まあ、われわれ下々のものは、ちゃんと提供されてそれ以外選択肢がなくなってからが出番だ。
616:デフォルトの名無しさん
09/04/26 03:42:10
これくらい張ってもバチは当たんないよな。
URLリンク(gcc.gnu.org)
617:デフォルトの名無しさん
09/04/26 09:35:14
Conceptが入ってないから基本的にどうでもいいな。
Variadic templateは既に使ってるけど。4.4の前からあるからね。
618:デフォルトの名無しさん
09/04/26 12:42:34
差分はこっちの方が見やすい
URLリンク(gcc.gnu.org)
・auto
・Initializer list
・Unicode文字型&リテラル
・enum class
・メンバ関数のdefault/delete指定
あたりが大きい追加かな
とうとうauto main(int argc, char *argv[]) -> int とか書けるようになってしまった
619:デフォルトの名無しさん
09/04/26 18:39:03
これなんて虫?
URLリンク(2sen.dip.jp)
620:デフォルトの名無しさん
09/04/26 18:40:50
グロ注意
621:デフォルトの名無しさん
09/04/26 18:45:51
おもちゃ。
622:デフォルトの名無しさん
09/04/26 19:09:57
ムカデ
623:デフォルトの名無しさん
09/04/26 19:16:27
独習デザインパターンC++は参考になるね。
624:デフォルトの名無しさん
09/04/26 19:44:38
ムカデじゃなくヤスデの仲間だな
625:デフォルトの名無しさん
09/04/26 20:34:17
ムカデは各節に一対 -( )-
ヤスデは各節に二対 =( )=
626:デフォルトの名無しさん
09/04/26 20:43:56
オライリー本でこんなのがあったら
さすがに売り上げ減るだろなw
ページめくって実写とかだったら悲鳴まで出るに違いない。
627:デフォルトの名無しさん
09/04/26 22:39:49
ヤスデのグロ画像からオライリー本の話に行くところが素敵だ。
628:デフォルトの名無しさん
09/04/27 01:19:02
最近トビケラとカワゲラとカゲロウを見分ける勉強を始めた俺に隙は無かった
629:デフォルトの名無しさん
09/04/27 01:50:01
> 最近トビケラとカワゲラとカゲロウを見分ける勉強を始めた
なんでだよw佃煮でも作るのか?
630:デフォルトの名無しさん
09/04/28 01:38:04
言語仕様にPascalで可能な関数内関数を導入するように標準化委員会に言ってくれ。
631:デフォルトの名無しさん
09/04/28 01:46:47
ラムダ式と新関数構文を統合してついでにローカル関数も入れようという壮大な提案がある(N2825)
無理だと思うけど
632:デフォルトの名無しさん
09/04/28 07:35:09
もう無茶苦茶だな
633:デフォルトの名無しさん
09/04/28 13:23:59
C++の関数内関数はもう20年も前から提案されたり採用されなかったり
してるよね。
634:デフォルトの名無しさん
09/04/28 13:46:38
なんでローカル関数一つが採用できないのかわからん。
635:デフォルトの名無しさん
09/04/28 14:33:34
ただ己の欲求を満たすだけのために仕様作ってんだろ。
こんなの仕事で使えるか!
636:デフォルトの名無しさん
09/04/28 14:35:41
関数内クラスで用満たせるから
637:デフォルトの名無しさん
09/04/28 14:38:20
関数内関数を実現するためだけに定義された関数内構造体を何度見てきたことか…
638:デフォルトの名無しさん
09/04/28 15:38:23
関数内関数の実現は面倒なんだよ。内側の関数から外側の関数のローカル変数を
参照していて、内側の関数へのポインタを他に渡してる場合。
Usenix-88-lexic.pdf でも嫁
639:デフォルトの名無しさん
09/04/28 15:51:58
関数内クラスならstaticメンバ関数のポインタを関数外に出してもローカル変数には触れられないしコンパイラ作る方は楽だな
640:デフォルトの名無しさん
09/04/28 21:29:09
ラムダ式がちゃんと導入できれば副産物として簡単に実装できるはずなんだがな
641:デフォルトの名無しさん
09/04/28 21:44:20
>>631に戻る
642:デフォルトの名無しさん
09/04/28 23:47:27
>>638
とりあえずレキシカルクロージャ抜きで関数だけでも定義させてくれれば良いのに…
643:デフォルトの名無しさん
09/04/28 23:55:37
ローカル関数何に使うの?
644:デフォルトの名無しさん
09/04/28 23:58:59
プログラム書くのに使う
645:デフォルトの名無しさん
09/04/29 00:01:35
C++/Cでもみんなプログラム書いてるよ
646:デフォルトの名無しさん
09/04/29 00:10:04
ローカル変数にアクセスできるインライン(のみの)関数が一番いいと思う
647:デフォルトの名無しさん
09/04/29 00:12:53
グローバル変数にアクセスできない関数とかってないの?
648:デフォルトの名無しさん
09/04/29 00:51:07
>>643
sortに渡す比較関数とか即席で作りたいことあるじゃん。
649:デフォルトの名無しさん
09/04/29 01:00:01
ローカルクラスはテンプレート引数に渡せないからなぁ
650:デフォルトの名無しさん
09/04/29 01:02:31
>>648
正直どうでもいいな
651:デフォルトの名無しさん
09/04/29 01:39:10
無名関数でおk
652:デフォルトの名無しさん
09/04/29 04:08:45
関数内クラスを活用しだすと
関数の中身が九割九分クラスになって残りはチョロっとしたループや分岐だけに成ったりするが
これが不思議とメンテしやすいんだょな・・
653:デフォルトの名無しさん
09/04/29 05:26:32
おぞましいコード書いて悦にはいってんなょ
654:デフォルトの名無しさん
09/04/29 08:27:02
高度なコードは理解できないという理由で拒絶する奴が出てくるのが困りもの
655:デフォルトの名無しさん
09/04/29 08:55:16
高度なコードと聞いてケラケラと笑う美少女中学生
656:デフォルトの名無しさん
09/04/29 09:53:00
お前の勘違いぶりは犯罪者級
657:デフォルトの名無しさん
09/04/29 11:50:30
しかし、それが適性あり。
658:デフォルトの名無しさん
09/04/29 16:53:21
三項演算子はバグの元。
659:デフォルトの名無しさん
09/04/29 17:02:57
条件演算子と呼べって美少女中学生が嘆いてた
660:デフォルトの名無しさん
09/04/29 18:02:55
条件演算子以外の三項演算子ってどんなのがあるのさ?:
661:デフォルトの名無しさん
09/04/29 18:12:50
参考に聞かせてもらおうか、ですね わかります
662:デフォルトの名無しさん
09/04/29 18:29:18
それは演算子なのか?
663:デフォルトの名無しさん
09/04/29 18:37:57
>>658
君はプログラミングやめた方がいい
664:デフォルトの名無しさん
09/04/29 19:17:26
>>663
俺が言ったことじゃなくて、人から言われたことです
665:デフォルトの名無しさん
09/04/29 19:41:00
>>664
なんの免罪符にもなってない
666:デフォルトの名無しさん
09/04/29 19:43:55
C言語の話ではないがCを参考にした演算子系を持ってる言語で第2項に順次式おいたときとか()でくくらずに条件式を項にしたときとかの挙動が信用できない。
667:デフォルトの名無しさん
09/04/29 19:48:15
>>664
傷口が広がるだけだぜ
668:デフォルトの名無しさん
09/04/29 19:55:12
>>667
何で?
669:デフォルトの名無しさん
09/04/29 20:11:12
>>664
ありそうでなかったパターンのいいわけだな。
670:デフォルトの名無しさん
09/04/29 20:16:14
レベルの低い現場で言われたこと無い?
三項演算子禁止とか。
>653-654の流れで書いたんだが
671:デフォルトの名無しさん
09/04/29 20:19:20
レベルの低い現場に加わるのは、
それなりのレベルの低さが要求されるので、
残念ながら未体験です。
672:デフォルトの名無しさん
09/04/29 20:21:15
ああ。やっと流れが飲み込めた。
レベル低くてすまんかった
673:デフォルトの名無しさん
09/04/29 22:46:55
で、三項演算子が0xで何か変わったのかね?
674:デフォルトの名無しさん
09/04/29 22:48:28
発端は何気ない美少女中学生のつぶやき
675:デフォルトの名無しさん
09/04/29 22:50:06
gcc4.4のautoの使い心地とか誰か報告してくれよ
676:デフォルトの名無しさん
09/04/29 22:51:29
ローカルでstaticでない変数をauto変数って言ってたけど、違う意味になってしまった。
677:デフォルトの名無しさん
09/04/29 22:53:13
で、使い心地は?
678:デフォルトの名無しさん
09/04/29 23:02:47
つかったことがありません。
679:デフォルトの名無しさん
09/04/29 23:05:36
使い心地も何も、新しい機能は何も無くて、自明な宣言の文字数を
省略できるだけだから、何も変らないんじゃね?
後方互換性を気にするなら、愚直に今まで通り宣言するだけだし。
680:デフォルトの名無しさん
09/04/29 23:06:08
たとえばイテレータを書くときとか便利そうだね。
つかったことないけどね。Auto。。。
681:デフォルトの名無しさん
09/04/29 23:13:38
結局新機能なんか誰も使わないってことか
そうだよな、互換性考えたら使えるわけないよな
682:デフォルトの名無しさん
09/04/29 23:33:46
>>681
C++に新たなパラダイムを与えるものならともかく
auto は打つ文字数が減って腱鞘炎が直りました、
ぐらいしか変わらないという意味。
683:デフォルトの名無しさん
09/04/30 00:46:40
大事じゃねぇか、「腱鞘炎が直りました」。
684:デフォルトの名無しさん
09/04/30 00:54:09
auto が一般的になればテンプレートの中で演算し放題なパラダイスが訪れるよ。
685:デフォルトの名無しさん
09/04/30 01:19:11
>>682
でも右辺値参照も誰も使ってないぞ
4.3からだから入ってから大分経つのに
686:デフォルトの名無しさん
09/04/30 02:58:28
マクロだとautoは便利。
687:デフォルトの名無しさん
09/04/30 08:31:39
>>684
D言語のように静的に文字列弄れる訳でもなし、戻り値推論(以下)できる訳でもなし、C++0x程度じゃまだまだ。
auto Square(T)(T t)
{
return t * t;
}
688:デフォルトの名無しさん
09/04/30 08:57:44
戻り値推論って有れば便利だけどさ、その程度の関数だったら、これでよくね
// 関数の文法は統一されるはずだと信じてる
template < typename T >
[] Square( T t ) -> decltype(t * t)
{ return t * t ; }
Boost.labmdaみたいな変態的なライブラリを使った変態的な型を返したい場合は、
重複はちょっと面倒だけど。
あと、動的に返す型が変わるような関数はどういう扱いになるの? コンパイルエラー?
689:デフォルトの名無しさん
09/04/30 09:48:57
>動的に返す型が変わるような関数
?
returnが二つ以上ある関数のこと言っているなら両方の共通の型になる。
690:デフォルトの名無しさん
09/04/30 09:55:47
いや、
if(乱数%2) return ほげほげ ;
else return はげはげ ;
みたいな。
共通の型? javaみたいに暗黙のうちに継承する型とかがあるの?
691:デフォルトの名無しさん
09/04/30 10:10:41
>>690
動的にって言うけど、それってコンパイル時に静的に解決しなきゃいかん問題だよね。
692:デフォルトの名無しさん
09/04/30 10:11:38
>>690
C++で>>687は出来ないよ。
693:デフォルトの名無しさん
09/04/30 11:14:12
>>690
intとlongならlongだし、A派生のBとA派生のCならAだし。
694:デフォルトの名無しさん
09/04/30 11:27:03
auto func = objf_list<>::choice(any);
auto x = func();
返り値の連鎖は無理臭いけど何が出てくるかわからんワクテカ感は0xでも味わえると思う。
695:デフォルトの名無しさん
09/04/30 19:41:06
>>688
今でも条件演算子でそういう状況になるので、
そのときどうなるかは決まっている。
それは戻り値推論でもそのまま採用すべきかものどうかは分からないけど。
696:デフォルトの名無しさん
09/05/02 00:05:47
ラムダ式は簡単な戻り値推論できるから、関数構文と統合されれば
>>688ならこう書けるはず
template < typename T >
[] Square( T t ){ return t * t ; }
697:デフォルトの名無しさん
09/05/02 03:39:09
URLリンク(www.open-std.org)
Move constructor は例外を投げてはいけない・・・という話から、解決策として
noexcept という関数への修飾キーワードで例外を投げないことを
明示し静的にチェックできるようにしたうえで Move constructor はデフォルトで
noexcept にしよう・・・という話から、ついでにデストラクタもデフォルトで noexcept にしようという話。
今更こんな壮大な変更が取り込まれる可能性があるのか、甚だ疑問ではあるが、
確かにすごく欲しいとは思う。
698:デフォルトの名無しさん
09/05/02 06:16:54
&&とか、本気なのか?
ワザと誤解して間違いそうな文法考えて、「分かるヤツだけが分かる!」
って、選民意識を得るために作ってるとしか思えん。
もうちょっと分かりやすいのを考えてほしい・・・
699:デフォルトの名無しさん
09/05/02 06:35:56
>>697
そこでキーワードをnothrowにしないのは意地?
700:デフォルトの名無しさん
09/05/02 08:08:24
何の意地かは分からんがnothrowの方が分かりやすいのは確かだな
701:デフォルトの名無しさん
09/05/02 08:40:31
exceptの方が明示的でいいかな
「投げません」って言われても「何を?」って思うけど
「例外無し」って言われると「ああ、例外無いんだ」って思う
702:デフォルトの名無しさん
09/05/02 09:10:40
nothrowはすでに標準ライブラリに存在している名前だから無理っしょ
703:デフォルトの名無しさん
09/05/02 09:43:56
>>702
何のための名前空間。
704:デフォルトの名無しさん
09/05/02 09:50:52
次期標準にしようとしているのに?
705:デフォルトの名無しさん
09/05/02 09:54:43
みんな使わないのに標準?
706:デフォルトの名無しさん
09/05/02 10:01:34
>>703
名前空間で対策できるってことは予約語じゃなくて単なる識別子として導入?
そんなきもいのマジ勘弁
707:デフォルトの名無しさん
09/05/02 10:06:00
throw 1;って例外を投げてることになる?
708:デフォルトの名無しさん
09/05/02 10:55:23
なる。
709:デフォルトの名無しさん
09/05/02 12:03:47
>>706
まさにその通り。
operator new 関数に nothrow_t 型を引数として受け取るオーバーロードがある。
で、
struct nothrow_t {};
extern const nothrow_t nothrow;
710:デフォルトの名無しさん
09/05/02 12:07:23
>>709
いや、それがあるからキーワードとして nothrow を追加するのは無理ってことだろ。
711:デフォルトの名無しさん
09/05/02 13:23:41
attributeでいいじゃん…とおもったらattributeじゃダメな理由も書いてるな
型システムに入れるとかアホか
712:デフォルトの名無しさん
09/05/02 14:58:33
C++0xがマトモに使われるとは思えなくなってきた。
C99と同じ道をたどるんじゃ。
713:デフォルトの名無しさん
09/05/02 15:04:38
initializer_listとかが一部で使われるくらいだろうなぁ
コンセプトとかもう絶対無理
714:デフォルトの名無しさん
09/05/02 15:13:24
boostの中の人のような変態の為の機能だから普通にC++を使う人が使わないぐらいなら想定内
715:デフォルトの名無しさん
09/05/02 15:15:15
コンセプトはexport(笑)と同じ道を辿るだろう
誰も実装しない、出来ない
716:デフォルトの名無しさん
09/05/02 15:16:31
コンセプトは標準ライブラリやBoostの中で使われれば十分だよ。
テンプレートが関わるエラーメッセージの改善という程度のことに役立つと信じて。
717:デフォルトの名無しさん
09/05/02 15:17:41
いや、exportとは違うさ。
conceptを使うことには利点があるのだから。
exportは、コンパイル時間を多少短くできるってことぐらいしか利点がないから。
conceptなしでは、C++0xは語れないぜ。
C++0xの多くの機能が、conceptを前提にしているんだから。exportとはわけがちがう。
718:デフォルトの名無しさん
09/05/02 17:02:49
でも実装が出来ないんじゃなぁ
conceptGCCとかいつまでやってんだよ
主な商用コンパイラも軒並みガン無視だし
719:デフォルトの名無しさん
09/05/02 17:04:22
conceptの実装は時間がかかるぞ。
だいたい、中途半端な実装をリリースして、互換性の問題を引き起こしてもらっても困る。
720:デフォルトの名無しさん
09/05/02 17:10:02
互換性は諸刃の剣だな
721:デフォルトの名無しさん
09/05/02 17:11:48
conceptGCCはもう開発してないと思う…
9ヶ月くらい更新止まってるし、その前は1年3ヶ月更新止まってたし
URLリンク(www.generic-programming.org)
722:デフォルトの名無しさん
09/05/02 18:19:16
>>719
vcの人は1年くらいかかるとか言ってたな
vc11には入るんだろうか…?
723:デフォルトの名無しさん
09/05/02 19:22:41
本家の concept ブランチでやってるんじゃないの?と思ったら
>At present, the concepts branch provides almost no support for concepts.
URLリンク(gcc.gnu.org)
とか書いてあるな、おい。
更新も 10 ヶ月止まってるっぽい。
URLリンク(gcc.gnu.org)
724:デフォルトの名無しさん
09/05/02 20:24:59
GCCが匙を投げたとなると他も追従するかもしれないな
コンセプトオワタ
725:デフォルトの名無しさん
09/05/02 20:57:43
まさに絵に描いた餅ですね
726:デフォルトの名無しさん
09/05/02 21:08:03
コンパイラ開発者は標準化委員会にいないの?
727:デフォルトの名無しさん
09/05/02 21:28:52
少数で開発してるD言語にもコンセプト的な何かはあるのに、
GCCが実装できないってのは、C++の言語仕様の複雑さを物語っているようだ。
728:デフォルトの名無しさん
09/05/03 17:42:07
規模と実装難易度を考えりゃ、Concept以外が全部実装されてからやっと本腰入れてConceptに取りかかるくらいのもんだろう。
4.5で何が実装されるかってだけでもwktk出来るさ。
729:デフォルトの名無しさん
09/05/03 17:54:55
コンセプトがないと拡張for文もきないしライブラリの作り直しにも本腰入れられないだろ
さっさとしてくれ
730:デフォルトの名無しさん
09/05/04 00:35:12
言語オタクな連中に規格を作らせるからこんな事になるんだ
731:デフォルトの名無しさん
09/05/04 01:36:56
そうだよな。実務的な言語がものすごくキモい化物になって行く様は、おぞましい。
732:デフォルトの名無しさん
09/05/04 01:58:18
現状維持派 → 表に出てこない
変えたい派 → 騒ぐ
止める人がいない
733:デフォルトの名無しさん
09/05/04 08:44:52
HTML5ワークショップの実務に即した仕様策定がうらやましい
734:デフォルトの名無しさん
09/05/04 13:08:00
それが真実なら、とうの昔に標準GCが規定されてるはずだ
735:デフォルトの名無しさん
09/05/04 23:47:01
しかし、本当にjavaより速いプログラムを作るのが難しい言語になって行くなァ。
736:デフォルトの名無しさん
09/05/04 23:49:21
それはない。
737:デフォルトの名無しさん
09/05/04 23:58:25
VCが新ライブラリへの対応だけでも迅速に進めてくれればいいや
特に cstdint と regex
738:デフォルトの名無しさん
09/05/05 00:02:29
>>735
とりあえず
> どんどん~なっていく
っていうのは無いはず。
739:デフォルトの名無しさん
09/05/05 00:24:22
i = i++ の結果は未定義なのでしょうか?
740:デフォルトの名無しさん
09/05/05 00:35:11
未定義じゃないと思う。
741:デフォルトの名無しさん
09/05/05 00:36:57
a[i++] = i;
の動作は未定義だそうだ
742:デフォルトの名無しさん
09/05/05 00:37:51
根拠
743:デフォルトの名無しさん
09/05/05 00:43:30
>>739
URLリンク(codepad.org)
iは変化しないって思ってたけどそうじゃないんか。
実戦ではつかえないっすねー。
744:デフォルトの名無しさん
09/05/05 00:49:59
単にその処理系でそうなるだけなのか、C++でそういう定義なのか、分からないだろ。
745:デフォルトの名無しさん
09/05/05 00:51:04
(´・ω・`)知らんがな
まぁ誰かが調べるまで気長に待てばいいじゃない
746:デフォルトの名無しさん
09/05/05 00:54:58
未定義というよりは不定なのかな?
C# では
int i = 5;
i = i++;
System.Console.Write(i);
で 5 が出力されるので疑問に思ってちょっと調べてみたんですけど
規格みると副作用とか副作用完了点とかよくわからない
747:デフォルトの名無しさん
09/05/05 00:56:34
「未定義」と「不定」を区別するならそれぞれの定義を。
748:デフォルトの名無しさん
09/05/05 01:02:01
とりあえず++演算子は右辺に置くなということで。
「未定義or不定だからヤメロ」って言えれば楽なんすけどねー。
>>746
wktk
749:デフォルトの名無しさん
09/05/05 01:02:10
区別はここみてそういう区別があるんだと思ったから
URLリンク(www.st.rim.or.jp)
750:デフォルトの名無しさん
09/05/05 01:04:54
補足
URLリンク(www.st.rim.or.jp)
未定義だそうだ。
751:デフォルトの名無しさん
09/05/05 01:06:29
おまえら揃いも揃ってスレタイよめないのか
752:デフォルトの名無しさん
09/05/05 01:12:15
739程度が一目で未定義とわからない奴らが新規格のスレに何の用だ
753:デフォルトの名無しさん
09/05/05 01:19:27
>>739-750
何この程度の低い流れ。自演?
754:デフォルトの名無しさん
09/05/05 01:44:52
>>737
Regexは2008 SP1の時点で登載済み。TR1としてだけど。
755:デフォルトの名無しさん
09/05/05 02:10:50
TR1との違いってコンセプト対応してるかどうかくらいだっけ?
756:デフォルトの名無しさん
09/05/05 06:35:57
テンプレくらい読んでから質問しろ
757:デフォルトの名無しさん
09/05/05 06:37:42
>>752
Sequence pointsすら分からない奴が、
まだ確定してない規格知ろうなんて十年早いよな。
758:デフォルトの名無しさん
09/05/05 11:16:01
はいはいすごいすごいえらいえらいかしこいかしこい
759:デフォルトの名無しさん
09/05/05 12:34:08
フィンローダなつかしいなー
あのころはCマガ面白かった
760:デフォルトの名無しさん
09/05/05 20:38:35
>>736
経験不足のおバカさんだな。
761:デフォルトの名無しさん
09/05/07 12:23:26
0xとあんま関係ないけど、UNICODEソースは仕様上なんか規程されてるの?
まぁ、サポートされてても日本語でソース書こうなんて思わないけどさぁ。
762:デフォルトの名無しさん
09/05/07 15:42:59
日本語で書けるなら書きたい
763:デフォルトの名無しさん
09/05/07 15:49:00
ソースコードに実装依存の文字が使えるということになっている。
まあ、今までも、C++のコンパイラは、ほぼ例外なく実装依存の文字が、少なくとも文字列リテラルやコメント内で使えたし、
いまさら規定しても何も変わらないと思うが。
764:デフォルトの名無しさん
09/05/07 18:58:57
「実装依存の文字」の話はしていない。
UNICODEの話をしている。
765:デフォルトの名無しさん
09/05/07 19:40:52
実装依存か・・・。VCでこんなコードも
通るんだが、現場とかで見るよう担ったらヤダなぁ、
変換するのがダリぃ。
int 二乗(int 引数)
{
return 引数*引数;
}
766:デフォルトの名無しさん
09/05/07 19:54:44
識別子に漢字が使えるのはC++0xの仕様?
コンパイラーの仕様?
767:デフォルトの名無しさん
09/05/07 20:18:28
>>764
「ソースコード」の文字列に関しては、何にも規定されてないと思うんだけど。
>>765
知らなかった。プリプロセッサにも使えるんだな。
ということは、ラムダ関数が実装された暁に、λをautoか[]に#defineすれば・・・。
まあ、正直使いたくないな。
>>766
C++0xでは、識別子に、「その他の実装依存の文字」が使えることになってる。
だから漢字が使えても規格上問題ない(ソースコードの移植性はない)
768:デフォルトの名無しさん
09/05/07 20:30:09
>>767
二点質問があります。
「その他」ではない文字は何ですか?
C++0xに対応したコンパイラーが必ず使えなければいけない(移植性のある)文字セットは何ですか?
769:デフォルトの名無しさん
09/05/07 20:58:57
その他ではない文字というのは、
識別子の先頭の文字には、
a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z _
先頭以外ならば、上記に加えて、
0 1 2 3 4 5 6 7 8 9
また、"universal-character-name"というものが使える。
これは、/uもしくは/Uに続く、十六進数で指定する、
/uは4文字、/Uは8文字指定できる。
つまり、/uXXXX もしくは /UXXXXXXXX という形式になる。
その表現する所の文字は、十六進数の値の、ISO/IEC 10646で規定されている値に対応する文字、
つまりはUnicode。
だから、以下のコードは妥当、ということになるはず。この辺は実は詳しくないのだけれど。
//C++0xでは完璧に合法なコード
int /u3042/u3044/u3046 = 0 ;
もし、コンパイラがその他の実装依存の文字を許可するならば、上のコードは、以下と同じ
int あいう = 0 ;
770:デフォルトの名無しさん
09/05/07 21:12:15
フォワードスラッシュなのか…
771:デフォルトの名無しさん
09/05/07 21:14:50
間違えたorz バックスラッシュだ。
int \u3042\u3044\u3046 = 0 ;
772:デフォルトの名無しさん
09/05/07 21:16:53
自然数 エー 配列 代入 ここからゼロ、ワン、ツー、ここまで。
加速繰り返し 括弧 自然数参照 エヌ、エー 国家
ここから
標準の黒板に 書き出せ エヌ 書き出せ 標準の行末。
ここまで
773:デフォルトの名無しさん
09/05/07 22:20:09
JIS X 3014:2003を読むと処理系依存にその他の文字とか全然ないですね。
ソースコードの文字はユニコードにコードポイントがなければならないように
なっています。
コンパイルの一番最初の段階で基本ソース文字集合(A-Za-z_0-9と基本的な
記号と空白類)か\uxxxx,\Uxxxxxxxxと言うようなユニコードの
コードポイントに変換されそのあとに識別子としての解釈があります。
なので\uxxxx,\Uxxxxxxxxだろうとそのままの文字だろうと識別子に使えます。
ただし識別子に使用できる文字はA-Za-z0-9_と規格の付属書(appendix)Eにある
指定されたユニコード文字だけです。
いまこれを書くために読んだ限りですが。。。
774:デフォルトの名無しさん
09/05/07 23:00:49
>>772
#define駆使すればもっと自然な日本語にもできるぞ。
スレリンク(tech板:942番)
775:デフォルトの名無しさん
09/05/08 13:43:40
URLリンク(www.open-std.org)
776:773
09/05/08 18:59:34
訂正
> JIS X 3014:2003を読むと処理系依存にその他の文字とか全然ないですね。
は
「JIS X 3014:2003を読むとその他の文字が処理系依存とか全然ないですね。」
777:デフォルトの名無しさん
09/05/08 19:11:29
>>773
トライグラフの変換は?
778:デフォルトの名無しさん
09/05/08 19:45:00
おちんちんがトライグラフ!美少女中学生も赤面!
779:デフォルトの名無しさん
09/05/08 20:50:27
なんだ誰も mailing の話してないのか
780:デフォルトの名無しさん
09/05/08 21:00:36
何それ
781:デフォルトの名無しさん
09/05/08 21:11:47
少ないしあんまり面白いのないんだもん
「for The-C++-After-0x」とかいう気が早すぎる奴くらい
782:デフォルトの名無しさん
09/05/08 21:13:52
好きな男子との間に生まれた子の名前を考えるほど気が早い美少女中学生の話で盛り上がっております
783:773
09/05/08 21:35:43
>>777
トライグラフも同時だよ!
784:デフォルトの名無しさん
09/05/08 22:32:40
>>781
なにげにあったら便利だね
785:デフォルトの名無しさん
09/05/09 05:50:40
URLリンク(www.open-std.org)
News 2009-05-08: The C++ Standard Core Language Issues List (Revision 63) is available
News 2009-05-08: The C++ Standard Library Issues List (Revision 64) is available
786:デフォルトの名無しさん
09/05/10 19:46:37
g++ (GCC) 4.2.4って、C++0x 5対応済みなの?
787:デフォルトの名無しさん
09/05/10 20:00:07
ここに載ってるのは 4.3 以降だな。
URLリンク(gcc.gnu.org)
788:デフォルトの名無しさん
09/05/10 20:03:45
>>787
Thx
789:デフォルトの名無しさん
09/05/13 18:52:20
美少女中学生が次のレスはまだかまだかとwktkしています
790:デフォルトの名無しさん
09/05/16 16:21:23
保守
791:デフォルトの名無しさん
09/05/16 21:40:17
C++0xって、本当に今年、出るの?
そう言う雰囲気を、ちっとも感じないのだが、
いきなり「出来ました」って出るの?
792:デフォルトの名無しさん
09/05/16 21:41:00
予定は未定
この世界の納期は破るためにある
793:デフォルトの名無しさん
09/05/16 22:15:03
Committee draft以降は各国の意見調整をしながら
投票の繰り返しになるから、まあ地味っちゃ地味。
サイトにDISって文字が現れだしたらゴールは近い。
794:デフォルトの名無しさん
09/05/17 03:12:19
ラムダ周りが各国(日本除く)からフルボッコにされてるから簡単には終わらないと思う
795:デフォルトの名無しさん
09/05/17 03:37:38
○○○ 2008が2007年に出たりするんだから
c++ 0xが2010年に出てもいいじゃないか
796:デフォルトの名無しさん
09/05/17 03:54:57
○○○6月号は5月にでるんだから、C++0xは08年までに出さないといけなかった。
797:デフォルトの名無しさん
09/05/17 04:14:25
0xって16進でしゅ。つまり2015まででしゅよ。by禿げ
798:デフォルトの名無しさん
09/05/17 04:59:41
それなら0x0xと書くべき
799:デフォルトの名無しさん
09/05/17 09:29:12
>>798
それだとやっぱり09年までだろ。
オプソ厨のアホさ此処に極まれりだな。
800:デフォルトの名無しさん
09/05/17 09:34:36
>>799
with whom you are fighting?
801:デフォルトの名無しさん
09/05/17 15:03:37
英語がわかんなくてあわあわする美少女中学生
802:デフォルトの名無しさん
09/05/17 18:26:05
C++09 Attributes: Specify Your Constructs' Unusual Properties
URLリンク(www.devx.com)
803:デフォルトの名無しさん
09/05/18 07:27:37
"[[final]]"ってなんだよ・・・w
かっこはひとつでいいじゃん
804:デフォルトの名無しさん
09/05/18 07:36:47
それはどんな識別子でもキーワードにできる魔法の括弧だよ。
805:デフォルトの名無しさん
09/05/18 09:12:22
かっこわるい……
806:デフォルトの名無しさん
09/05/18 09:22:55
lisp 属の () を笑えない変態構文だらけなんだが
こいつ等にシンタックスシュガーをかませようとか
ってな, 話はでてこない???
807:デフォルトの名無しさん
09/05/18 09:36:57
C++の仕様考えてる人にはもはやLISPを笑わない人しか残ってないってことだろ。
808:デフォルトの名無しさん
09/05/18 09:39:43
FC++で関数型言語汚染が酷い
mplやpreprocessorで「汚いlisp」汚染が酷い
809:デフォルトの名無しさん
09/05/18 10:54:31
逆に考えるんだ
LISPこそ、全てのプログラミング言語の最終形態なのだと
全てのプログラミング言語はその進化の果てにLISPと同一化するのだと
810:デフォルトの名無しさん
09/05/18 12:36:06
LISPは化け物だ。って格言無かったっけ。
すべてを飲み込んでしまうってやつ。
811:デフォルトの名無しさん
09/05/18 14:08:04
俺は>>807の言う通りの人間だ。
C++0x萌え、CLOS萌え
812:デフォルトの名無しさん
09/05/18 20:49:24
美少女中学生は余計なかっこつけが嫌いです。
813:デフォルトの名無しさん
09/05/18 20:58:22
とゆうことは
「美少女中学生はC++0xが嫌いです」
でおけ?
814:デフォルトの名無しさん
09/05/18 21:33:13
>>810
むしろ寄生虫じぇねーの?
いろんな言語に入り込んでるが、それ自体で使われることが少ないとかさ。
815:デフォルトの名無しさん
09/05/18 21:36:27
>>814
ほえ?
他の言語が Lisp のアイデアパクリまくってても、それに対して何も言わないが
> それ自体で使われることが少ないとかさ
ここ数年ずっと Lisp で納品物作ってるwW
816:デフォルトの名無しさん
09/05/18 22:24:34
いまPerlを勉強中
LISPよりしごと多そう
817:デフォルトの名無しさん
09/05/18 22:33:15
>>815
是非御社で働かせていただきたいでつ ><
818:デフォルトの名無しさん
09/05/19 04:11:41
>>815
ほえ、じゃねーよ。なめんなよ。
819:デフォルトの名無しさん
09/05/20 23:21:35
美少女中学生なんじゃねーの?
820:デフォルトの名無しさん
09/05/21 05:18:19
はにゃ~ん
821:デフォルトの名無しさん
09/05/21 18:47:30
和訳:Rvalue References: C++0x Features in VC10, Part 2
URLリンク(d.hatena.ne.jp)
822:デフォルトの名無しさん
09/05/21 20:07:42
3ヶ月前じゃん
まあ有用だとは思うが
823:デフォルトの名無しさん
09/05/27 21:05:44
comp.std.c++ に Scott Mayers がすごい勢いで投稿してるけど
Effective の新版でも書き始めたんかな?
824:デフォルトの名無しさん
09/05/28 01:13:13
ものすごい勢いでcobol化していくc++。
825:デフォルトの名無しさん
09/05/28 06:42:15
>>823
どっちかというとC++0xに向けての改正版作成のためっぽい
826:デフォルトの名無しさん
09/05/28 07:01:05
>>824
COBOLというよりPL/Iの時の悲劇を思い出させる
巨大化しすぎてまともに使いこなせるユーザーがほとんどいなかった
827:デフォルトの名無しさん
09/05/28 07:04:25
PL/IとMulticsの失敗による教訓からUNIXとC:言語が生まれたが
時代はまた繰り返そうとしている
複雑化する一方のC++とWindows
828:デフォルトの名無しさん
09/05/28 07:49:46
PL/Iは最初から巨大だったんじゃないのか。
だいたい名前からしてでかすぎるだろ。
829:デフォルトの名無しさん
09/05/28 07:59:22
現時点でもPL/Iのマクロ>>C++のテンプレートくらいですね。
830:デフォルトの名無しさん
09/05/28 08:55:26
C++0x を教訓により良い言語が生まれるならそれでいいじゃないか
831:デフォルトの名無しさん
09/05/28 14:49:31
C++を代替可能なC++より良い言語なんてどこにあるんだ
あったら使いたい
832:デフォルトの名無しさん
09/05/28 15:06:52
D・・・いやなんでもない
833:デフォルトの名無しさん
09/05/28 15:12:08
Dのテンプレートで浮動小数点とか文字列引数に取れるのはうらやましい。
834:デフォルトの名無しさん
09/05/28 16:50:18
もう何年もC++使ってるから新しい仕様にも何とかついていけるが、
今からC++を始める人にとっては相当大変だろうな。
そして、禿はいつ第4版を書くのだろうか。
835:デフォルトの名無しさん
09/05/28 18:26:21
別に全機能使うことはないだろう。STL使うだけでもわりと幸せ。
836:デフォルトの名無しさん
09/05/28 19:06:53
Boost.ConceptCheckにはよく世話になってる
837:デフォルトの名無しさん
09/05/28 19:13:58
STLをまともに使うのも意外と面倒だからな。
838:デフォルトの名無しさん
09/05/28 21:44:03
Better Cで十分な漏れはなんでこのスレにいるんだろ?w
839:デフォルトの名無しさん
09/05/28 23:29:36
最初のうちは関数オブジェクトを作る時にstd::unary_functionや
std::binary_functionを継承しなければならない理由がわからなかった
840:デフォルトの名無しさん
09/05/28 23:30:47
いまでもわからずにやっているので教えてください
841:デフォルトの名無しさん
09/05/28 23:38:12
STLスレででも聞け
842:デフォルトの名無しさん
09/05/28 23:42:45
別に継承する必要はないんじゃ
843:デフォルトの名無しさん
09/05/29 00:42:25
つーか継承前提のくせに仮想デストラクタ持ってない危険なクラスだから使っちゃダメっす
844:デフォルトの名無しさん
09/05/29 01:13:15
でりげーと
845:デフォルトの名無しさん
09/05/29 01:29:07
継承前提であっても基底クラスのポインタで多態させるような使い方はしないから問題ないだろ。
846:デフォルトの名無しさん
09/05/29 01:37:25
という反論が来るのは分かり切ってたが、そんなの言い訳にならないと思うんだよな
unary_function*があらゆる場所で絶対にdeleteされないとどうして言い切れるのか
847:デフォルトの名無しさん
09/05/29 01:53:23
本来はprotectedな非仮想デストラクタを提供すべきだった
848:デフォルトの名無しさん
09/05/29 01:57:21
そもそも、unary_functionやbinary_functionは、テンプレート引数に関数オブジェクトを渡す時、
引数や戻り値を得るためのものなんだよ。
そもそもの想定されている使用方法が、ベースクラスで渡すものじゃないんだ。
お前の言い方は、
unique_ptrは、auto_ptrと違い、そのスコープ内のみがオブジェクトの生存期間だと明示できる、というけれど、
「何もしないdeleter」をunique_ptrに渡したら、auto_ptrみたいに使用できるじゃないか、
プログラマが絶対に、「何もしないdeleter」を書かないと、どうして言い切れるのか!
と言っているのと何ら変わりないんだよ。
849:デフォルトの名無しさん
09/05/29 03:07:11
unary_functionやbinary_functionのやっている事は
実は単なるtypedefなんだけどな
これが無くても平気な関数アダプタはあるが、bind2nd()などは
無いとエラーを吐く
850:デフォルトの名無しさん
09/05/29 03:11:23
decltypeがもっと早くからあれば、完全にダックタイピングでいけたんだろうか
851:デフォルトの名無しさん
09/05/29 09:03:13
843みたいなアホがなんでこのスレにいんの?
unary_function/binary_functionは必要なtypedefを書くのをちょっと楽するためだけのもの
しかもbind1st/bind2nd使わないなら不要
さらにC++0xのbindには内部resultテンプレートがあれば引数型は固定でなくてよい
result_of<>はresult_typeもしくは内部resultテンプレートがあれば十分
ところでCallableコンセプトあればresult_ofいらなくね?
852:デフォルトの名無しさん
09/05/29 09:17:04
>>851
コンセプト使うの前提にすれば、Type Traits系のライブラリなんて全部いらなくね?
853:デフォルトの名無しさん
09/05/29 11:06:31
クラス組んじゃえばそうだろうけど、関数内でちまっと条件分岐させたいだけとかなら需要はいくらでもあるような。
854:デフォルトの名無しさん
09/05/29 11:17:30
conceptを検討し始めた時の条件として、
既存のtraits系などと共存出来て、段階的に移行できること、
というのがあった。
>>839のようなケースはconcept_mapに集約されていくのだろうか…
855:デフォルトの名無しさん
09/05/29 13:18:48
Douglas GregorがApple行ってConceptGCC止めちゃったから、
iteratorを整理したくらいでライブラリのconcept化は止まってるね。
856:デフォルトの名無しさん
09/05/29 22:48:31
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
857:デフォルトの名無しさん
09/05/30 02:14:06
>>855
C++0xには入らないのだから、
ライブラリのコンセプト化は後回しだろうね。
858:デフォルトの名無しさん
09/06/03 11:15:56
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
859:デフォルトの名無しさん
09/06/03 14:02:42
_, ._
( ・ω・)
○={=}〇,
|:::::::::\, ', ´
、、、、し 、、、(((.@)wwwwwwwww
860:デフォルトの名無しさん
09/06/03 21:37:50
一瞬、ここがGrassスレになったのかと思った。