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


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

C++相談室 part111



1 名前:デフォルトの名無しさん mailto:sage [2014/02/28(金) 07:24:44.31 .net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part110
toro.2ch.net/test/read.cgi/tech/1389620885/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.89【環境依存OK】
toro.2ch.net/test/read.cgi/tech/1390171944/

次期規格C++1yはこちら
C++14/C++1y
toro.2ch.net/test/read.cgi/tech/1382889622/

■長いソースを貼るときはここへ。■
 codepad.org/
 ideone.com/

【重要】
hogeは禁止です。使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。

577 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:45:44.36 ID:2PivH6Yv.net]
>>571

関連はしらなくていいのでは。

mDev に書き込み動作をしたとき、

mCopy の同じ構造体のメンバーに同じ値を書き込む動作ができればいいのです。

drv.mDev.a = 1;
drv.mCopy.a = 1;

という動作を使う側では意識せずに行いたいのです。

578 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:47:36.89 ID:pgTJKr0l.net]
>>573
もうお前何回答してあげてもわかんねーじゃん
基礎も出来ていないクズ野郎はいらねーんだよ
老害も初心者糞は帰れウンコ

579 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:53:06.28 ID:pgTJKr0l.net]
なんかもういろいろと終わってるなC++スレは
永遠とあれこれ教えて言う初心者とゴミ知識だけで回答し続けてる馬鹿がセットになってスレをぐちゃぐちゃにしてるね
これが今のC++プログラマの実態、オワコンなんだからスレを削除してもらいたいね

580 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:54:21.61 ID:iJ8f7/A6.net]
mDevの内部変数にいちいち=オーバロードを設定する!
だめ…だよね

581 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:55:12.85 ID:7IZ0+CWg.net]
>>573
なにを縛りプレイしてるのかよくわからんけど
aをprivateにする
Hoge::operator=(int)を実装する
(無論静的参照などなんらか渡せる方法を使って)

582 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:55:57.79 ID:2PivH6Yv.net]
>>576
だめ。。。ではないかもしれません。


テンプレート使って書けばそんなにめんどうじゃないかも?

583 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 00:58:09.27 ID:2PivH6Yv.net]
>>577
= をオーバーロードするというのがポイントですよね。
なんかできそうです。ありがとうございます。

584 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 01:01:28.63 ID:pgTJKr0l.net]
しかも面倒な横槍がたくさん飛んできたよ
初心者は大喜び?でも全部ガセレビューでしたー
お前らはム板の癌だから消えてほしいね

585 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 01:04:40.96 ID:pgTJKr0l.net]
=演算子のオーバーロード?
そんなくだらないオナニー仕様を使ってるからJavaとかに負けるんだよな
C++老害プログラマは、
C++のオナニー仕様をふんだんに用いたプログラミングをする老害プログラマ
仕事ではまったくつかえねー(笑)、そしてほんとにC++で組む仕事がなくなったかつての奴隷たちw



586 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 01:38:37.95 ID:pgTJKr0l.net]
ID:2PivH6Yv が何回も質問を繰り返すのは当人が無知識だからだけど
それを汲み取らず自己顕示欲回答している馬鹿も同等に無知識さをさらけ出していると思うね

587 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 08:32:50.80 ID:RggTLHs+.net]
>>562
せっかくDrvってクラス作ってるならもっと高レベルのインターフェースを提供するべきなのでは?
たとえば drv.mDev.a = 1 っていう書き込みアクセスが何を意味するのかという観点で。

っていうかメモリマップトI/Oみたいなんだけど、 mDevは volatile じゃないとダメなんじゃないの?
実アクセスタイミングがコンパイラ任せでいいの?
(ビットフィールドも混ざってさらにヤバいことになってそうな・・・)

588 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 08:42:55.30 ID:pgTJKr0l.net]
>>583みたいに
C++関係のスレの平日朝昼間の書き込み数は異常
今は亡き一線を退いたドカたおっさんなんだろうけね
過去の栄光を忘れられずに、2chで知識自慢する毎日ですか
初心者がこのスレ着ても古い知識を叩きこまれるだけの何の益もないゴミスレ

589 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 19:59:44.96 ID:rI98nwOJ.net]
ID:pgTJKr0l はこのスレのエースだな。すばらしい奴
これからもC/C++系スレではげしく活躍してスレ盛り上げて!

590 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 21:12:38.45 ID:P8u0Q61P.net]
おぺらとr=のオーバーロードで普通の代入とは違ったことやると罪悪感が半端ない
そんときゃ必要だったんだけどね

591 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 21:23:05.03 ID:pgTJKr0l.net]
そこで反省しないのがC++老害
少しまともな人はJavaとかに流れちゃったね
結局はドカタ用言語だったが

592 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 21:59:05.19 ID:P8u0Q61P.net]
反省か・・・
おまえ、物事を表面的に見て判断する方だな。
friend とか「オブジェクト指向的に見てありえましぇーん!」なんて思ってるだろ?

593 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 22:03:57.94 ID:pgTJKr0l.net]
C++の余計な仕様を高等なものだと勘違いして可読性の悪いコードをかくのがC++老害

594 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:13:48.16 ID:shI/dS9I.net]
C++ が理解できなくて、コード読めないだけなのに、人のせいにするアホがいるな

595 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:19:07.72 ID:pgTJKr0l.net]
演算子オーバロードとか多重継承とか「おまけ」的要素でしかない仕様をかっこいいと勘違いして
無駄に実装に時間をかけているのがC++老害、集団開発ではまったく迷惑な存在でしかないね
Javaに進化する過程でなぜカットされたのか考えたこともないのか



596 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:26:35.17 ID:9Gr404VQ.net]
おまえはうざいけど、演算子オーバーロードは確かに不要だ
コピー、追加、比較だとかの概念をオーバーロードできればいいだけの話

597 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:38:39.53 ID:P8u0Q61P.net]
加法をオーバーロードする時にどうして演算子を避けなきゃいけないのだ?

598 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:40:02.34 ID:pvWJb0hH.net]
>>591
そのとおり。お前は優秀なプログラマだな。ドカタとは違うな。
いまのC++はゆとりと老害用になっている
C++って言語に自己陶酔している奴(=ほとんどドカタ)が多い

599 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:45:30.00 ID:oQeb6ZBL.net]
透明あぼーんしてたから気づかなかったが。たまにはちゃんとした事も言うのな。

600 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:59:12.68 ID:P8u0Q61P.net]
加法を実装すんのに add メソッド使うの?
スマートポインタ実装するのに dereference メソッド使うの?

601 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:08:04.41 ID:noBkfRX0.net]
これが老害C++グラマーな
くだらないことをいつまでも考える

602 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:09:32.24 ID:ANBdGt0P.net]
あんたら,線形代数のライブラリ使ったことないの?
Java用ライブラリのColtのget(),set(),multi()なんて見てて吐き気するよ
今後はスマホとかウェアラブルなデバイスが増え続けること考えたら、
Javaよりかもc++に期待した方が良い気がするんだけども
Qtやllvm、Oracle Javaのライセンス問題、PHPやJavascriptとの競合、
frameworkの乱立と衰退、Excelのクラウド化…。Java技術者たちから

603 名前:臭がしてこない? []
[ここ壊れてます]

604 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:12:36.73 ID:nBst4kyV.net]
>>592
行列演算が恐ろしく面倒になるから演算子オーバーロードは必要
ただそれ以外では不要

605 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:13:14.73 ID:D+zU2rFS.net]
>>597
いいから>>596に答えてみろよ



606 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:35:22.49 ID:D+zU2rFS.net]
>>599
なんで行列だけなんだよ?
オレも日付や時刻の加算/減算に演算子オーバーロードは使わないと思う。
だけど代数型や多項式とかには演算子オーバーロードを使わないわけにはいかないね。

607 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:36:52.52 ID:3L52S14p.net]
線形代数的に意味がほぼ通じるものは演算子オーバーロードするよね
行列同士の掛け算で全成分の積を取るパターンはほぼ無いだろうし

608 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:48:28.36 ID:DnuIm7OC.net]
表面的な要素だけみて、オーバーロードは害みたいに言ってるやつが一番の害悪だな

609 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:51:24.01 ID:ZV/pmEGQ.net]
>>599
実際は>>579みたいに色々なところで(こんなことに使うのかよってところで)
ほいほい使っているのがC++erなんだよ。それがC++脳だからしょうがないけど

610 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:58:12.81 ID:LaZMrYoS.net]
iostreamは絶対許さない

611 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:01:40.85 ID:jQYIhnNX.net]
iostreamの書式指定manipulatorを昨日知った情弱なんですけど、
複数のmanipulatorを一気に指定するようなカスタムmanipulatorって作れます?

612 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:02:53.00 ID:u6l/MQho.net]
作れる

613 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:03:28.17 ID:ZV/pmEGQ.net]
<<は演算子オーバーロードは本当に良い見本だよな
これがC++のもっとも美しい演算子オーバーロード仕方! C++erは激見習えだな

614 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:05:04.86 ID:jQYIhnNX.net]
>>607
どうググったら出てきますかね?

615 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:07:04.48 ID:ZV/pmEGQ.net]
>>609
ゆとり丸出しすぎ....



616 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:13:10.15 ID:Syyy8FrT.net]
setfで一気に指定できる

617 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:13:34.20 ID:noBkfRX0.net]
ID:jQYIhnNX
↑言ってるそばからこれだ
この厚顔無恥っぷりはどこから湧き出てくるものなの

618 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:17:12.00 ID:jQYIhnNX.net]
あらたにclassをつくって演算子オーバーロードするしかないってことですか?

619 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 01:50:31.00 ID:QOw6XajR.net]
>>613
>>611を見よ

620 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 02:11:47.12 ID:jQYIhnNX.net]
中で()が呼びだされてるんですね。なんかとんちんかんなこと言ってすみませんでした。

621 名前:デフォルトの名無しさん [2014/03/20(木) 03:00:55.73 ID:osw/wSfl.net]
Javaが進化だとか言ってる超絶低脳を相手にしてお前ら楽しいのか?

622 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 04:57:52.36 ID:LaZMrYoS.net]
ハゲは楽観的みたいだけどC++14が広まるか広まらないかあたりで波乱が起きる気はする
そろそろ仕様が複雑怪奇になりすぎている

623 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 07:20:20.65 ID:pzS+GhKP.net]
11はそこそこ広まってるしその完成系として14は定着するだろう
だがC11は世界からスルーされた

