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


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

C++0x 4



1 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:25:25 ]
The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/

wikipedia
ja.wikipedia.org/wiki/C%2B%2B0x

C++0x
pc11.2ch.net/test/read.cgi/tech/1149440647/
C++0x 2
pc11.2ch.net/test/read.cgi/tech/1191842951/
C++0x 3
pc11.2ch.net/test/read.cgi/tech/1204808027/

348 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:46:40 ]
Dwwwwwwwwww

349 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:54:29 ]
>>342
モチベーションの1つに、そのswapのような変な書き方ではなく
直観的に=演算子でやれるようにするっていうのは無かったっけ?

350 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:55:37 ]
Ocamlとか?

351 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:56:46 ]
Solaris、Windows、Linux + FreeBSD、Mac、Haiku OS

x86ならバイナリも吐けなくないJava
実行速度でC++に引けを取らないJava
対応OSも互換性を重視すれば圧倒的にC++ << Java


352 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:01:04 ]
最近のjavaは好きな言語だけど、C++とは全然違うよ。
C++の代りの言語はない。近いものすらない。

353 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:01:45 ]
Javs厨の寝言来ちゃった

354 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:02:53 ]
GCを使わされる時点でDもJavaも論外

355 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 19:08:11 ]
DってDelphiのことじゃないよね

356 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 19:14:06 ]
そうだよ



357 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:08:48 ]
俺がこれから作る( ・∀・)イイ!!言語ならあるいは・・・!!

358 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:46:24 ]
dn.codegear.com/jp/article/38392
C++Builder 2009はC++0xサポートするってさ

俺は買ったことないけど

359 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:51:00 ]
そいつはすげぇ!

でも2009年じゃまだ仕様が決まって無いんでは…

360 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:11:56 ]
いや、その年に仕様を決めようということでC++0xと呼ばれているのではないだろうか。

361 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:16:44 ]
>359
先行して実装するってことらしい。まーどうせ規格が決まったところでフル実装は先になるんだろうし、しばらくは一部実装でしょ。
とりあえず動画中で取り上げられていたのは、スコープ付き enum (および enum のベース型指定)と static_assert。
move semantics については名前が挙がってたし、プロジェクト中にもそれっぽいファイルが見えるけど実際の紹介はなかった。

でもここ最近の Borland/CodeGear の標準準拠度を考えるとあんまり期待できないような気がするなぁ。

362 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:38:19 ]
VCだって6は酷かったけど今はまあ使えるじゃないか。
BCBだってやってくれるかもしれない、なんて期待は甘い?

363 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:42:36 ]
ヘッジがM$に移籍したのが痛いよな

364 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:43:46 ]
>>360
0xF年までおk

365 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:59:01 ]
Comeauがどこまで実装するか楽しみ

366 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:15:19 ]
0x200f年までok



367 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:17:58 ]
0xff0f年までおk

368 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:22:55 ]
>>363
Hejは規格コーダ屋じゃないからあんまり関係ないでしょ。
得意なのが言語設計とRAD設計だから。

369 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:00:18 ]
>>344
f.swap((a+b)*(c+d)*e); は無理だが
((a+b)*(c+d)*e).swap(f); は問題ない。

370 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:33:32 ]
ああ、なるほど

371 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:17:19 ]
gcc 4.4.0_alpha20080725にてテスト
ソース
#include <map>
#include <string>
#include <iostream>
#include <boost/foreach.hpp>
int main()
{
  typedef std::map<std::string,int> Map;
  Map anim{ {"bear",4}, {"cassowary",2}, {"tiger",7} };
  BOOST_FOREACH (Map::value_type v, anim) {
    std::cout << v.first << ':' << v.second << std::endl;
  }

  return 0;
}

結果
bear:4
cassowary:2
tiger:7

とりあえずN2672の例の1つが動くことを確認。そろそろautoが欲しいなー。

372 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 06:44:55 ]
ダメだ。どうしても分からんから教えてくれ。
N2710のコンセプトのドラフト、
14.9.1.4
>A concept-definition that starts with auto defines an implicit concept, otherwise it defines an explicit concept.