624 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 07:56:45.16 ID:YH9920Dc.net]
>>616
誰かが構うことで彼の投稿数が増えるから、それにより彼を早期に見つけて以後無視しやすくなる

625 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 08:10:24.05 ID:3L52S14p.net]
無視をするために呼び出すという矛盾



626 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 09:18:04.07 ID:noBkfRX0.net]
C++老害はC++はすべての言語の頂点に君臨するとか言ってるから
嫌われるんだよ、古いものに執着しているから社会から取り残された

627 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 16:17:05.57 ID:h2j95EzZ.net]
std::shared_ptrが生のポインタと比較できないのは何か設計上の理由があるの?

628 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 16:35:28.24 ID:T0Lk0yrB.net]
生ポインタと比較する必要が出るならお前の設計が間違ってる

629 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 18:01:18.33 ID:3T74HD48.net]
visual studio express 2013 のC++とSQLサーバーで名簿管理の
データベースのアプリケーションを作りたいので、
先ずC++の勉強したいのですが、
良い入門書を紹介して頂けませんか?

当方、カーニンハムとリッチーの頃の古いCとかアセンブラ迄で
ANSI Cも使った事がありません。

取り敢えずWindowsのATL,MFC,.netは抜きで構いません。
C++の言語仕様を勉強できる物がありがたいです。

630 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 18:05:39.06 ID:NKgkq3Ob.net]
ブライアン・カーニハン (Brian W. Kernighan) 「…カーニンハム?」

631 名前:デフォルトの名無しさん [2014/03/20(木) 18:06:20.75 ID:KPQ9mL+I.net]
一度にすべて覚える必要はなく、使う部分だけ使えればいい。
作りたいのを中心にネット調べたら十分では。
DBはSQLite3をすすめる。

632 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 18:14:51.79 ID:3T74HD48.net]
>>625
おっと間違えました。ありがd。

>>626
ご教示ありがとうございます。webを回ってみます。

633 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 18:30:07.45 ID:noBkfRX0.net]
>>627
みたいなゴミは来なくていいです
ていうか氏ね

634 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 19:33:56.33 ID:k2Bce3DC.net]
>>624
C++でやんのかよ
C#かC++/CLI+LINQtoSQLでやれば楽なのに

635 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 19:37:17.18 ID:pzS+GhKP.net]
>>624
データベースアプリケーションを作りたいのに
C++をまず選ぶという選択が間違っている



636 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 19:41:01.19 ID:SubRWbqs.net]
データベースアプリケーションつっても、
結局はDBIをチロっと操作するだけっしょ。
ちょろちょろっと画面用意してあとはSQLでラクできるっしょ。
DBMSをつくれってんじゃあるまいし。

637 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 19:44:05.94 ID:J5FbOp5c.net]
すべてのことに最適なのがC++ってなっている
これが日本のIT系おっさんのスタンダード脳

638 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 19:52:31.32 ID:LaZMrYoS.net]
まずデータベースアプリケーションを作るな
AccessなりOpenOfficeBaseなり使っとけって話

639 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 20:21:51.88 ID:3T74HD48.net]
>>629-633
30年前にPC-DOSとturbo pascalで作って、
15年前にDelphi pro+Paradoxのエンジンで書き直し、
10年位前にDelphi 7 studioに書き直したのですが、
全面的な見直しが必要になって、
データベースエンジンや開発ツールも見直しました。
Borlandの体制が不安でMSに乗り換える事にしました。

Paradoxだけでは出来なかったのですが、
Accessだけで出来れば楽です。検討してみます。
C#は思い浮かびもしませんでした。
Delphi 7 proでもSQLアクセス出来るのですが、
サポート切れてるし、Borland RAD studio XE かと言えば、
Borlandは色々あって苦労したので避けたいのです。

640 名前:デフォルトの名無しさん [2014/03/20(木) 20:27:38.41 ID:KPQ9mL+I.net]
SQLアクセスだけが目的なら、スクリプト言語でいいだろ。
そっちのほうが簡単。

641 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 20:38:52.54 ID:k2Bce3DC.net]
実際LINQtoSQLは標準化するかもな
Java8が出てStreamが入ったろ?あれLINQそのものじゃん
これ以上はスレチになるのでそちらのスレで

642 名前:デフォルトの名無しさん [2014/03/20(木) 20:51:45.19 ID:KPQ9mL+I.net]
LINQってのは廃れてないか。
実装が言語ごと適当っぽいしあえて覚える必要もない気がする。

643 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 21:01:42.61 ID:noBkfRX0.net]
>>637
廃れてんのはお前のC++老害脳のほうだろ
嘘自慢してる暇があるならハローワークでも行けよキモオタおっさん

644 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 21:14:41.05 ID:LaZMrYoS.net]
LINQってどう読めばいいの?リンキュ?

645 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 21:21:10.31 ID:h2j95EzZ.net]
>>623
その間違ってる理由を聞きたかったんですが・・・



646 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 21:30:58.07 ID:6L5AUNZs.net]
生ぽとすまぽを比較しているから間違っているんだろ。

647 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 21:34:45.84 ID:LaZMrYoS.net]
>>640
なんでget()と比較するので満足できないの?

648 名前:デフォルトの名無しさん [2014/03/20(木) 21:43:09.95 ID:yYFRoYiJ.net]
禿が理屈っぽくで、C++の仕様が複雑になりすぎた。

で、〜の問題があるからこうこういう仕様にしたと言うともっとも
らしいが、結局は泥縄をこねる対処療法。

C++14では、テンプレート関係の仕様をもっと整理してほしい。
それとマルチスレッド、並列処理が簡単にできるようにしてほしい。

649 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 21:50:22.31 ID:k2Bce3DC.net]
>>637
強いて言えばEntity Frameworkに吸収される方向だけどまだLINQtoSQLの方が
使いやすいという面が強い
Entity Frameworkはもう少し洗練されないと駄目だろ

650 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 22:11:39.96 ID:t5turWoL.net]
>>640
やろうとしてる理由説明した方がいいよ。

「そんな事やる必要なんか普通はないから、お前が間違えてる」
って言われてるんだし。

あ、おれも当然ねーよって思ってるし。

651 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 22:37:32.31 ID:noBkfRX0.net]
お前がC++を使おうとしている理由が解らない
馬鹿には敷居が高すぎる言語ってわからない?
さもわかったようなコードを書くんじゃねえよ
だからC++erはゴミなんだよ、いいからJavaでもやってろよ
ほんとくっせえな

652 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 22:40:50.39 ID:VWEFswRv.net]
どこが敷居高いんだよ

653 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 22:41:20.82 ID:D+zU2rFS.net]
叩き方がどうも古い。
10年以上前Javaが盛り上がっていたころのにおいがする。
ネタも演算子オーバロードとか多重継承とか、今さらそんなものをって感じだし。

654 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 22:44:04.04 ID:KF1P5NVr.net]
ここでは老害厨
ttp://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html

655 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 22:47:39.23 ID:jQYIhnNX.net]
ID導入されてよかったですねえ



656 名前:デフォルトの名無しさん [2014/03/20(木) 22:51:22.81 ID:yYFRoYiJ.net]
>>646

こいつ大丈夫?
頭いかれてるんとちゃうん

657 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 23:08:17.90 ID:ft4+yp6N.net]
低脳は使ってはいけないC++なのに、低脳が当たり前のドカタがC++を使うのが日本なんだ
そんな奴が年取ると必死に老害拡散することになるよね

658 名前:デフォルトの名無しさん [2014/03/20(木) 23:12:32.63 ID:yYFRoYiJ.net]
お前の方が老害だけど。お前、職場で嫌われてるだろ?

あ、それとも引き籠り?

659 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 23:39:47.49 ID:NSVGWwHD.net]
>>626
> DBはSQLite3をすすめる。

なんでそんなもん薦めるんだよ
今時 Express でもローカル DB のテーブルの作成とかデータの編集とかできるのに。

660 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 23:50:37.30 ID:noBkfRX0.net]
思考停止しかC++老害かもしれないレビューを真面目に受け取るのはやめていただきたい
スレの質問者がこういう悪い習慣を真似することになるから

661 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 00:15:42.28 ID:Z82+z0lX.net]
老害思考のC++マーは未だにK&Rを聖書扱いして読まない理解できない人間を軽蔑してくるから嫌われるんだよ
古臭いポインタ操作を絶対的な高等テクニックみたいに位置づけて初心者に洗脳を試みるから本当に気持ちわるいーい

662 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 00:31:21.70 ID:vElMUroR.net]
c++だよね…?

663 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 00:34:13.93 ID:Q1MWJOU4.net]
そして老害C++屋はhogeが大好きなのですよ

664 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 00:34:26.96 ID:52hUyAFL.net]
普通 ストロヴストルップ

665 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 00:37:05.63 ID:pwhiTz9X.net]
>>656
当たり前である
Java土方やVB厨ならともかく、C++を使おうって奴がK&Rを理解できないなんて問題外である
古臭いポインタ操作は高等テクニックではなくて基礎知識である



666 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 01:05:35.88 ID:Z82+z0lX.net]
C++オワコン言語を全世界で使用不可にすべき

667 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 03:22:19.20 ID:RrNiHJYA.net]
だからって while (*s++ = *t++) ; なんてコードを知る必要は無い

668 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 03:30:51.68 ID:niIjRGJj.net]
あー…nul終端コピーか。面白いな
有名なの?

669 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 03:37:16.86 ID:obkTEIml.net]
MSのサイトを見てもVisual Studio 20003 アップグレード版の
要件が書いてないのですが、Microsoft C Version5.0から
アップグレード出来るのでしょうか?

670 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 03:38:44.30 ID:obkTEIml.net]
>>664
すみません。板を間違えました。

671 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 04:47:18.20 ID:fnSpmLK0.net]
C++はSTLなきゃ皆C#に行くよ

672 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 05:01:25.19 ID:niIjRGJj.net]
STLのコンテナは名作

673 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 05:02:12.87 ID:jmMl2GRd.net]
コンテナはクソ。アルゴリズムはいい

674 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 07:00:45.11 ID:8JNZIgzw.net]
今時STL?
20世紀からタイムスリップでもしたのか

675 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 07:01:43.00 ID:4ybypDDu.net]
間もなくSTL議論が始まります
皆様は席についてお待ちください



676 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 07:33:51.69 ID:52hUyAFL.net]
car cdr ^ EQUIVALENCE 呼んだ〜

677 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 08:18:32.43 ID:hqXdKt0m.net]
>>670
議論の余地はないだろ
STLなんて十数年前のライブラリを使う奴は
このスレに来るべきではない

678 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 09:30:44.74 ID:xl4qUXQS.net]
安心しろ
もう誰も乗ってこない
秋田

679 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 14:03:52.97 ID:niIjRGJj.net]
十数年前なんてしらねえよ
どんだけおっさんばっかなんだこのスレ

680 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 15:41:18.00 ID:nQK3gNVS.net]
古きを知って新しきを知る

681 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 16:11:45.76 ID:aQAHkMot.net]
>>656 あのバイブルが理解できないやつはC自体触るなよ

682 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 17:33:57.60 ID:o/AML2E/.net]
ヒント: スレタイ

683 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 17:41:48.80 ID:Z82+z0lX.net]
また馬鹿が墓穴を掘った

684 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 20:45:39.09 ID:PuCTRIi5.net]
C++11で最強DB親和言語になったって言うのに。老害だめだな

685 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 20:58:19.84 ID:xl4qUXQS.net]
>>679
いまいち乗り切れない。
煽り言葉が「老害」しかないんじゃちょっと・・・
才能が無いのでは?



686 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 21:22:43.93 ID:PuCTRIi5.net]
>>680
だめか,orz。C++14には簡単に釣ることのできるアホがいたが
ここはこの程度じゃスルーなんだな

687 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 21:25:46.17 ID:Z82+z0lX.net]
フィッシングスレになったか
次の餌はなんだろう

688 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 22:21:29.33 ID:eDbXEgFM.net]
まさかお前が老害荒らしだったとはな。
クソコード連投だけじゃ気がすまなかったのか。

689 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 01:23:38.33 ID:wYAcoZCR.net]
あ?
お前ら constexpr の仕様とか分かってないだろにわか

690 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 01:38:06.38 ID:if6eO8D8.net]
こんすとえくすぱー

691 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 01:43:30.57 ID:+2B6OEdX.net]
コンストラクターでしょ?
constexprをコンストラクターと勘違いしている>>684ってなんなんだ

692 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:02:22.61 ID:6H5Lwf42.net]
ヘッダのクラス定義にコード書くアホがいるんだけど
どう言えば波立たせずにやめさせられるかな

693 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:07:05.26 ID:LwVxNWuC.net]
warota

694 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:07:52.18 ID:sd8rXCma.net]
>>687
24時間程説得してみたら?

695 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:10:40.44 ID:8g6oWFO6.net]
>>687
お前さんはなぜ「ヘッダのクラス定義にコード書く」のがダメだと思うんだ?



696 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:12:14.55 ID:XAzw8Srw.net]
>>687
コード書くのをやめさせるのか、仕事をやめさせるのかどっちだ

697 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:42:30.33 ID:Cwtmew+7.net]
>>687
お前テンプレート書いたことないのか

698 名前:デフォルトの名無しさん mailto:主観で「気に食わない」と表明しているだけ? [2014/03/23(日) 18:48:15.26 ID:qQgnZ21H.net]
テンプレートだけでは実体は吐かないからねえ

699 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:04:28.63 ID:D3tGTS8V.net]
>>687
メリットデメリットを話せば普通の人間なら聞くんじゃね

700 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:05:03.68 ID:OeBkoBxT.net]
>>687
酷いことをしているやつ居るんだな。
ドカタの俺の仕事奪うなって言え

701 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:28:43.47 ID:0loqh5rV.net]
>>687
これマジ?!ヘッダに比べてソースの実装が貧弱すぎるだろ…

702 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:42:27.77 ID:9EUDVluQ.net]
Javaとかやってると何の疑問もなくそうするだろう
コンパイルに30分以上かかるようになったら反省させればいいんじゃね

703 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 20:05:08.00 ID:8g6oWFO6.net]
>>696
ごめん。意味がよく解んないんだけど・・・

704 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 20:07:18.08 ID:FjLlR1KU.net]
>>698
>>696は透視能力者

705 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 20:38:15.08 ID:0loqh5rV.net]
>>698
ありがとナス!



706 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 20:42:01.99 ID:fNTjIHQL.net]
>>687
getter/setterとか簡易なコードならヘッダに書いちゃうがそうじゃないんだろうな…
JavaやC#の文化なのかね

707 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:28:29.19 ID:iN+OyuMJ.net]
ゴミはC++をいじるな
ゴミはC++をいじるな
ゴミはC++をいじるな
ゴミはC++をいじるな
ゴミはC++をいじるな
ゴミはC++をいじるな
ゴミはC++をいじるな

708 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:31:53.97 ID:EimEIz1g.net]
>>702
自分縛りをこんな所で宣言されても。。。。

709 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:32:53.21 ID:iN+OyuMJ.net]
スーパーゴミスレ

710 名前:デフォルトの名無しさん [2014/03/24(月) 01:33:05.31 ID:fM/serR6.net]
■ヘッダーに実装
・テンプレート
 ヘッダーに書かなくてもコンパイルが通るコンパイラ(sunの奴とかicc)もあるがg++とか通らないのもある、規格からしてもヘッダーに実装するのが正解
・inline関数
 ヘッダーに書くと確実にinline展開されるが、CPPファイルに書いた場合、何らかのコンパイルオプションをつけないとinline展開されないコンパイラが割りと多いので注意

■ヘッダーに実装する時もある(好みの問題)
・スーパークラス
 直接このクラスのメソッドを呼んでも意味がないことを明示するために、呼ばれてもエラーコードだけを返す実装にする場合

711 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:33:59.07 ID:iN+OyuMJ.net]
ゴミがC++をいじる資格はない
そのためにJavaがある

712 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:36:58.14 ID:iN+OyuMJ.net]
落ちこぼれはJavaに移行せよ
繰り返すJavaに移行せよ

713 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 03:10:13.09 ID:ffEU9HT/.net]
>>705
CPPファイルに書いた場合、普通はリンクするまで定義不明なんだから、
リンカでしかインライン展開出来ないし多いとか言うレベルじゃない気が

714 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 07:08:31.73 ID:IjL2tu0m.net]
cppに書くときってinline修飾つけても展開されないの?

715 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 07:25:59.50 ID:d0K1Urj7.net]
つーかむしろinline修飾ってヘッダーに実装書ける方の性質として見た方が便利だよね



716 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 08:14:45.51 ID:YntusNZD.net]
>>705
> ヘッダーに書くと確実にinline展開される
んなこたーない

> CPPファイルに書いた場合、何らかのコンパイルオプションをつけないとinline展開されない
ヘッダの宣言がinlineで使用時されてるコンパイル単位で定義が見えてなければエラー出るだろ。

717 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 08:20:55.26 ID:AA6gYOlg.net]
>>709
展開されるよ。
ファイル内でのみ使う関数でinlineとか、普通にやってる。

718 名前:デフォルトの名無しさん [2014/03/24(月) 08:59:48.28 ID:YCWGTqy5.net]
ヘッダに直接コード書く場合は static や inline なりの接頭語つけないと
同じ関数の参照が大量に衝突起こすから付けているんじゃないのか
インライン展開するかどうかはほとんどコンパイラ任せだし

719 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 09:53:32.72 ID:PXyEeIK6.net]
ヘッダにstaticって意味あんのか

720 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 10:09:41.33 ID:vUAKSIkw.net]
意味無くはないよ。
コンパイル単位ごとに複製されるから無駄だけど。

721 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 11:03:05.01 ID:ILjQ+S4K.net]
ヘッダとかCPPとかコンパイラが意識するわけないだろって
通りすがりのプリプロセッサさんがゆってた

722 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 18:11:04.33 ID:ffEU9HT/.net]
コンパイル単位跨いだインライン展開だのテンプレート展開だの、リンカさんに色々要求しすぎです!

723 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 18:34:18.58 ID:oYZZ1Y9Y.net]
今仕事で触ってるプログラム、
ヘッダにstaticで関数プロトタイプ書いてて同じ名前、内容の関数が2つずつある

724 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 18:58:26.72 ID:iN+OyuMJ.net]
ゴミのC++コードは凶悪、メモリを破壊する

725 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 19:04:21.04 ID:taZC4c0i.net]
>>719
よぉ、NPC。



726 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 19:19:51.85 ID:V15Zybb1.net]
Javaでmainに全部実装する馬鹿ってまだいるの?

727 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 19:28:02.43 ID:YMMJFWN3.net]
Cでmainに全部実装する馬鹿がいるのと同程度にはいるだろう

728 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 21:30:45.57 ID:XLLgQhJ0.net]
GNUって割とmain関数が重いから馬鹿だと思うわ

729 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 21:38:34.06 ID:bapb0GnL.net]
mainをmain_と改名すれば満足か?

730 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 21:39:04.68 ID:iN+OyuMJ.net]
>>723
って馬鹿だと思う、C++を知らないなら黙っていればいいのに
馬鹿は馬鹿をさらけ出す、ほんと出てるわ

731 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:15:47.96 ID:wiSeG6GG.net]
gccではinlineは仮に呼び出し元と同じファイルに記述しても展開されない。アセンブラ出せばすぐわかるっす
なぜかは知らん

732 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:19:05.08 ID:PXyEeIK6.net]
あくまで目印だからな

733 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:41:21.57 ID:iN+OyuMJ.net]
アセンブラ語りだす馬鹿発見
このスレのレベル低すぎて何も言えねえ

734 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:52:38.14 ID:ZHUWxekH.net]
>>728
勉強しろよ

735 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 23:10:28.74 ID:iN+OyuMJ.net]
ゴミは黙れ



736 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 23:18:20.46 ID:wiSeG6GG.net]
ググるとinlineはヘッダーに実装すると意図したように展開しくれるとの個人意見
www7b.biglobe.ne.jp/~robe/cpphtml/html02/cpp02008.html

ゴミでしたが勉強になりました!

737 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 23:22:40.62 ID:iN+OyuMJ.net]
結局ム板じゃなくていいじゃん
ほんと頭おかしいよお前
プログラミングなんか向いてない

738 名前:デフォルトの名無しさん [2014/03/24(月) 23:29:36.02 ID:BuXlcEMY.net]
でも機械語わからないやつはとんでもコード組んだりするよな

739 名前:デフォルトの名無しさん [2014/03/24(月) 23:59:39.67 ID:fM/serR6.net]
>>711
> > ヘッダーに書くと確実にinline展開される
> んなこたーない

この場合に展開されないコンパイラってなに?