implicitとexplicitで何が違うんだ?
あちらこちらによく分からない記述が散らばっているだけでさっぱり分からん。

373 名前:372 mailto:sage [2008/08/17(日) 07:49:49 ]
自己解決
N2081に書いてあった。

374 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 03:54:18 ]
>>342
それじゃ部分式の演算子関数呼び出しでコピーが発生するじゃない。


375 名前:デフォルトの名無しさん [2008/08/26(火) 13:45:43 ]
nullptr があっても printf() とか可変長引数にヌルポインタ渡す時のキャストが
要らなくなったりしないよね?

376 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:15:42 ]
void*を渡すならいらない。



377 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 18:51:22 ]
tyep safe な printf まーだー?

378 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:34:35 ]
ばらでぃっくなアレを使うんじゃ

379 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 23:55:53 ]
つboost::format

380 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:03:01 ]
こんなの見つけたけど次回ってもう今日だな。
ttp://d.hatena.ne.jp/faith_and_brave/20080516/1210935359

381 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 09:18:07 ]
2008-08 mailing (pre-San-Francisco)

382 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 09:34:19 ]
細かい議論が多くて面白いですね

383 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:34:02 ]
decltypeに関数を与えると関数を表す型じゃなくて関数の戻り値を表す型になるのか。
なんだか非直感的でやだな。

384 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:35:59 ]
関数の型と言えばsignature

385 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:16:19 ]
.>>383
decltypeのやっていることはsizeofとほとんど同じだからな。
むしろ、sizeofの型を返す版が欲しいっていう話だし。

386 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:35:48 ]
typedef F decltype(f);
arity<F>::value; // 引数の数
result_of<F>::type ; // 戻り値の型
arg_types<F>::type ; //引数の型リスト

のようにできれば俺は満足ですよ



387 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:52:44 ]
何か違和感があると思ったら一行目だ。
decltypeが型としての関数を返すものだったとしてもだ、順番が間違っているぞ。

388 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 14:09:52 ]
typedef FROM TO;の順番なのに…
C++を使ってないのバレバレですね失礼しました

389 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 14:56:36 ]
つusing TO = FROM;

390 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 15:54:11 ]
383を見て、decltype(printf)がintになっちゃうのかと思った。


391 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 18:55:33 ]
違うの?
decltype(printf)がint(*)(const char*,...)じゃなくてintになるから
非直感的で気持ち悪いって言ってるのかと思った
decltype(printf("..."))だったら当然intに決まってるし

383どういう意味?

392 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:09:39 ]
関数呼び出しせずに関数名を渡したら関数の型になるんじゃないの?

393 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:17:41 ]
当たり前。スルーで。

394 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:15:12 ]
じゃ結局decltype(printf)は普通にint(*)(const char*,...)型なのね

395 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:22:28 ]
いや、ポインタじゃないだろ?

396 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:22:58 ]
当たり前。スルーで。



397 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:44:52 ]
>>395
アホ?
C/C++の式にポインタじゃない関数型なんて存在しねえよ

398 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:51:58 ]
存在しなかったら関数呼べないだろwwwwwwwwwwwwwwwwww

399 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:56:59 ]
関数呼び出し演算子のオペランドの規定読んでから出直してこい

400 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:21:28 ]
ConceptGCC 4.3.0 alpha7 でテスト
#include <cstdio>
#include <typeinfo>
int main() {
std::puts(typeid(int(const char*,...)).name());
std::puts(typeid(int(*)(const char*,...)).name());
std::puts(typeid(std::printf).name());
std::puts(typeid(decltype(std::printf)).name());
}
結果
FiPKczE
PFiPKczE
FiPKczE
FiPKczE

401 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:28:00 ]
>>397
坊やにはまだ早いよ。
C++03を学びなおしてきな。