740 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:14:12.52 ID:VoemgV7u.net]
世の中の全てのコンパイラー

741 名前:デフォルトの名無しさん [2014/03/25(火) 00:24:11.33 ID:6DffvK7o.net]
>>711
> ヘッダの宣言がinlineで使用時されてるコンパイル単位で定義が見えてなければエラー出るだろ。

コンパイルエラーの話はしていない
コンパイルできた時inline展開されているかされないかの話をしている
パフォーマンスを考えてinlineにするのに、展開されたり展開されないのでは困る
cppにinlineを実装する人は解って書いているわけじゃないんだろうなぁって思う

あとコンパイルオプション云々は撤回
インテルコンパイラで最適化オプション-O3でcppに書くとやっぱり展開されたりされなかったり…

742 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:25:16.35 ID:bvFcvrs8.net]
お前らのゴミコードはいらない
出ていけチョン国人

743 名前:デフォルトの名無しさん [2014/03/25(火) 00:30:13.11 ID:6DffvK7o.net]
>>735
ハイハイワロスワロス

744 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:32:14.05 ID:Eqzo8TtZ.net]
cppにinline実装はしないがinline関数を書くときはあるな

745 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:33:20.72 ID:bvFcvrs8.net]
>>739
だからお前のその欺瞞に満ちたレスがスレをゴミするんだろうが



746 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:36:16.15 ID:ZBltnWyU.net]
>>740
日本人のふりしなくていいんですよ?

747 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:48:23.02 ID:bvFcvrs8.net]
>>741
あ、お前チョン人か
ならお前の成すべきことは一つ、チョーセンウンコハントーに か え れ !

748 名前:デフォルトの名無しさん [2014/03/25(火) 00:49:57.06 ID:+8Thsnpr.net]
スルー検定開始

749 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:52:27.26 ID:rAz4buIA.net]
inlineはhoge同様に発狂キーワードだから禁止!

750 名前:デフォルトの名無しさん [2014/03/25(火) 00:52:57.24 ID:6DffvK7o.net]
>>687もそうだけど完全に理解していない人が実装にこだわり出すと
意味あってヘッダーに書いているコードをわざわざcppの方に移してくれたり
Cでも隠蔽するつもりで構造体をCファイルに宣言してるのにわざわざヘッダーに移してくれたり
それでろくなことが起こらない…

皆さん動いたからと安心しないで、もっとちゃんと勉強しましょう

751 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:53:23.09 ID:bvFcvrs8.net]
>>743
おめでとうございます
スルー検定2級不合格です!

752 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:03:50.65 ID:sCC7tw25.net]
>>736
何が何でもインライン展開したいなら__forceinlineや__attribute__((always_inline))をつければいい
よっぽどシビアでない限り実際に展開するかはコンパイラに判断を仰ぐべきだが

753 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:04:00.38 ID:PVErYtjz.net]
>>734
コンパイラがなにっていうか、関数がでかすぎるとかコンパイラ実装にとって何かしら都合が悪けりゃ
展開しないだろうし、インライン展開を抑止するコンパイルオプションだってあるだろうし。

754 名前:デフォルトの名無しさん [2014/03/25(火) 01:05:27.18 ID:6DffvK7o.net]
>>747
うちはヘッダーに書くんでいいです

755 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:06:44.12 ID:PVErYtjz.net]
>>736



756 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:07:26.99 ID:bvFcvrs8.net]
だからお前みたいなクズがC++を語っていいスレじゃねえんだよ
ゴミはゴミなりに本を読んでシコシコしてろよゴミC++マー

757 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:22:51.90 ID:0aw1H2YW.net]
>>736
再帰使われたら展開しようがないし、再帰は再帰でも末尾再帰なら展開されるかもしれないし、展開したらめちゃでかくなるので展開やめるかもしれないし
必ず展開してほしいなら inline assembler 使ってろよ。

758 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:25:09.34 ID:bvFcvrs8.net]
>>752
は再帰のできない出来そこないのエセプログラマー
質問者に嘘を教える最低の人間

759 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:26:18.57 ID:Hi7fuqGU.net]
>末尾再帰

末尾についてkwsk!

760 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:30:30.16 ID:bvFcvrs8.net]
また馬鹿が墓穴を掘った

761 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 02:39:19.20 ID:/N09nw1b.net]
>>752
jmpでまとめられる可能性は消えないけど、そこはdefineマクロでいいんじゃね?
>>754
末尾再帰がループに最適化される状況の場合、
ループ化されたコードがインライン展開される可能性を言ってるんじゃない?

762 名前:デフォルトの名無しさん [2014/03/25(火) 03:03:21.00 ID:6DffvK7o.net]
inlineをcppに書くとか言ってるバカを産んだクズ母親は産む前におろすかどうかよく考えてほしかった

763 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 07:17:51.54 ID:fi2ZaDIT.net]
>>757
おっと勇み足

764 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 07:18:57.09 ID:Xzsx0aVO.net]
リンカさえ頑張ってくれれば別の言語でかかれててもインラインに出来るし

765 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 07:41:34.25 ID:RtgkM+Fr.net]
>>756
今時 define なんか奨めるなよ...



766 名前:デフォルトの名無しさん [2014/03/25(火) 08:03:36.81 ID:+8Thsnpr.net]
リンカは関係ないんでね?
a.hに関数宣言、a.cppにinline関数を記述、a.hをインクルードしたb.cppからその関数をコールしている場合って
b.cppコンパイルしている時はa.hの宣言しか見えてないから、inline展開する可能性すらないと思うんだよね
とっても高級なコンパイラーさんだとちゃんとやるのもあるのかもしれないけど

767 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 09:27:39.61 ID:cGvrEDGu.net]
>>761
今時のリンカはリンク時にインライン展開やVTABLEの解決を行うよ。

768 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 10:59:44.80 ID:1OTJ8TFG.net]
検察が有罪にする自信があるなら、とっくに釈放してた。
ゆうちゃんの反撃の機会を出来るだけ奪っておかないと勝てそうも無いと考えている。
もう検察は詰んだ。

769 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 11:02:33.80 ID:1OTJ8TFG.net]
誤爆です、すみません

770 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 11:48:24.33 ID:JLDIFaf/.net]
いやそこはコンピュータをのっとられて勝手に書き込んでしまいました
というべき

771 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 12:02:56.21 ID:sCC7tw25.net]
C++は使えるがC#は使えません

772 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 12:46:48.73 ID:trPB7Xb2.net]
私はVBしか使えません 塀えもん

773 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 12:49:22.64 ID:bvFcvrs8.net]
ゴミはC++を使えない

774 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 13:12:17.25 ID:PVErYtjz.net]
>>736,761
(>750 で書き込んだつもりになってて書けてなかった)
7.1.2 [dcl.fct.spec] p4
"An inline function shall be defined in every translation unit in which it is odr-used ..."
っていうことになってるんだよ。これに従えば「コンパイルできたとき〜」とか「リンカが〜」とかそもそも
考える余地が無い。

・・・どういうわけか gcc も clang も警告が出るだけでエラーにはしないみたいだけど。
なんか読み違えてるのかな?

775 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 13:41:06.02 ID:cGvrEDGu.net]
>>769
規格上はそこに書いてある通りで「インライン関数は、それが使われるすべての翻訳単位で、
かつ一字一句同じに定義されなければならない」ので、インライン関数の定義を.cppに書くなら
その関数を使う.cpp全部に書かないと、厳密に言えば規格違反。

もっとも現実問題としては、非インライン関数として扱えばコンパイルはできるし、リンク時に
インライン展開することも出来るから、大した問題じゃないよね。



776 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 17:57:02.60 ID:C5vqFeWi.net]
shallなんて所詮努力目標

777 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 18:20:39.65 ID:1coUayuU.net]
むしろshallは死語

778 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 19:19:27.69 ID:mtUgnBBf.net]
>>769
shallなのか
shallでも警告で済ませるって低脳C++erが多すぎてエラーにはできないんだろう

>>770
低脳C++erは非インライン関数になっても動けば良いんだで終わりだろうし

779 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 19:35:38.81 ID:3xpnko1c.net]
>>772
代わりはなに?

780 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 20:53:26.52 ID:JLDIFaf/.net]
shnone

781 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 02:28:32.59 ID:VUuUSoQL.net]
まとめると、inline はヘッダに書けよ、糞共!ですね

782 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 02:38:05.96 ID:+MovJmZj.net]
コンパイル単位に閉じた些細なマクロ程度は
static inlineで代用することをお許しください

783 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 03:38:14.96 ID:QrlG1cP3.net]
>>777
それstaticもinlineもつける必要ないだろ。

784 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 07:00:24.10 ID:BPRBwKR1.net]
よっぽどマクロ好きなんだな

785 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 07:34:26.47 ID:40e4BIeF.net]
>>778=バカ
シンボルが他の翻訳単位に漏れても気にしないらしい



786 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 07:36:46.19 ID:QrlG1cP3.net]
>>780
いや、ファイルローカルな名前なら無名名前空間に入れるよ。

787 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 07:41:04.76 ID:5Z0iw9O8.net]
>>780
その方法は、次のC++(本来はC++11)から非推奨です

788 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 08:38:01.10 ID:K+udxXcM.net]
無名名前空間とinline良く使う

789 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 08:52:55.41 ID:4JZv+4Js.net]
どう翻訳されるかどう翻訳されたかわからない人はインラインはただ関数の頭に書いているだけになるのね

790 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 21:30:01.10 ID:5AgnDT0q.net]
>>747
それをつけたとしても必ずinline化されるわけではない

791 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 02:13:45.44 ID:s0Hyzeif.net]
>>785
define最強やな!
機械語になった時に括り出されてjmp先な関数モドキになる可能性は消えないけど、
少なくともプリプロセッサ抜けた段階ではインライン展開されているのがほぼ確実や!

792 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 10:09:23.86 ID:yKWg+dVB.net]
そもそもinlineの議論をしている筈なのに、
関数の実体を作りつつも別途inline展開できる可能性に触れていない辺りお郷が知れている。

793 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 12:09:04.74 ID:oKJ8dIwZ.net]
>>787
> 関数の実体を作りつつも別途inline展開できる可能性

最近知ったのか?
その方向の話になってないから、誰も触れてないだけかと。

794 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 13:48:00.57 ID:qd9OiQZO.net]
リンク時のインライン展開に触れてる人もたくさんいるけども