402 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:34:35 ]
えー?
関数型って&演算子のオペランド(結果は関数ポインタ)の場合しか存在しないんじゃないの?
関数ポインタには*演算子効かないから関数型って単独で取り出せないんじゃないの?
(**************printf)("...")とか書けるのは何なの?
()のオペランドって関数ポインタじゃないの?

わかんなくなってきた

403 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:36:41 ]
>>402
スレチ

404 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:40:42 ]
みんなが関数名と呼んでいるものは実は関数ポインタリテラルで、
関数ポインタというものは*や&付けても自分自身に戻る変な型で、
みんなが引数列と呼んでいる(...)は関数ポインタ(と多重定義したクラス)だけに作用する特別な演算子で
「関数」なるものはコンパイラの世界には存在しないんだよって

そう教わって信じてきたのにまさかC++に関数型が存在するなんて…
カルチャーショック

405 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:44:45 ]
>>404
ポインタにはすべて「そのポインタが指す先の型」というものが概念的に存在する。
そういう型の変数が作れるかとか、そういう型のリテラルが書けるか、は別の問題。

406 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:45:41 ]
まーC++の関数って、関数ポインタに特別な文法なしで代入できるし、
型としての関数なんて、テンプレートメタプログラミングでもしない限り扱わんし、
紛らわしいよな。



407 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:55:20 ]
待て、やっぱり変だ

void foo(void(*)()){std::cout << "foo(void(*)())";}
void foo(void()){std::cout << "foo(void())";}

これ定義しようとしたら怒られたぞ(片方にするとどっちも通る)
つまりvoid(*)()とvoid()は同じ型ってことじゃないの

408 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:00:37 ]
>>407
引数の型(というか、変数の型)としては関数ポインタしかあり得ない。
そういう場所に「関数」を書いた場合は「関数ポインタ」とみなす、という規則があるため、
結果的に同じ型の引数を取る関数を宣言しようとしたと解釈されエラーになる。

409 名前:not 408 mailto:sage [2008/09/04(木) 22:05:19 ]
その引数の型矯正ルールが8.3.5.3な。
とりあえずC++0xはまだ早いんじゃないのかね?

410 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:13:35 ]
1.処理系すらできてない規格に触るのなんてまだ早い
2.その程度の知識ならまずC++03の規格に一通り目を通してから、まだお前のような素人には早い

dotchi?


411 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:24:47 ]
調べた

なんだ&とsizeofとtypeid(と多分decltypeも)のオペランドの中が特殊なだけで
その外では404の通りでいいんじゃん
関数型は出てきたそばから関数ポインタに変えられるから
&とsizeofとtypeid以外の世界にはやっぱり関数型は存在しないんだ
俺は大体合ってた

412 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:28:55 ]
俺がこっそり望んでいたsealedは入りませんか?

このクラスは継承するなってソースにもドキュメントにも書いてあるのに
勝手に継承されてデストラクタ呼ばれないとか文句垂れられます

413 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:29:39 ]
D&Eに継承の禁止の仕方載ってる

414 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:31:15 ]
3.

415 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:19:54 ]
>>411
boost::function<R(A)> とか boost::result_of<R(A)> とか見たこともないの?


416 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:22:47 ]
>decltype
オーバーロードしてる関数の型ってのはやっぱ無理なのか
例えばstd::fabsを引数double xで呼び出したときの(戻り値ではなく)関数の型が分かると便利なんだけど

decltype( static_cast<decltype(x)(*)(decltype(x))>(std::fabs) )
てのは本末転倒な気がする



417 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:32:10 ]
>>411
関数型をtypedefすると、
シグネチャが同じ関数を大量に宣言するときに便利だよw
typedef double F(double);
F sin,cos,tan,asin,acos,atan,…;
ってこれC言語だからC++0x関係ないな

418 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:45:31 ]
>>415
function, result_ofはTR1にも入っていて、
C++0xにまんま入ることが決定済み。

419 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 06:33:58 ]
sizeofは『式を評価して』その式の型のサイズを返す。
decltypeも『式を評価して』その式の型を返す。
だから関数を入れたらその関数が評価されて関数の戻り値の型が返るに決まっている。
どこも非直感的ではない。