795 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 16:08:31.30 ID:4HvGfxKh.net]
vc2013はリンクの最中にclが走ることがあるな
コンパイラのエラーが出て驚いた



796 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 18:22:03.52 ID:rDeXrVt7.net]
ヘッダにコード書かなければなんでもいいよ

797 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 18:46:22.36 ID:iV1oOl59.net]
>>791
なんか問題あるの?

798 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 21:19:57.03 ID:XUtydu4b.net]
>>789
それがなにか?

799 名前:デフォルトの名無しさん [2014/03/27(木) 22:50:57.72 ID:HnupLlaF.net]
>>791
もしやテンプレート知らない人?

800 名前:デフォルトの名無しさん [2014/03/27(木) 23:23:03.72 ID:wMybxixl.net]
またそこに戻るんかいw

801 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 23:26:18.42 ID:wG7r5lAh.net]
ヘッダに書いた関数テンプレート、
ずっとinline付けずにいた。
素で忘れてたぜ。
・・・放っとこう

802 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 23:54:36.72 ID:qd9OiQZO.net]
ヘッダに定義を書いていいもの = 定義が複数存在してもよいもの = One Definition Ruleの例外は
言語仕様3.2.5で規定されているので各自規格書で熟知すべし。

具体的には、クラス型、列挙型、外部リンケージのインライン関数、クラステンプレート、
静的でない関数テンプレート、クラステンプレートの静的データメンバ、テンプレート引数の一部が
未定のテンプレート特殊化、がそれにあたる。

803 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 00:29:27.89 ID:7ZcWId+X.net]
だれも、規格で認められているかどうかの話をしているわけじゃねぇだろう。

804 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 00:36:24.93 ID:3sLtcVZJ.net]
あれこれ脱線してたけど、発端は>>687だったんだよな。
こいつがヘッダにコードを書いてはいけない理由を言わずにフェードアウトしたから
論点があやふやなまま盛り上がってしまった。

805 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 00:44:14.23 ID:bndx9KDY.net]
>>796
関数テンプレートの半分に inline を付け、残りの半分には付けずに
どうなるか観察するんだ。



806 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 00:57:01.43 ID:afXKJyWJ.net]
struct test {

};

cout <<

807 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 00:58:37.27 ID:afXKJyWJ.net]
struct test {
int a;
};

test t;

cout << t.a;

printf("%d\n",t.a);


このときオペレータってそれぞれなにが使われるんでしょうか?

t.a の値を得る処理にってことです。

808 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:05:51.26 ID:n4ZQH/GV.net]
>>687はc++初心者

809 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:36:21.34 ID:f7DW739E.net]
>>797
ヘッダーはコンパイラーが提供するもので
プログラマーが書くものではないのだけれど
そこんとこOK?

810 名前:デフォルトの名無しさん [2014/03/28(金) 01:38:42.05 ID:eWCuk+g8.net]
>>804
え?
どこがOKって?

811 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:41:30.74 ID:3sLtcVZJ.net]
お前は何を言っているんだ

812 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:42:24.50 ID:zzqObK8g.net]
どこから突っ込むべきなんだこれは

813 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:44:21.20 ID:6NuEA+Qf.net]
突っ込むのもアホらしいから(・∀・)ニヤニヤして放置しとこうぜ。
この板には必死で背伸びしてカキコしてる雑魚が確認されてる。

814 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:44:57.80 ID:IWvgfppL.net]
>>802
ドットオペレータ(ドット演算子)

815 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:51:22.27 ID:f7DW739E.net]
>>805
書いたとおりなのだけれど
日本語が読めない?



816 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 01:55:19.17 ID:iffS8S5F.net]
コンパイラメーカーが提供するインクルードファイルのことをヘッダーって言いたいのかな?

817 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 02:10:57.21 ID:f7DW739E.net]
何故ここでファイルが出てくるのかわからないけど
ISO/IEC 14882:2011の16.2章で出てくるヘッダー以外ありえんでしょう

818 名前:デフォルトの名無しさん [2014/03/28(金) 02:44:23.95 ID:calBLgbH.net]
>>804
嘘つき

819 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 02:55:01.76 ID:iffS8S5F.net]
何かとても違和感を感じる日本語だ

820 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 04:15:01.77 ID:tz1oDrc8.net]
嘘つき(震え声)

821 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 07:11:23.51 ID:bndx9KDY.net]
>>804
どうでもいいけどこのスレ(前だか前々だか)で2度目だよ
そこんとこOK?

822 名前:デフォルトの名無しさん [2014/03/28(金) 08:18:34.16 ID:n4ZQH/GV.net]
まとめ
ヘッダーにコードを書く奴をクビにしていいか?
→それだけの情報だけじゃわからないし、あんたC++知ってる?

インラインはヘッダーに書くのが正しい?
→意図的に展開を望むならヘッダーに書け、ソースに書いてリンカに任せる奴は3流

でオッケー?

823 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 08:22:21.13 ID:ChGgRCpU.net]
まとめサイトの人でおk(笑)

824 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 08:23:03.82 ID:3sLtcVZJ.net]
> 意図的に展開を望むならヘッダーに書け

またそこに戻るの? C++に関数を確実にインライン展開する方法なんかないんだってば。

825 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 10:04:49.02 ID:j2aynJgg.net]
マクロで書いちゃえば確実に展開されそうだが、
もはやC++関係無い気がしてきた



826 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 10:54:55.55 ID:CLpXvs9U.net]
インラインアセンブラをマクロ定義すれば。w

827 名前:デフォルトの名無しさん [2014/03/28(金) 12:13:00.28 ID:2xoz0m2D.net]
>>819
実際やってみれば?gccはなるよ
ただ規格云々じゃなく一部に通用する技だとは思う

828 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 12:37:10.86 ID:3sLtcVZJ.net]
>>822
まあ環境を限定すればそれぞれにノウハウはあるだろうね。

829 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 16:39:02.96 ID:KxTxPlps.net]
>>823
移植性を低下させるバッドノウハウだね

830 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 16:46:07.33 ID:zzqObK8g.net]
最適化なんて割とそういうもん

831 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 17:19:59.79 ID:konPatBX.net]
ポータビリティという名のバッドノウハウ

832 名前:デフォルトの名無しさん [2014/03/28(金) 21:04:39.83 ID:n4ZQH/GV.net]
ヘッダーにコード書いてエラーになるコンパイラーなんて見たことないので移植性が低下するっつうのは嘘

833 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 21:11:34.54 ID:1ftEUC5z.net]
インライン展開してほしい→ヘッダーにコードって発想ぶっとんでるな

834 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 22:06:39.76 ID:bndx9KDY.net]
>>819
「望む」って日本語のニュアンス次第じゃね?

835 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 23:10:07.20 ID:WinGstvT.net]
>>827
コンパイルエラーにならなきゃいいのか (w



836 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 23:11:29.84 ID:R2vi+E3z.net]
inline付けとけば平気アル

837 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 23:17:12.63 ID:nIGZYB8c.net]
inlin

838 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 00:45:20.88 ID:+tSITK56.net]
inlineって卑猥すぎ。使うなよ

839 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 00:58:19.51 ID:ukiMHmOI.net]
joytoy に変えるか

840 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 00:59:16.18 ID:ukiMHmOI.net]
#define joytoy inline

841 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 08:19:52.66 ID:1B2wagA9.net]
ストリングテーブルを2分木で管理して高速検索できるようにして
かつ、インデックスで即時参照できるようなクラスは作れないでしょうか
map<string, int>だとインデックス検索に時間がかかるし
vector<string>だと検索に時間がかかる
データを2つ用意するのがベストでしょうか

842 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 08:30:01.43 ID:9XRu23e9.net]
インデックスじゃないとダメなのか
ポインタならすぐに参照先が見れるぞ

843 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 10:17:04.73 ID:lTQLq19d.net]
>>836
自作するなら、P-Tree (Trie) とかあるけど
とりあえず unordered_map を加えて時間比較してみたらどうだろう

844 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 10:47:41.14 ID:kK1JTf3+.net]
Boost.MultiIndexContainer

845 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 11:03:11.34 ID:2SiNGRJb.net]
2分木で管理されたらそれはインデックスそのものだと思うのだが「かつ」って何だ?
mapだと検索に時間がかかるという意味が分からない。
mapの複雑さは対数でしょ?



846 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 11:15:42.10 ID:kK1JTf3+.net]
mapのキー以外にも整数インデックスでアクセスできるようにしたいんでそ

847 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 11:34:09.27 ID:2SiNGRJb.net]
ああ、索引のインデックスでなくて
配列のインデックスという意味か

848 名前:836 mailto:sage [2014/03/29(土) 11:49:07.41 ID:1B2wagA9.net]
人工知能もどきを作るのに
ストリングテーブルを作って、その整数インデックスだけで
データを管理したいと考えてたのですが
既登録の単語を検索するときはmapの方が速くて
整数インデックスから文字を見つけるときはvectorが速いので
両方の良さを併せ持つクラスを作れないかと悩んでました
vector<string *>とmap<string, int>の合わせ技と
Boost.Multi_Index_Container試してみます
ありがとうございました

849 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 11:54:55.97 ID:kK1JTf3+.net]
Boost.MultiIndexContainerはテンプレートバリバリに使っていてエラーメッセージが長くなって分かりづらくなることもあるから注意
その使い方ならこのページの「挿入順を知っているstd::set」が近そう
https://sites.google.com/site/boostjp/tips/multi_index

850 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 11:56:54.59 ID:8LVPedzS.net]
>>836
データの件数や更新頻度による。
文字列テーブルの要素数はどれくらいなのか、更新頻度はどれくらいなのかがわからないと答えようがない。

851 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 11:58:46.13 ID:p6y4pL3O.net]
つ libstree

852 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 12:06:01.03 ID:5Prxf0C5.net]
そもそも本当に配列インデックスアクセスが必要なのかねぇ。
修正したらインデックスはずれるし
修正しないんならインデックス値の代わりに
ポインター値もっときゃいいんではないかと。
インデックスの大小比較が必要なケースなんだろうか

853 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 12:07:20.55 ID:WP/G2Jdd.net]
答えようが無いって回答が一番アホ
無理して答えなくていいよ

854 名前:デフォルトの名無しさん [2014/03/29(土) 12:32:50.14 ID:1B7gf6oU.net]
答えようがないから、相談内容に指摘を入れることを理解できない馬鹿や
インラインをヘッダーに書く意味をできない馬鹿がこのスレ多すぎますよ
妄想で物事はか語らずちゃんと勉強して理解した上で語りましょう

855 名前:デフォルトの名無しさん mailto:主観で「気に食わない」と表明しているだけ? [2014/03/29(土) 12:44:59.06 ID:T0jzXlJE.net]
QZ がよくやる円状学習ってやつでは?
生暖かいめでツッコミまくるのがいいでしょう



856 名前:デフォルトの名無しさん [2014/03/29(土) 18:29:45.78 ID:dD6X7nCn.net]
構造体の配列を初期化したいのですが
↓ですと初期化子の数が多すぎるといったエラーになってしまいます。
 struct Hoge { int Piyo; };
 std::array<Hoge, 2> HogeArray = { { 123 }, { 456 } };
どのように記述すればよいでしょうか?

857 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 18:35:24.51 ID:dD6X7nCn.net]
すんません以下のようにしたら通りました。
 std::array<Hoge, 2> HogeArray = {{ { 123 }, { 456 } }};

858 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 18:37:09.12 ID:kK1JTf3+.net]
std::array<Hoge, 2> HogeArray = {{123,456}};でもいい

859 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 19:02:59.09 ID:AwSwPmzi.net]
そのバカくさい二重括弧はC++14で修正予定

860 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 19:47:58.21 ID:ukiMHmOI.net]
構造体の中に構造体があるのか

861 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 08:27:30.18 ID:VjU+6nmm.net]
そのバカくさい二重括弧を排除したら
struct {unsigned sz, ary[100];};
struxt {unsigned ary[100], sz;}; ← この初期化が面倒じゃん
実際は従来記法もそのまま使えるんだろうけどさ

862 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 11:35:04.42 ID:VZDaHlzY.net]
>>856
心配すんな
排除されることはない

863 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 13:53:57.58 ID:6aZDF4w4.net]
C++のプロの人、お知恵をお貸しください

T** m_W;
T func(int y, int x);

void setW() {
for(int y=0 ; y<m_height ; ++y) {
for(int x=0 ; x<m_width ; ++x) {
m_W[y][x] = func(y,x);
}
}
}

のような関数のうち、Tを返すfuncの部分をラムダ式を突っ込めるようなテンプレートにしたいのです。

template<typename T> void setW(??? func) {
for(int y=0 ; y<m_height ; ++y) {
for(int x=0 ; x<m_width ; ++x) {
m_W[y][x] = func(y,x);
}
}
}

という感じになると思うのですが
T型を返すことを強制した関数オブジェクト(?)を指示するためには
???部の型として何を指定するのが適切なのでしょうか?

864 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 14:10:06.25 ID:mx5qZxk6.net]
>>858
引数がint型2個と決まっているなら std::function<T(int,int)>

865 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 14:25:02.49 ID:0Wbn/Mof.net]
>>858
T型を返すってのをどの程度強くことを強制したいかだけど、
m_W[y][x]に代入できればそれでいいような気がする。

template<typename F> void setW(F func);
でいいのでは?



866 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 14:48:37.61 ID:6aZDF4w4.net]
>>859
はい。引数2個限定で問題ありません。
std::functionというので指定するのですね。
勉強になりました。ありがとうございます。

>>860
ありがとうございます。
今回は引数2個限定で良かったので、859さんの方法で良かったのですが
引数の数が変わってくるような場合には便利そうです。
別の機会に使っていこうと思います。

867 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 15:12:09.92 ID:w88t0C6o.net]
functionはポリモーフィックtype-eraseするときに使うものだろ。
この場合template<typename T, typename lambda_t> void setW(lambda_t func);
とするべきでは

868 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 15:17:52.06 ID:mx5qZxk6.net]
>>862
> functionはポリモーフィックtype-eraseするときに使うもの
そうとも限らないと思うけど、この例も一種のtype erasureだよ。
継承関係に関わらず特定のインターフェースを備えた型はなんでも受け入れられるんだから。

869 名前:862 mailto:sage [2014/03/30(日) 16:22:05.22 ID:w88t0C6o.net]
>>863
そだね
猿の勢いで脊髄反射したスマン。
Tを返すことを強制したいなら
result_ofを使えばいいと思ったけど、
呼び出し箇所の数だけテンプレートが
インスタンス化されたらたまらんか。

870 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 21:13:56.97 ID:ERqvs8f4.net]
三角関数の関数ポインタを作ろうと思い以下のようにしたのですが次のエラーがでました。

#include <math.h>
double (*myfunction[])(double) {sin, cos, tan};
エラー:関数定義のようですが、パラメーター リストがありません。外見上の本体をスキップします。

どこか根本的に間違っているのでしょうか?
パラメーターリストというのが良く分からないです

871 名前:デフォルトの名無しさん [2014/03/30(日) 21:28:23.54 ID:ktWAco2D.net]
(関数の)変数を定義して代入では

872 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 21:31:05.48 ID:oPW3xR3D.net]
>>865
double(*myfunction[])(double)={sin, cos, tan};

873 名前:KUSO KOTE ◆unko./w.Osri mailto:sage [2014/03/30(日) 21:37:45.66 ID:6C3OsSaD.net]
>>865
配列の初期化の書き方は注意が必要です。
ideone.com/Yive9q

874 名前:KUSO KOTE ◆unko./w.Osri mailto:sage [2014/03/30(日) 21:44:12.52 ID:6C3OsSaD.net]
あれ、そもそも何でコンパイル通らないんだ?
コムパイラーは何だろう
 Visual C++: OK
 G++:OK
 clang:OK

875 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:19:29.79 ID:6RO/tmV/.net]
もうC++を選択する理由がないんだよな、Windowsプログラミングでも
メモリ意識とかやってられないし、C#に完全に置き換わったよ

メモリオナニーしすぎだろC++えrって



876 名前:デフォルトの名無しさん [2014/03/30(日) 23:21:03.61 ID:TtK4Vlhp.net]
別にWindowsで仕事してないし

877 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:28:38.13 ID:6RO/tmV/.net]
ああ、Macってこと?なるほどね

なんの思想にかぶれちゃったのかね

878 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:30:56.06 ID:7KxU0paA.net]
何言ってんだコイツ?

879 名前:デフォルトの名無しさん [2014/03/30(日) 23:32:27.80 ID:TtK4Vlhp.net]
Mac(笑)

880 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:33:22.66 ID:qrMW5ntB.net]
一人だけレベルの低い奴いないかここw

881 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:34:08.27 ID:6RO/tmV/.net]
別にWindowsで仕事してないし の意味がちょっとわからなかったんだ
Windowsで仕事をしてるのか、Windowsアプリケーションを作る仕事しているのかね

前者の場合、言葉の意味を勘違いしてる輩かと思って、俺はMac派ですよみたいな思想
あーいう感じはちょっと受け入れられないね

882 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:40:44.70 ID:s2pjmqPg.net]
>>865
C++11にはイニシャライザリストってのがあるらしいんだけど、
それを使うように記述したのが>>865じゃないの?

883 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 23:41:22.91 ID://pyQIJP.net]
OpenVMSとVxWorksだから(棒
いやまあ、両OSでC++使えるようになって、かなり楽になったよ

884 名前:デフォルトの名無しさん [2014/03/30(日) 23:59:59.81 ID:VZDaHlzY.net]
>>876
Linux知らないの?

885 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:06:43.04 ID:4LHV21Ew.net]
C++ではMacが最強だろ。Clangと言えばMac。



886 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:07:16.15 ID:iPLvWewK.net]
>>870
きちんとしたドメインモデルを作ろうとしたらやっぱりC++では?

887 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:08:40.75 ID:JMzV2FUX.net]
MacはObjectiveCが何ちゃらと噂に聞くが

888 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:08:53.07 ID:YuwcCGee.net]
LinuxはCでしょ

889 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:31:25.16 ID:h/7kGidF.net]
c++代表Qt

890 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:51:35.78 ID:5uvxJF26.net]
>>881
そこはもうC#の方がやりやすい

891 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:59:35.85 ID:4LHV21Ew.net]
Winでは低脳・ゆとりの似非C++使いはMFC、真のC++使いはQtって感じになっているからな

892 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 01:01:48.52 ID:3ugtc2xG.net]
C++がモデル化に於いてC#やJava()より上な訳がないだろう
視野の狭くなった老人はここまでボケと妄想が激しいものなのか

893 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 01:39:04.83 ID:YuwcCGee.net]
んなことはないC#は洗練されている

ネットワークプログラミングするときはC++ではつまづく

894 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 02:09:05.98 ID:aH5oPSHV.net]
老害が無理してC++理解しようとすると決まって発狂するな

895 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 02:35:58.26 ID:h/7kGidF.net]
>>888
まさかC++ではsocket/winsockを使ってないよな



896 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 03:02:46.32 ID:JKT8WNOO.net]
asio使え、asio。そいでC++の迷宮を彷徨え

897 名前:デフォルトの名無しさん [2014/03/31(月) 04:59:04.83 ID:ftA6xnEH.net]
AsioはLinuxでうまく機能しない。
非同期プログラミングができるライブラリ全般がうまく機能しないと考えて
差し支えない。

898 名前:デフォルトの名無しさん [2014/03/31(月) 18:43:25.87 ID:yborCUTf.net]
今からC言語を勉強し始めるものですが、Visual Studioはどの年のものをインストールした方がよろしいでしょうか?

899 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 18:58:16.49 ID:FN8LC2rG.net]
>>893
最新いれとけ

900 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:16:22.59 ID:yborCUTf.net]
>>894
いれようとしたらWindowsが古いって言われました

901 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:17:48.49 ID:JMzV2FUX.net]
条件あとだしやめい

902 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:17:51.67 ID:NWhaiSr6.net]
>>895
まて、お前はまず Windows を新しくしなければならん
来週までにな

903 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/03/31(月) 19:23:16.60 ID:60O6Nh3u.net]
VS2008入れとけ

904 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:23:49.11 ID:yborCUTf.net]
近い内に買うと思う、XPだから
でも母次第です

905 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:29:36.88 ID:FN8LC2rG.net]
>>899
金が無いなら UbuntuかPC-BSDいれたら?
無料だしセキュリティもしっかりできるし。

コンパイラとか開発環境も全部無料でついてくるし
ツールやOSのソースコードも全部見えるから勉強にもなる。



906 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:31:26.73 ID:i99iYryZ.net]
VSでやりたいことがはっきりしてる場合は
そのやりたいことのサンプルとか参考になりそうなプロジェクトファイルを配布しているかどうかをしらべ
そのプロジェクトファイルのバージョンに合わせておくのが無難