420 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 08:42:21 ]
>>419
×関数を入れたら
○関数呼び出しを入れたら

421 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 09:12:37 ]
おいおい、"unevaluated operand"ってやつで、「評価」されないよ。
typeid, sizeof, decltypeの三つな。


422 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 13:12:11 ]
仮に評価したときに返ってくるであろう型、と言うべきだね

423 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:42:50 ]
つ 「式の型」

424 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:25:23 ]
なるほど、
int i = 0;
std::cout<<sizeof(i++)<<std::endl;
std::cout<<i<<std::endl; //prints 0
なわけね

>>416が気になるからage

425 名前:デフォルトの名無しさん mailto:age [2008/09/05(金) 18:28:06 ]
ageてないw

426 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 19:16:48 ]
平気で未定義になるような病的な式をsizeofの中に閉じこめたりするのは
TMPではよくやることだな



427 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:21:04 ]
sizeof(0 / 0) は警告が出るな@gcc

428 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:57:58 ]
0除算だからな

429 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 22:35:53 ]
昔のコンパイラってTMPで0除算したら落ちたりしてたんだろうか
今でもboost vaultにあるキワモノ(例:eggとかphoenix)使ってたらエラー時に落ちるものは結構あるようだけど

430 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 23:39:59 ]
>>418
??? そんなことは百も承知だが
関数型がテンプレートの引数一つで取り扱える例を出しただけ

そういや、boost::function は昔は <R, A1, A2> みたいに書いてたころも
あったけな

431 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:22:30 ]
自意識過剰の変な奴…

432 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:36:46 ]
美少女中学生スレたるこのスレにはふさわしくないな

433 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:45:09 ]
美少女中学生の話は↓でやれ。ここでするな。
pc11.2ch.net/test/read.cgi/tech/1191754720/

434 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:27:25 ]
0xの可変個引数テンプレートがDのそれとよく似てるけど、どっちが先なのかな?
それとももっと古くからあった?

435 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:49:36 ]
>>434
va_argって知らないの?

436 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:55:47 ]
>>434
先に実装したのはDだが、発想自体は別に新しいものじゃないだろ



437 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:22:38 ]
>>435
可変個引数関数のことを言ってるんじゃないよ
>>436
そうなのか。作ったタプルを転送して展開して…とか初めて見たとき、何じゃこりゃすげぇと思ったんだけどな〜

438 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:24:06 ]
C++0xを使いこなせる自信がない。
無理だろあんなもの。疲れるだけ。

439 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:27:23 ]
大丈夫、苦労するのはライブラリ実装者だけだから

440 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:31:14 ]
>>437
> 何じゃこりゃすげぇと思ったんだけどな〜

かわいいねえ。

441 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:53:23 ]
美少女中学生がいるな・・・

442 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:35:28 ]
auto以外は普通の利用者には関係ないね

443 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:24:30 ]
「C++0x?D言語最強に決まってんだろwww」って言われたときのためのコピペ作ろうぜw

444 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:30:05 ]
おまえDスレにいるだろ

445 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:34:07 ]
可変テンプレートは型リストの構文糖衣でいいのに

446 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:59:47 ]
>>442
コンセプトでエラーメッセージがましになることが期待できるってのはないですか?
普通の利用者は自分でコンセプトを定義しないっていう点では関係ないと言えるのかもしれないけど。



447 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 02:43:39 ]
D?
ああ、C++とJavaの悪い所取りした哀れな言語ね

448 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 03:01:47 ]
>>442
(現在STLやboostを利用するレベルの)通常のC++ユーザーにとっては、
・auto
・initializer_list
・新型for
・lambda
・template typedef
・nullptr
くらいは結構書く機会があるのでは?

あと、以前も出てましたが、template同様自分で書くことはなくても、
conceptに関してはユーザー全員が理解すべきものと思います。
個人的にはあとdecltypeとそれに伴う新たな関数宣言も。







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

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

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