907 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:35:25.75 ID:aH5oPSHV.net]
母親に頼んで買ってもらえ
アカデミックパックなら安く買えるだろ
学生の特権なんだし

908 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:42:13.49 ID:DtbGifhU.net]
>>900
Visual Studioのインストールごときにてこずるような初心者にそんなもの勧めるな
「来週以降ネットに繋ぐな」と言い渡して去るのが真の優しさ

909 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:57:11.33 ID:dwfvfwUS.net]
回路とか好きな引きこもりの義弟にVSあげたんだけど使ってくれてるかなあ
俺が電話変わってもらうと無言か切られるかだからわからん

910 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 20:01:36.02 ID:FN8LC2rG.net]
>>903
いや、このXPのドタバタの間にちょっとでもユーザー増やしたいなぁ・・・と

911 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 20:07:44.05 ID:JMzV2FUX.net]
正直Gnuのソースは読みにくい

912 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 20:09:20.82 ID:FN8LC2rG.net]
>>906
それは同意。
「公開せにゃならんやったら、せめて読みづらくしとこ」
って感じなのかと思うくらい酷いのあるね。

913 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 20:12:14.52 ID:JMzV2FUX.net]
前に勉強がてらコマンドのソースとかみようとしてやめた
関数名の前で改行とかいるのかね?

みるならFreeBSDのほうがきれい

914 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 21:00:34.11 ID:xTBmJi7C.net]
GNUはオープンにしてただで使えるだけで有難いと思え、乞食って感じだろ
欧米のプログラマはギブアンドテイクだけど(ギブが先)
でも、乞食(日本のドカタ)はテイク、テイク、ギブするのは文句だけだからな

915 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 21:47:43.53 ID:aH5oPSHV.net]
DTV板とか行くと文句たらたらのコジキしかいないよ
自炊が鉄則なのに文句だらけ



916 名前:デフォルトの名無しさん [2014/03/31(月) 21:50:33.54 ID:b96nnelI.net]
>>908
あの改行には神の見えざる何とかみたいな壮大な名前がついてて由来とかもあるんだよね。
全然興味なかったんで三秒で忘れちゃったけど。

917 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 22:43:13.46 ID:xTBmJi7C.net]
>>910
乞食、それは日本の美しい魂
そしてそれを行動にした、テイク、テイク、ギブするのは文句は日本の美しいおこないなのかもな

918 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 23:27:31.97 ID:JKT8WNOO.net]
どこぞのオプソ・プロプラのプロジェクトを
著作権違反しない程度にマネてオリジナル主張

919 名前:するのがGNU
全部とは言わないがGNU系のプロジェクトにオリジナリティなどほとんどない
[]
[ここ壊れてます]

920 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 01:02:08.41 ID:b5JB/Jhx.net]
いまやオリジナリティを有するものって日本発が多い
IT先進国の日本のものがパクられるのは仕方ない

921 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 01:39:10.72 ID:M/SUb6RV.net]
>>911
関数の宣言や呼び出しと、実装を分けることができるから
つまり)の直後が改行なら実装
古い時代の文化だけど

922 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 01:52:27.98 ID:0nwPuo2f.net]
消費税が上がるらしい

923 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 02:30:23.14 ID:SxmvLrt8.net]
>>916
エイプリルフール

924 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:14:35.48 ID:Xl1FJm59.net]
>>913
逆だ、GNU より先にめだったオプソがあったのか?BSD ライセンスくらいしかなかったのでは?

925 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:15:10.37 ID:Xl1FJm59.net]
>>914
そんなもんがあるのか?実例よろしく



926 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:57:50.76 ID:QacWHPnJ.net]
ja.wikipedia.org/wiki/%E5%B6%8B%E6%AD%A3%E5%88%A9

こういう人がいたんだよね

927 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 10:32:45.63 ID:SqhIr943.net]
>>913
プロプラなもののより良い代替をオプソで提供するのがGNUのそもそもの目的だから、何か微妙に勘違いしてないか?

928 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 19:44:07.99 ID:PR3x9no5.net]
>>918
public domain

929 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:12:39.33 ID:eefQLiAy.net]
boostの多くは日本語のwebにあったのを参考にして作ったのが多いらしいよね

930 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:16:09.35 ID:dzlTlaxn.net]
よね、と言われてもな
ソースくれよソース

931 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:35:49.48 ID:8KYb0WXA.net]
起源は韓国ニダ

932 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:58:44.85 ID:BTv6StGE.net]
boostで日本人だと言われても、k.inaba氏くらいしか知らんぞなもし

933 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 22:18:15.83 ID:ntgtG/kn.net]
boostは新しいC++の土台になっているよな
つまり日本はすごくC++に貢献しているってことだよな
華々しい表は欧米の奴らに持たせ、日本は縁の下の力持ちとして強力貢献って感じか

934 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 22:54:04.05 ID:af4pwMis.net]
そんなことに国を持ち出さないでくれ
優秀な奴がたまたま日本生まれだっただけだろう
ただ…超便利!

935 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 22:58:16.91 ID:F+VXkOpH.net]
インターフェースクラスをテンプレートにするのってアリでしょうか?
そういうのを見たこと無くて違和感があるんですが。

class Aがclass Bを所有してます。
AはBの関数を呼んでますが、Bの方もAの関数を呼ぶ必要があり、
直接相互に呼びあうのは行儀が悪いのでBが呼ぶ部分をインターフェースとして切り出しています。

class A : public IA{
vector<B *> member;

class B{
public:
B(IA *owner)
: m_owner(owner){}

void xxx(){
m_owner->func();
}

みたいな感じで。実際はもうちょっと複雑なんですが。
で、Bが保持するデータの型をパラメータしたくなったんですが、
そのデータはAにインターフェースを介して渡してもいるという状態です。
あ、ちなみにこのインターフェースはB以外からは呼ばれることはありません。



936 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 23:55:29.98 ID:J7anNUIN.net]
相互参照が発生してる時点で違和感がある C++は相互参照を上手く扱えないのでそれを取り除くことから考えてみたらどうか

937 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 00:31:02.32 ID:03j6Q/GA.net]
そもそも >>929 が書いたコードは } が2つ程足りないのだが

938 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 00:42:49.70 ID:oq+5i/Zd.net]
>>931
そうなっているのは、こんな感じって示すコードだからだろ

939 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 01:09:14.39 ID:03j6Q/GA.net]
フラクタル構造だろコレ
無理に決まっているジャン

940 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 01:56:33.54 ID:03j6Q/GA.net]
よくよく見たらIAを参照しているだけだからネストしてもいないんだな
というか普通にできるんじゃね?

941 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 02:33:18.90 ID:CBuO+9f9.net]
小手先の実装はどうでもよくてAにメンバ関数テンプレートを持たせるのが本質的な解法じゃないのか

942 名前:デフォルトの名無しさん [2014/04/03(木) 07:03:25.84 ID:giRIvbWR.net]
>>931
そんなことは全く問題にしてない

943 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 07:26:26.82 ID:7TERZTkc.net]
>>929 のコード片見て後略とわからない奴がいるとは...

944 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 23:01:08.26 ID:ED9H8RNO.net]
>>929
ごめん、ちょっとよくわからない。
template をどこにつける意図?

1.class IA
2.class A
3.そのメンバ

945 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 08:29:34.22 ID:ziFJe0J7.net]
皆さんレスありがとうございます

>>938
BにtemplateつけたくなったらIAにもつけなくてはならなくなった、みたいな感じで

template<typename Data>
class A : public IA<Data>{
vector<B<Data> > member;

template<typename Data>
class B{
Data data;
public:
B(IA<Data> *owner)
void xxx()
{
m_owner->func(&data);
}

template<typename Data>
class IA{
virtual void func(Data *){}
};

みたいになるのかな

>>935
えーと、となると
インターフェースにメンバ関数テンプレートを持たせるのはアリか?
という質問になりますね



946 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 08:48:27.82 ID:kYKaj4mW.net]
JAVA() がインターフェースにメソッドの実装を書ける程度には
忌みがあるだろう
だが普通はしない

947 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 13:06:47.93 ID:teewvH1C.net]
インターフェイスクラスなんか用意せずにA<Data>,B<Data>で直接よび合えばいいじゃん
プログラミングにおいては直接的・機能的な設計・実装をさまたげる個人的な価値観や美意識は有害なだけで不要でしょ

948 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 16:52:35.16 ID:8Cig6QUM.net]
>>930
読んで「は?」と思ったから調べたけど相互参照NG説のソースが見つけられなかった

迷信?それとも根拠ある主張?

949 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 17:02:40.96 ID:rdn2uojJ.net]
とりあえず>>929>>939が開いた括弧をとじるよ
};
};
};
};

950 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 18:02:23.96 ID:h+qk3VAa.net]
>>942
相互参照してるとオブジェクト破棄の責任が決まらず、リソースリークや二重破棄を引き起こす可能性がある。
もちろん片方をshared_ptrにしてもう片方をweak_ptrにするなどして所有なのか只の参照なのかを明確にすれば安全に相互参照はできる。相互参照というより相互に所有するのが問題だったね、申し訳ない。

951 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 18:23:55.67 ID:8Cig6QUM.net]
>>944
要するにC++の言語仕様上の問題に過ぎず、オブジェクト指向一般の話では相互参照や循環参照は問題ないってことかぁ?

952 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 18:50:26.91 ID:h+qk3VAa.net]
>>945
他の言語はあまり詳しく知らないけど、GCが用意されていたり、参照を基本としたりする他の言語では問題は小さいだろう

953 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 18:59:12.33 ID:tpgdbbWH.net]
>>945
適切に設計すれば問題はないが、注意しろってはなしだろ

954 名前:929 mailto:sage [2014/04/04(金) 19:17:02.12 ID:ziFJe0J7.net]
今帰宅しました
皆さんレスありがとうございます

>>942
相互参照NGの理由はジョン・ラコスの「大規模C++ソフトウェアデザイン」で書かれています
確か
・コンパイル・リンク時のコストが増大すること
・お互いに単独で使用できないので単体試験ができない
等が理由に挙げられていたと思います

>>943
ありがとうございます^^

>>930
概念的に独立したクラスが相互参照しているわけではなく、
Graph,Edge,Vertexみたいな感じの関係のクラスなんです
例えがパッと浮かばなかったので>939ではレス返せませんでした、すみません

955 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 19:34:13.91 ID:h+qk3VAa.net]
>>948
>>929,>>939について、Bの持つデータ型が複数あるというが、単一のAが所有するBはそれぞれ同じ型のデータを持つのか?そうならばIAやAをテンプレートにして、A<T>::BやA<U>::BをA<T>やA<U>がそれぞれ所有するのがいいだろう。
単一のAが複数の型のBを所有する場合にはもう少し複雑な機構が要求されるだろう

あと、生ポインタを使うと意図がわかりづらくなるので、適切なスマートポインタやクラスを用いるべき



956 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 19:39:28.67 ID:eu/rYsXw.net]
利用だけならナマポ使っちゃうな
インスタンス管理でどっちも死なないことが分かってるし

957 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 [2014/04/04(金) 23:43:32.61 ID:CAL3SSDr.net]
質問です。
inline const char *func(void){
static const char *s = "…ものすごく巨大なデータ…";
return s;
}
複数のコンパイル単位から参照される巨大なデータを
うまくヘッダに埋め込むにはどうすればいいか?

958 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 23:49:30.08 ID:wXNGFrYS.net]
// huge_data.h
extern const char* const s;

// huge_data.cpp
#include "huge_data.h"
const char* const s = "...huge data...";

こういうこと?

959 名前:デフォルトの名無しさん [2014/04/04(金) 23:53:22.93 ID:CAL3SSDr.net]
.cpp不要で重複なしにしたいらしいです。

960 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 00:09:53.25 ID:NnouwwX7.net]
__declspec(selectany)

961 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 00:10:33.60 ID:N4PVE6y4.net]
0xcc.net/blog/archives/000076.html
これ使ってexternすれば

962 名前:929 mailto:sage [2014/04/05(土) 00:11:02.58 ID:HMLu+RLn.net]
>>949
単一のAが所有するBは全部同じ型です
AがBの生成、破棄を担ってて、生存期間も同じなのでナマポのままでいきます

とりあえず色々ご意見頂けたので質問は閉じさせて頂きます
どうもありがとうございました!


あ、>948の補足です
相互(循環含む)参照しないことのメリットは依存性に明確な順序をつけることが可能なことです
A→Bを(Bが変更されるとAのコンパイルが必要)を意味するとします

A←→BとかA→B→C→A→…とかになっているとそれらのクラスをまとめて試験しなければなりません
A→B→C→DとなっていればDを試験して十分信頼性が高くなったらCを試験して、と段階的にいけるということです

963 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/04/05(土) 01:05:19.01 ID:kCbCwa1D.net]
ポータブルでスマートな解決策はC++にはないでFA。

ありがとうございました。

964 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:18:58.03 ID:Q7PCNbm7.net]
>>957
それって前にも上がってたやつじゃダメなの?

template <int N>
struct banzai {
static const char* s_char;
};

template <int N>
const char* banzai<N>::s_char = "abcdefghijklmnopqrstuvwxyz";

inline const char* s_char()
{
return banzai<425>::s_char;
}

965 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:25:12.80 ID:DYmjPU4E.net]
>>951
そのコードで何か問題あるの?やりたいことができてるように見えるんだけど。



966 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:37:41.29 ID:kCbCwa1D.net]
>>959
ものすごく巨大なデータが何個も作られたら嫌だろ

967 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:45:32.24 ID:DYmjPU4E.net]
>>960
そんなことにはならないよ。
7.1.2 [dcl.fct.spec] p4
> ... A string literal in the body of an extern inline function is the
> same object in different translation units. ...

968 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:50:56.07 ID:YrLzJmoN.net]
普通のSingleton

969 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 01:57:47.22 ID:Q7PCNbm7.net]
>>962
>>953

970 名前:KAC mailto:sage [2014/04/05(土) 02:06:26.69 ID:Dr+e6snh.net]
問題の出し方がいまいちよくわからんね。
たぶん、#include使って複数から参照するって話でもしたいのかと。

971 名前:デフォルトの名無しさん [2014/04/05(土) 02:06:28.48 ID:kCbCwa1D.net]
>>961
それはC++0xからだっけ?

972 名前:KAC mailto:sage [2014/04/05(土) 02:07:17.21 ID:Dr+e6snh.net]
安価忘れた orz

973 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 03:13:14.83 ID:DYmjPU4E.net]
>>965
いや、C++98からずっと。

974 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 04:04:26.33 ID:Ir5lnMtW.net]
>>958
特定の意味を持つ変数を整数で識別するなよ
お前はローカル変数もをv001,v002,v003…にしてるのか?

>>964
ヘッダに入れたいと言ってるんだから
コンパイル速度の話でなくて複数翻訳単位で
実体を同じにするという話だろjk
(すでになってるが)

975 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/04/05(土) 05:21:00.49 ID:kCbCwa1D.net]
俺のMinGW g++がおかしいのか? 同じデータをいくつも埋め込むんだが



976 名前:KUSO KOTE ◆unko./w.Osri mailto:sage [2014/04/05(土) 06:50:35.55 ID:ILQmFswz.net]
>>969
externが足りないからじゃなくて?

ISO/IEC 14882:1998 7.1.2 段落4
A static local variable in an extern inline function always refers to the same object.

extern inlineの部分はタイプライターっぽいフォント。

977 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 07:21:57.84 ID:Lxf79fPB.net]
ものすごく巨大なデータをヘッダに書かなければならない自分をまずどうにかしろよ

978 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 07:26:30.69 ID:4p3tjfYN.net]
externが要るのか知らんかった
・extern inline内の静的変数は実体が同じ
・extern inline内の文字列リテラルは実体が同じ
前者はsが同じアドレスになって
後者は"...huge data..."が同じアドレスになる

関数がexternならsにstaticは要らないということか

979 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 07:34:17.87 ID:eKUnQEXz.net]
関数がexternでなくても
inlineでなくても
sにstaticがいる筈がない

980 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 07:47:12.92 ID:rrGengiU.net]
俺C/C++はよくわからんが、
// huge_data.h
extern const char* const s;

// huge_data.cpp, huge_data.hはインクルードしないでグローバルで
const char* const s = "...huge data...";

// sを使うhuge_data.cpp以外の.cppでは
huge_data.hをインクルード

これでは駄目なのか?

981 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 08:04:10.88 ID:4p3tjfYN.net]
>>974
質問者の意図は「何とかしてヘッダだけで済ませる方法はないか」
なのだから、その回答では駄目だな

982 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 [2014/04/05(土) 08:17:35.23 ID:kCbCwa1D.net]
VC2008,BCC32の場合はexternを付けなくても単一になった。
g++の場合はextern付けても単一化されなかった。
g++の問題みたいですね。

983 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 08:23:09.04 ID:cxjx9B8n.net]
↑これが最後のファイナルアンサー

984 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 08:46:29.27 ID:rrGengiU.net]
>>976
付けなくても単一になったって、
仕様上はextern付けないと駄目なんだろ。VC/BCCは警告ぐらい出るようにしないと駄目だろ

985 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 08:48:36.70 ID:e3mydc3l.net]
↑論理的思考の出来ない馬鹿



986 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 08:52:58.41 ID:kCbCwa1D.net]
bug-g++@prep.ai.mit.eduにバグレポート送りました

987 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 08:54:16.09 ID:e3mydc3l.net]
ところでさ
static inline void f();
extern inline int & f() {
 static int var;
 return var;
}
っていう関数fは内部リンケージを持ちながらも
varは翻訳単位間で同一になっちゃうの?
おかしくね?

988 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 09:01:48.91 ID:Q7PCNbm7.net]
そのうちまた、「ヘッダはコンパイラが提供するものなのであなたが作らないでください」厨が現われる。

989 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 09:22:37.95 ID:S+nT1w4a.net]
煽るなよ
一応規格ではそういう定義なんだから

990 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 10:40:34.53 ID:90I2C7qj.net]
今時g++なんて使う奴は情弱

991 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 11:10:50.62 ID:ptPAYM2R.net]
今はh++がきてます

992 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 11:24:36.69 ID:4p3tjfYN.net]
次スレ
C++相談室 part112
toro.2ch.net/test/read.cgi/tech/1396656048/

993 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 12:39:58.92 ID:jmoC0q2p.net]
>>986
おつ

994 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/04/05(土) 14:04:18.14 ID:pKk9GxNe.net]
clang++はwindowsで使えないからなあ。。。

995 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 14:16:06.85 ID:p10Tb89F.net]
時代遅れ



996 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 14:18:56.48 ID:OrTtrRA7.net]
windowsはまだまだ現役でしょ

997 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 16:24:57.59 ID:LokGB3M7.net]
勉強用としてはgccのヘンテコな仕様よりはVC++の方がマシ
clangが使えるならclang一択

998 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 19:21:33.76 ID:x1RB96gi.net]
gccがヘンテコとか、何を持ってそう言っているのかすごい気になる

999 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 19:27:40.68 ID:IFpoXzod.net]
気になるというか、凄く臭い立つしったか臭があるだけだがw
偉大なるgccを批判できるような力量もってるやつなんて、この板にはいない。

1000 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 20:12:49.24 ID:RDsNMK1o.net]
sun os 4.x でgccの野良ビルドは大変でした。

1001 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 20:39:33.53 ID:anSZmmIR.net]
某虫の記事であったけどvariable length array in structureとか勝手に拡張すんなってことだろ
批判されても仕方ない

1002 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 20:39:37.54 ID:EOtAE3K1.net]
gccが駄目でclangの普及が加速しているんだろ
長い間の繰り返し建て増しで劣化したって感じじゃないのか
建て増しって言えばC++だが

1003 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 21:03:16.44 ID:x1RB96gi.net]
>>995
でもそれC++14で規格になるんでしょ(Linuxのカーネルソースで使われてるし・・・とか江添さん言ってた気がする)
gccの内部の作りが複雑怪奇なのはそうかもしれんが、仕様がヘンテコってのはやっぱりおかしい

1004 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 21:05:26.99 ID:3z3TJ4eu.net]
仕様が〜実装が〜って言ってると自分が満たされるんだろうよ。
ほっとうこうず。たぶんそいつそれ以上いじっても何一つ有益なもん出てこない。

1005 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 21:20:07.43 ID:anSZmmIR.net]
勉強用って話だから初学者が拡張と知らずにその記法を覚えたらどうすんだってことだろ



1006 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 21:25:19.87 ID:p10Tb89F.net]
>>997
なってねーよハゲ

1007 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1008 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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