C++相談室 part116 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/02/24(火) 22:01:58.64ID:13AsGslFただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part115
http://peace.2ch.net/test/read.cgi/tech/1418877984/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.95【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1423872914/
次期規格C++1yはこちら
C++14/C++1z 20
http://peace.2ch.net/test/read.cgi/tech/1410382924/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
0002デフォルトの名無しさん
2015/02/24(火) 22:03:06.67ID:13AsGslF環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0003デフォルトの名無しさん
2015/02/24(火) 22:04:15.37ID:13AsGslF0004デフォルトの名無しさん
2015/02/25(水) 19:25:45.94ID:mKx2rGPv0005デフォルトの名無しさん
2015/02/26(木) 20:19:51.49ID:tVqEyAds0006デフォルトの名無しさん
2015/02/26(木) 21:05:38.68ID:MirCIX3E>>1さんありがとうごじます
#endif
0007デフォルトの名無しさん
2015/02/28(土) 12:34:02.28ID:fHGpMEcn猥らにも未使用な属性を露出するはめになっちゃたじゃねぇかorz
0008デフォルトの名無しさん
2015/02/28(土) 12:41:42.34ID:a/G4RwQWどこのこと?
template<template<typename T> class a = ★> struct X;
template<template<typename T=★> class a> struct X;
0009デフォルトの名無しさん
2015/03/02(月) 14:48:17.71ID:+sP2klOGもつインスタンス関数を持つクラス内で
前者の関数をコールするためには
どのようにしますか?
0010デフォルトの名無しさん
2015/03/02(月) 14:58:01.57ID:vmAwrSSK0011デフォルトの名無しさん
2015/03/02(月) 15:45:16.86ID:hivCPt760012デフォルトの名無しさん
2015/03/02(月) 16:33:55.97ID:+sP2klOGありがとうございま
自分の位置から相対的に何個上とかは無理なんですね。
した
0013デフォルトの名無しさん
2015/03/02(月) 22:45:25.74ID:+22kW03l0014デフォルトの名無しさん
2015/03/03(火) 07:50:54.20ID:9xo9xj4tしからば仮引数をconstにして定数演算の最適化に利用したいライブラリー開発者の
要求に答えることができませんね。
0015デフォルトの名無しさん
2015/03/03(火) 07:57:57.25ID:ed5OtmA40016デフォルトの名無しさん
2015/03/03(火) 12:52:29.95ID:0H9O2eaz0017560
2015/03/03(火) 20:26:26.70ID:2pykA5xk0018デフォルトの名無しさん
2015/03/04(水) 10:28:20.17ID:eysaIXjgその const はオーバーロードに影響しないから、宣言では const 無しにしといて
定義で勝手に const つけていいんだよ。
0019デフォルトの名無しさん
2015/03/04(水) 13:40:22.05ID:sEOnXYVeめんどくせえな
0020デフォルトの名無しさん
2015/03/04(水) 13:53:30.81ID:l8MsMF4oすごく安心する^^
0021デフォルトの名無しさん
2015/03/04(水) 16:10:12.02ID:dDcQZ4yUreturn には付けないよな?
0022デフォルトの名無しさん
2015/03/05(木) 10:19:45.44ID:dDo/Jz4C0023デフォルトの名無しさん
2015/03/05(木) 10:36:20.48ID:h/XJ3WoQ0024デフォルトの名無しさん
2015/03/05(木) 20:20:43.01ID:gRAg7Udcconst unko g();
decltype(g())はconst unkoだけど
decltype(f())がconst intでなくintになる糞仕様を何とかして欲しい
0025デフォルトの名無しさん
2015/03/05(木) 20:21:32.63ID:1Acz44Yd0026デフォルトの名無しさん
2015/03/05(木) 20:37:31.42ID:Z1VFzrPeカッコ増やしても変わらないはず。
0027デフォルトの名無しさん
2015/03/05(木) 21:01:30.77ID:6vcov9qd0028デフォルトの名無しさん
2015/03/06(金) 15:15:40.83ID:waWP92eyこれで i が const int になったら、それこそ糞だろ
0029デフォルトの名無しさん
2015/03/06(金) 18:42:23.03ID:Ff67jPYI「配列がconstポインター」と同等レベルの初心者
0030デフォルトの名無しさん
2015/03/06(金) 20:09:28.66ID:waWP92ey0031デフォルトの名無しさん
2015/03/07(土) 05:03:12.99ID:95kHk/4r>>24はdecltypeの問題ではないな
0032デフォルトの名無しさん
2015/03/07(土) 16:23:52.47ID:ZJ5WVqXi0033デフォルトの名無しさん
2015/03/07(土) 20:18:27.72ID:lexZIoDv非クラス型に限ってprvalueはconstが剥がれるというルールが有るだけだ
0034デフォルトの名無しさん
2015/03/07(土) 20:22:10.62ID:3PLc8m1Qしかしとんでもねえルールだ
0035デフォルトの名無しさん
2015/03/07(土) 20:40:48.24ID:kgoMpLop0036デフォルトの名無しさん
2015/03/07(土) 21:05:31.66ID:URfbPLhP0037デフォルトの名無しさん
2015/03/08(日) 21:49:24.84ID:U2m6dpOF0038デフォルトの名無しさん
2015/03/09(月) 09:01:55.53ID:C5HzDcEXJavaはプリミティブの配列は0に初期化される
C++はプリミティブがconstがはがれる
0039デフォルトの名無しさん
2015/03/09(月) 09:36:27.85ID:PKrvJtFu0040デフォルトの名無しさん
2015/03/09(月) 23:03:22.24ID:1gPhoGUH>>38はJAVAドカタに相違ない
0041デフォルトの名無しさん
2015/03/10(火) 01:36:49.84ID:UgYMz3L+0042デフォルトの名無しさん
2015/03/10(火) 06:44:41.25ID:zWP2NH7t0043デフォルトの名無しさん
2015/03/10(火) 07:58:07.67ID:kBEgSjWh0044デフォルトの名無しさん
2015/03/10(火) 12:15:36.74ID:UgYMz3L+「constがはがれる」なんてルールは見当たらないよ。
0045デフォルトの名無しさん
2015/03/10(火) 18:25:09.32ID:W9aR9hFLdecltypeの問題ではないよ
Clause 5
0046デフォルトの名無しさん
2015/03/10(火) 22:07:24.79ID:dg/tj86wISO/IEC 14882:2014 5段落6
『If a prvalue initially has the type“cv T,”where T is a cv-unqualified non-class, non-array type, the type of the expression is adjusted to T prior to any further analysis.』
↓コンパイルエラーに注目
http://ideone.com/sEQARr
0047KUSO KOTE ◆unko./w.Osri
2015/03/10(火) 22:13:59.15ID:dg/tj86w『class and array prvalues can have cv-qualified types; other prvalues always have cv-unqualified types. See Clause 5.』
0049デフォルトの名無しさん
2015/03/11(水) 04:33:40.33ID:vLo4R3vK0050デフォルトの名無しさん
2015/03/12(木) 17:23:13.27ID:4A2VUCCfコピーせずに知る方法を教えて下さい
0051デフォルトの名無しさん
2015/03/12(木) 18:12:07.63ID:nvy6f4L60053デフォルトの名無しさん
2015/03/12(木) 21:34:37.05ID:sWZMM9R00054デフォルトの名無しさん
2015/03/12(木) 22:04:33.17ID:DBsYm82i0055デフォルトの名無しさん
2015/03/12(木) 22:27:34.87ID:L+z6pulGありがとうございます。
>>52,54
とんでもない無能ですね。やる気を出してください
0056デフォルトの名無しさん
2015/03/12(木) 22:39:08.25ID:cIZ+bXYz失敗したら諦めてるわ
0057デフォルトの名無しさん
2015/03/12(木) 23:23:28.91ID:h4ieQffB0058デフォルトの名無しさん
2015/03/13(金) 20:15:23.30ID:krOXv2Oj何でそんなことしたいんだ?
コピー後の文字列長を求めれば確実なんじゃないか?
0059デフォルトの名無しさん
2015/03/13(金) 20:33:22.46ID:9FB9uPZE馬鹿なんですか
コピーしきれなかったらどうするんですか
ちゃんと考えてものを言ってください
0060デフォルトの名無しさん
2015/03/13(金) 20:39:02.80ID:5+Y+ymKY文字列はstrlenあればいけるだろ。
っていうか、バッファーのところNULLにしたら概要出してくれるんじゃなかったっけ。
0061デフォルトの名無しさん
2015/03/13(金) 21:08:46.46ID:krOXv2Oj大き目にバッファを用意しておけばいいだろ
0062デフォルトの名無しさん
2015/03/13(金) 21:09:58.39ID:9FB9uPZE16進数だったり桁数指定だったり指数表示だったりいろいろあるでしょう
それを全部自前でやれとは回答としてはゼロ点ですね
脳味噌入って無いんですか
0063デフォルトの名無しさん
2015/03/13(金) 21:15:27.03ID:5+Y+ymKY0064デフォルトの名無しさん
2015/03/13(金) 21:38:20.63ID:5+Y+ymKY昔出来ると読んだ記憶があったんだが、何だっけな。
snprintf使っておくのがベターなのか?
正直すまんかった。
0065デフォルトの名無しさん
2015/03/13(金) 21:52:28.16ID:5+Y+ymKY土下座しろ。
0066デフォルトの名無しさん
2015/03/13(金) 22:07:58.66ID:nMWoJLTDあとなんで+2なん?
0067デフォルトの名無しさん
2015/03/13(金) 22:10:48.20ID:5+Y+ymKY土下座マダー?
0068デフォルトの名無しさん
2015/03/13(金) 22:34:12.55ID:nMWoJLTD誰に何故土下座を要求してんの?
0069デフォルトの名無しさん
2015/03/13(金) 22:35:27.72ID:5+Y+ymKY脳みそ入ってない奴に解かれてやんの。
ど げ ざ。
0070デフォルトの名無しさん
2015/03/13(金) 22:38:30.75ID:nMWoJLTD解くってsnprintf 使う方法は>>53 で既出なのにマジで何がしたかったのか解らん
0071デフォルトの名無しさん
2015/03/13(金) 22:40:50.94ID:5+Y+ymKYそれに質問主理解してなかったジャン。
0072デフォルトの名無しさん
2015/03/13(金) 22:44:40.53ID:nMWoJLTD0073デフォルトの名無しさん
2015/03/13(金) 22:45:45.34ID:5+Y+ymKYあー、書き損。
0074デフォルトの名無しさん
2015/03/14(土) 02:22:29.77ID:Zay2tm1Wいちいちコード分けるの面倒。
0075デフォルトの名無しさん
2015/03/14(土) 03:26:27.12ID:t/iyHNA+0076デフォルトの名無しさん
2015/03/14(土) 09:03:28.14ID:Z0HeSYTJ長くなると一覧性が悪いな。
関数メンバのプロトタイプ宣言みたいなものが欲しいわ。
0077デフォルトの名無しさん
2015/03/14(土) 09:10:57.91ID:lGpxwPy8どういうコードがコンパイル通るようになってほしいのですか?
0078デフォルトの名無しさん
2015/03/14(土) 09:39:53.35ID:wEOVq8GH関数メンバってなに?
0079デフォルトの名無しさん
2015/03/14(土) 10:07:34.92ID:uyiCZLkr0080デフォルトの名無しさん
2015/03/14(土) 15:05:27.63ID:UmboQnI7こんなキチガイ二匹もいる訳がない。
何度ここで勉強させてもらったか。ここがなかったら未だにポインタも分からんかったまである。
0081デフォルトの名無しさん
2015/03/14(土) 16:26:44.67ID:dIU+dE4Aまた全板にわたって盛大にやってくれ
0082デフォルトの名無しさん
2015/03/14(土) 20:20:37.60ID:Zay2tm1Wようするにヘッダに全部書きたい。
hppとcppを行き来するのが面倒だから。
0083デフォルトの名無しさん
2015/03/14(土) 21:22:48.28ID:Zay2tm1Wクラス内クラス同士の場合、後方参照が許されてるっぽいのに、
グローバル空間だとダメなところ。
class out
{
class A{ /*A内からBのメソッドが呼べる*/ };
class B{ };
};
class A{ /*A内からBのメソッドが呼べない*/ };
class B{};
これなんで?中途半端くない?
0084デフォルトの名無しさん
2015/03/14(土) 21:44:48.40ID:wcL59cGU/ ! ヽ
_,!-y-‐-、-、 |
ゞヽ}i⌒ヽ\ \ {
}〉ソー-// 入 ヽ、
>仝\//__,.ゝ、 > コーホー
o|ii_ii_:|oニ二三____,.>'
''''''} ̄~フハ ;/;' /_,;,7'
;;;''''/_ / | | `ー-‐'´_,,,/' ,,/r'~`ヽ';
,r'~ `V ヽニニニ二、-'{ 十 )
0085デフォルトの名無しさん
2015/03/14(土) 23:13:17.18ID:2sFyhS5H0086デフォルトの名無しさん
2015/03/15(日) 02:45:54.75ID:IG+uIRAd0087デフォルトの名無しさん
2015/03/17(火) 00:05:55.94ID:kOLN6eD/どれも欠点があるみたいでわけわかんないんですけど。
0088デフォルトの名無しさん
2015/03/17(火) 00:09:07.00ID:sovfZ05h0089デフォルトの名無しさん
2015/03/17(火) 00:09:50.83ID:eWM9qhCG値の変更が無いけどスライシングなくしたい -> 参照渡し
メモリを共有したい ->スマポ。
というルールで俺はやってる。
0090デフォルトの名無しさん
2015/03/17(火) 00:19:08.83ID:kOLN6eD/ありがとうございます。
そのヒントを手がかりに調べてみます。
0091デフォルトの名無しさん
2015/03/17(火) 00:37:01.74ID:dRjYd+3d他が必要な時が来たら設計を見直してそれでも必要なら使えばいい
0092デフォルトの名無しさん
2015/03/17(火) 01:04:58.99ID:02ciAWXG0093デフォルトの名無しさん
2015/03/17(火) 02:51:28.32ID:b30KLGb30094デフォルトの名無しさん
2015/03/17(火) 03:05:03.26ID:t2ppCg0V0095デフォルトの名無しさん
2015/03/17(火) 03:11:27.51ID:Sby901wnゲッター/セッターという概念そのものが設計ミス
0096デフォルトの名無しさん
2015/03/17(火) 03:17:18.62ID:Vi/eJRXzinline 指定して、コードを書いておく
0097デフォルトの名無しさん
2015/03/17(火) 12:25:05.62ID:D7FiHOLw参照じゃなくてポインタはnullptrが普通にありえるかどうかかな。
0098デフォルトの名無しさん
2015/03/17(火) 12:40:05.23ID:tVRGZdcr0099デフォルトの名無しさん
2015/03/17(火) 12:42:17.16ID:VlE2ZkQf0100デフォルトの名無しさん
2015/03/17(火) 12:51:30.17ID:fdD6RiQU本当に結構いるから困る
全部書くのがルールだと思ってやがる
0101デフォルトの名無しさん
2015/03/17(火) 13:35:18.13ID:XYhjQqq+少なくとも内部データ構造丸裸にするゲッターは抽象が実装に依存する
0102デフォルトの名無しさん
2015/03/17(火) 15:09:22.39ID:9wYhQc5Tそういうの以外についても?
0103デフォルトの名無しさん
2015/03/17(火) 19:28:48.97ID:u03+oswxB b=A.GetB(); X.Use(b); → A.Accept(X){ B b; X.Use(b); }
0104デフォルトの名無しさん
2015/03/17(火) 19:40:38.77ID:V9Y5nR4b(2) そのあとそれらを丸ごと外に見せるためにゲッターを作る
(3) いつもそうやってクラスを作ってる
そういう行動パターンならまずいだろうな
0105デフォルトの名無しさん
2015/03/17(火) 19:46:02.32ID:V9Y5nR4bと忠告されて
それを受け入れて
日々の業務で配慮できる人は
職業プログラマの中の何人に一人いるというのか?!
0106デフォルトの名無しさん
2015/03/17(火) 19:53:35.11ID:02ciAWXGeclipseに付いてるメンバー変数からgetter,setterの自動生成の機能とか存在意義が解らんよね
0107デフォルトの名無しさん
2015/03/17(火) 20:05:43.00ID:b30KLGb3C#のプロパティとか、一見変数にアクセスしているように見えて実はメソッド呼び出しだったりするので、
最初は気持ち悪いと思ったんだけど、あれって実は、
セッター/ゲッターを書かなくい言い訳のために存在しているんだよね。
メンバ変数をパブリックで公開しておいて、
プロパティ化の必要が出たらプロパティに出来るっていう。
0108デフォルトの名無しさん
2015/03/17(火) 20:15:21.53ID:u03+oswx0109デフォルトの名無しさん
2015/03/17(火) 20:55:09.34ID:he3uyXd70110デフォルトの名無しさん
2015/03/17(火) 20:56:44.35ID:dX8V8eXl0111デフォルトの名無しさん
2015/03/17(火) 21:05:50.88ID:he3uyXd7それはね、そんな事に拘らない大人の人たち。君も早く童貞捨てて男になりなさい。
0112デフォルトの名無しさん
2015/03/17(火) 21:24:18.48ID:/0y2c5YQ後発言語だけたってそのあたりは上手だよな
リエンジニアリングのリスクさえなければ一気に普及しそうなんだが
俺も個人的にはC++よりはこっち使いたい
0113デフォルトの名無しさん
2015/03/17(火) 21:29:18.26ID:vq5GH1Dgaccessorはsetter含む定義と含まない定義があってな
0114デフォルトの名無しさん
2015/03/17(火) 21:52:40.02ID:R3SqHR4I例えばコレクションのカウントプロパティとか概念上そこにあるのが自然なプロパティなんていくらでもある
悪いのは何も考えずにセタゲタを拒否するやつと何も考えずにセタゲタ全部のフィールドに対して作るやつ
0115デフォルトの名無しさん
2015/03/17(火) 22:01:29.52ID:x4nvlXOr先にメンバ変数があって
後からゲッタセッタを足したらアウトだけどな
0116デフォルトの名無しさん
2015/03/17(火) 22:02:49.01ID:CGA6ytOR0117デフォルトの名無しさん
2015/03/17(火) 22:04:13.61ID:Fctsf0UDアクセサ == ゲッタ
アクセサ != セッタ
0118デフォルトの名無しさん
2015/03/17(火) 22:04:55.08ID:7rYotda60119デフォルトの名無しさん
2015/03/17(火) 22:09:07.60ID:iAsbPPSNそのあとプライベートメソッドを作って
最後にパブリックメソッドを足していくことを普通だとしてる人は
だいたい半分くらいいるから
両派はずっと相容れないよ
0120デフォルトの名無しさん
2015/03/17(火) 22:13:26.49ID:fdD6RiQUカウントを保持しない、または把握しないコレクション設計なんていくらでもあるじゃん
0121デフォルトの名無しさん
2015/03/17(火) 22:23:24.43ID:R3SqHR4I君は実にバカだな
そういう概念のコレクションならばそれらしくカウントプロパティをなくせば良い
ただそれだけのこと
適切なプロパティは善であることに揺るぎはない
0122デフォルトの名無しさん
2015/03/17(火) 22:28:42.46ID:Z3zuZFzt(B) 原則としてsetter/getterを作らない。例外的に稀に作る。
どっちがいい?
0123デフォルトの名無しさん
2015/03/17(火) 22:34:15.15ID:RTMNGUZk必要なら作ればいい
0124デフォルトの名無しさん
2015/03/17(火) 22:34:40.85ID:R3SqHR4I設計で吟味された適切なプロパティを作るだけ
原則などない
0125デフォルトの名無しさん
2015/03/17(火) 22:34:47.57ID:02ciAWXGそれだけ多いか少ないかなんてどうでもいいんだよ
0126デフォルトの名無しさん
2015/03/17(火) 22:53:38.53ID:7rYotda6どうやったらどう動くかってのがクラス設計でしょ。
で、データ構造が決まってくると。
getsetを必然としてしまうと、クラスの振舞とデータ構造が切り離せないじゃん。
0127デフォルトの名無しさん
2015/03/18(水) 00:13:21.55ID:24dY5kJQその実装がメンバ変数のgetterやsetterであるかはどうでもいい。
複雑な処理の計算結果だったり
それのmutableなキャッシュを返すとかでも
0128デフォルトの名無しさん
2015/03/18(水) 00:38:14.26ID:Z4+04rL5そんなのただの結果でしかないのだからもう少しちがうネーミングを求む。
隠蔽できてないじゃんと。
0129デフォルトの名無しさん
2015/03/18(水) 00:52:08.37ID:OuG/w9AN> 設計で吟味された適切なプロパティ
というのは、過去の実績としてメンバー変数の何割がそれに該当するくらいの存在比になる?
0130デフォルトの名無しさん
2015/03/18(水) 12:48:34.31ID:3T5MyfTZ支持。
0131デフォルトの名無しさん
2015/03/18(水) 20:44:08.00ID:h6vLXlXOセタゲタ用意するのは萎えるね。
0132デフォルトの名無しさん
2015/03/19(木) 00:02:03.88ID:01sO/RrAclass cLoadText
{
public:
cLoadText() : PI(3) {}
void Setting();
private:
//色々
vector <int> PI;
};
void cLoadText::Stting()
{
PI.resize(5);
}
このようにresizeすることが出来ません。
「配列は初期化子リストでのみ初期化できます」と出てしまいます。
resizeの仕方を教えて下さい
0133デフォルトの名無しさん
2015/03/19(木) 00:11:59.77ID:pYPIUQ8yコンパイル通るんだから隠さず全部張れ
0134デフォルトの名無しさん
2015/03/19(木) 00:15:04.16ID:01sO/RrAすみません
ありがとう御座います
0135デフォルトの名無しさん
2015/03/19(木) 01:35:08.96ID:noU2qMQu迷いが無くて、一々考えなくてよいから速い
途中で必要になって、置換して作ると、
かえって時間がかかるし、バグも出る
最初からクラスの本体内に、
inlineで定義しておけば、コスト0
0136デフォルトの名無しさん
2015/03/19(木) 01:54:09.95ID:YOg3jQUC0137デフォルトの名無しさん
2015/03/19(木) 02:16:07.81ID:noU2qMQuそりゃ、関心事のほとんどは、人間に対するものだよ
いかに実装・詳細を見せないか。
それらを見せると人は、色々と考えて、間違いを犯す!
まさに、*FILE なんてそう。
くわばらくわばら。実装・詳細に近寄るべからず!
ひたすら隠ぺいするのみ!
0138デフォルトの名無しさん
2015/03/19(木) 20:06:01.05ID:ygDVwDTU現実的にはそんなことはないような。
考えなくて済む利点を言うなら、デフォルトで書かないというのが間違いないね。
0139デフォルトの名無しさん
2015/03/19(木) 23:10:24.61ID:xsGoZORT> setter/getter は、無条件に全メンバ、作る方が、
> 迷いが無くて、一々考えなくてよいから速い
今は何割くらいがそちらの派閥なの?
0140デフォルトの名無しさん
2015/03/20(金) 00:35:53.57ID:kFbLT/qSそこまで愚かな方針がたとえあったとしても続くわけがない。
0141デフォルトの名無しさん
2015/03/20(金) 01:15:14.54ID:bGDqKCOV仕様が出来る頃には実装もテストも終わってます。
( ̄ー ̄)ドヤッ
0142デフォルトの名無しさん
2015/03/20(金) 05:05:59.33ID:dOiGdIE8get_a { return 0; }
一般的にはテスト駆動開発で、
ひとまずコンパイルが通るように、スタブから作っておく
これでひとまず動くから、客の要望も聞ける。
メンバ変数などの詳細は後
0143デフォルトの名無しさん
2015/03/20(金) 09:07:31.87ID:IjoHJbl90144デフォルトの名無しさん
2015/03/20(金) 14:24:27.22ID:+Z7yaCvp実装がとても難しくて、その実現が最優先な場合、それはありだと思う。
0145デフォルトの名無しさん
2015/03/20(金) 15:07:04.79ID:bD2AVuY9中学生レベルの話をしてるのか?
0146デフォルトの名無しさん
2015/03/20(金) 15:18:37.09ID:OqdH58/sパブリックの設計を後回しにすることを正当化できるほどの難しい実装って具体的に何を実装するときですか?
0147デフォルトの名無しさん
2015/03/20(金) 15:48:08.81ID:p3Xq9eSj0148デフォルトの名無しさん
2015/03/20(金) 17:36:32.96ID:che7vf9K0149デフォルトの名無しさん
2015/03/20(金) 17:52:47.00ID:+Z7yaCvp0150デフォルトの名無しさん
2015/03/20(金) 18:05:23.46ID:ieC2O0gO具体的に何のコード?
0151デフォルトの名無しさん
2015/03/20(金) 19:20:14.19ID:+Z7yaCvp言えないけど一種のシミュレーション。
必要なデータは参照できてる状態で、自然なインタフェースとしてはcalcメソッド一発なんだけど、多段に分けて制御を途中で返すプログラムができてきた。
複雑さの問題と資源的な問題で、そうせざるを得ないと判断したが、インタフェースとしては当初の想定とは異なるものになった。
まあ>>145さんにとっては中学レベルの問題でしょうがね。
0152デフォルトの名無しさん
2015/03/20(金) 19:49:46.66ID:UWqpI5yE> インタフェースとしては当初の想定とは異なるものになった。
当初に想定してんじゃん
実装終えてからインターフェースの設計をする実例になってないし
0153デフォルトの名無しさん
2015/03/20(金) 19:58:45.01ID:kFbLT/qS0154デフォルトの名無しさん
2015/03/20(金) 20:00:27.00ID:69NtnG64最初からインターフェース無視して作るとかはないだろ。
0155デフォルトの名無しさん
2015/03/20(金) 20:08:43.90ID:kEq90xmYこのインターフェースに合うように作ってくださいと外部に依頼して
分かりましたそれで作りますと仕事を請け負おうわけでしょ?
納品する際に実装の難しさを理由にインターフェースは違っていますなんて言ったら
検品通らないですよ
0156デフォルトの名無しさん
2015/03/20(金) 20:22:41.27ID:Daap3Bvcそゆこと
>>155
業務系アプリかなんかのプログラマーの人?
0157デフォルトの名無しさん
2015/03/20(金) 21:26:43.40ID:hI8+B7Y0「とても難しくて」の難しさが伝わってこないんですけど
プログラミング始めて何年くらいの方なんですか?
0158デフォルトの名無しさん
2015/03/20(金) 21:31:35.74ID:kFbLT/qS>>151に書いてあることで想像できない?
プログラミングの難しさではなく、問題そのものが難しい場合だね。
0159デフォルトの名無しさん
2015/03/20(金) 21:32:12.44ID:8sMOXdGrアルゴリズムから考案しなきゃならないような、
とても難しいプログラムを開発した事無いのか?
0160デフォルトの名無しさん
2015/03/20(金) 21:33:41.99ID:g2iYv7QR0161デフォルトの名無しさん
2015/03/20(金) 21:38:51.88ID:kFbLT/qS自然なインタフェースはだいたい事前に思い浮かぶし、その通りにできれば何も悩まない。
厳密な解が求まらないとか、現実的な時間内に解けないとか、どういう制約が出てくるか、それをどう回避できるかとかは
実装してみないとわからないがけっこうある。
そういうときは「妥協したインタフェース」になるんだよ。どう妥協すべきかなんて事前に計算でないだろ?
0162デフォルトの名無しさん
2015/03/20(金) 21:52:06.18ID:69NtnG64そもそも、数値解析をやるということは客に納品する職業プログラマじゃなくて自家用だし、それで破綻はしない。
0163デフォルトの名無しさん
2015/03/20(金) 21:55:54.93ID:8R4gJpo3具体的にどのようなものが該当?
0164デフォルトの名無しさん
2015/03/20(金) 22:00:53.80ID:en+bkcOB> インターフェース変えようとか普通にある。
変えればいいじゃん
変えるなという話は出てないし
インターフェース定めてそれに従って実装する
インターフェースの問題点が発覚したら新しいインターフェースを定める
新しく定められたインターフェースに従って実装する
これでいいじゃん
実装に依存してインターフェースを設計することを正当化する理由として「変わるから」は使えないよな?
0165デフォルトの名無しさん
2015/03/20(金) 22:03:54.72ID:8t27nLZP仕事でやるなよ
そのうち刺されるぞ
0166デフォルトの名無しさん
2015/03/20(金) 22:12:18.95ID:kFbLT/qSインタフェースを変える変えないではなく、インタフェースを後決めにすることについての是非。
0167デフォルトの名無しさん
2015/03/20(金) 22:14:32.67ID:7R8SYIun・開発が落ち着いたらインターフェイスを整える
なら別にいい
0168デフォルトの名無しさん
2015/03/20(金) 22:19:29.65ID:F6uSjiv/インターフェース仕様に従わないものを勝手に作って
土壇場まで言わないんだよな
0169デフォルトの名無しさん
2015/03/20(金) 22:45:10.74ID:8sMOXdGr顔認証
0170デフォルトの名無しさん
2015/03/20(金) 23:45:12.21ID:Jj6lQhtWいつの間にか話変わってた?
0171デフォルトの名無しさん
2015/03/20(金) 23:59:08.21ID:5AkEDrBFメンバー毎に作るのは
まずメンバーができて
そのあとメンバーに合わせてインターフェースができることになるのでは?
0172デフォルトの名無しさん
2015/03/21(土) 00:47:15.31ID:+cCVLyHf手続きを公開しておけば変数単体を参照する需要ってあんまりないと思うんだけど。
配列見せろとかは多少目をつむるけど。
クラスが仕事だ。って感じやね。俺の場合。
0173デフォルトの名無しさん
2015/03/21(土) 01:59:58.45ID:wTPdkcAS全メンバpublicだし、細々した短いメソッドも作らん。メンバ変数に直接アクセスしてガシガシ。
そっちの方が実装するのが断然早い。
一人でやってるからできる芸当だな。うらやましいだろ。
プログラミングなんて職業にしても何も楽しいことないと思うね。
自分が思うように気ままに書いたほうが絶対楽しい。
0174デフォルトの名無しさん
2015/03/21(土) 02:12:27.71ID:2Cfhk+vt0175デフォルトの名無しさん
2015/03/21(土) 03:15:42.83ID:UFfQG/bW1人で作ってるとお前みたいなゴミプログラマーに邪魔されなくていいよね
0176デフォルトの名無しさん
2015/03/21(土) 05:28:54.71ID:FH7eF9wx全メンバグローバルだし、細々した短いメソッドも作らん。グローバル変数に直接アクセスしてガシガシ。
そっちの方が実装するのが断然早い。
一人でやってるからできる芸当だな。うらやましいだろ。
プログラミングなんて職業にしても何も楽しいことないと思うね。
自分が思うように気ままに書いたほうが絶対楽しい。
0177デフォルトの名無しさん
2015/03/21(土) 05:39:53.81ID:+cCVLyHf0178デフォルトの名無しさん
2015/03/21(土) 05:53:50.49ID:ayQ8HKxKpublicやグローバル上等の方が効率的に開発できるんだよな。
0179デフォルトの名無しさん
2015/03/21(土) 06:04:26.82ID:qnP8SmNL難しいアルゴリズムやってるんだぞ、ってどや顔したい構ってちゃんがいただけ
気にしなくていいよ
0180デフォルトの名無しさん
2015/03/21(土) 06:48:23.51ID:pHXUpzh9バカ高いライセンス料金とかも会社負担だし
あと客相手だと要求自体が厳しいからスキルアップしやすい
0181デフォルトの名無しさん
2015/03/21(土) 06:54:53.47ID:VwMzQXBk例えば座標を保持するとして、中身を直交座標で作ってたけど極座標でデータを保持した方が良いとなったとき、
getsetで実装データ直いじりにしてたら呼び出し側も全部書き換えだわな。
データのアクセスと実装が分離してた方がいいよね。
そういう話。
0182デフォルトの名無しさん
2015/03/21(土) 07:54:44.50ID:siPVs/24いや、その場合はget,set経由にしているのが生きる例なのでは?
0183デフォルトの名無しさん
2015/03/21(土) 08:04:04.44ID:ajuKLkKmそういう意味ではgetter/setterで分離されているだろ。
データメンバと一対一対応すること自体が目的じゃないんだから、その状態を維持するために
わざわざインターフェースを変更したりしないだろう。
0184デフォルトの名無しさん
2015/03/21(土) 08:09:28.65ID:33k4bkbjコードを書くときは、誰かが読むということを考えながら書く癖をつけたほうがいいぞ。趣味で書いてたとしても、時間が経つと人はやったこと忘れるから。
0185デフォルトの名無しさん
2015/03/21(土) 09:04:57.36ID:tIU7X1pCどんな汚い文でも「日本でおk」なんていわれることはあっても読めないことはないのだから
0186デフォルトの名無しさん
2015/03/21(土) 09:34:51.56ID:NjRKtIY1getterで文字列クラスへのconst参照を外に見せてたら
文字列クラスを別のクラスに変えようとしても難しくなるよな?
0187デフォルトの名無しさん
2015/03/21(土) 09:37:29.49ID:tIU7X1pC0188デフォルトの名無しさん
2015/03/21(土) 09:42:23.82ID:leCA2lLqstring返すようにすりゃ
実質問題でないだろ。
それも嫌なら内部にstringも
持っておけば良い。
0189デフォルトの名無しさん
2015/03/21(土) 09:48:07.07ID:DIvWRuL5そうじゃないクラスならそうじゃない。
あたり前か。
コンテナ的(悪く言えばオブジェクトの寄せ集め)なクラスしか作ったことない初学者だと、
「要素にアクセスできなきゃ意味ないし、getter/setter必要でしょ?」
と思い込んでしまうのかもしれない。
0190デフォルトの名無しさん
2015/03/21(土) 09:49:17.97ID:kqW1gpJ+同じ内容でも、ぐちゃぐちゃの文は読みにくく意味を取るのに余計な時間が掛かるし、
矛盾やら抜け漏れが起こりやすく、それが存在するかどうかも分かり難い。
要するにバグを含む可能性が高く、バグを直すのもそのぐちゃぐちゃの文に
手を入れないといけないとかメンテ性も悪いってことだな。
0191デフォルトの名無しさん
2015/03/21(土) 09:53:39.63ID:DIvWRuL5要素アクセスのことが最大の関心事なってしまうのかもしれん。
0192デフォルトの名無しさん
2015/03/21(土) 10:07:24.24ID:eyl+kM++set_Itemとget_Itemをメンバに追加して参照を返すop []とは決別するんだ
きっとcppの世界も安全で美しい世界になるよ
0193デフォルトの名無しさん
2015/03/21(土) 10:10:12.71ID:nP6je3/T0194デフォルトの名無しさん
2015/03/21(土) 10:14:13.18ID:HlA0yPUFカプセル化の失敗
実装依存インターフェース設計
この2点が問題点として挙げられてるわけだな
他にないの?
0195デフォルトの名無しさん
2015/03/21(土) 14:23:38.37ID:ayQ8HKxK0196デフォルトの名無しさん
2015/03/21(土) 16:19:49.11ID:CQIci0mN何と比べて何がまわりくどい?
0197デフォルトの名無しさん
2015/03/21(土) 21:05:22.24ID:wTPdkcASあとでプロパティに書き直せるんだぜ?
自動実装プロパティもあるから、
public int member { get; set; }
これだけでsetter/getterが用意されるんだぜ?
C++11にこういった仕組みがあれば良かっただけの話。
何故入らなかったんだろうね。
0198デフォルトの名無しさん
2015/03/21(土) 21:15:06.83ID:H4vnCtpeThink different? by 2ch.net/bbspink.com
0199デフォルトの名無しさん
2015/03/21(土) 21:17:03.16ID:Wq5Rp15ZThink different? by 2ch.net/bbspink.com
0200デフォルトの名無しさん
2015/03/21(土) 23:20:45.67ID:fi0av/ji0201デフォルトの名無しさん
2015/03/21(土) 23:29:26.96ID:/1WUKsZgそれはC#の欠点
0202デフォルトの名無しさん
2015/03/22(日) 00:30:02.17ID:w9cAhcxlpublicで変数を公開するのと比べて。
0203デフォルトの名無しさん
2015/03/22(日) 06:36:44.03ID:FADneXJjC++はリフレクションが無いんだからせめて
public virtual int member {get;set;} とか
public int member {get; private set ;}
にしないと意味無くね?
0204デフォルトの名無しさん
2015/03/22(日) 10:48:32.65ID:EAPeSLENその正しい設計とやらが品質や生産性に与える影響の定量的データって存在するの?
0205デフォルトの名無しさん
2015/03/22(日) 10:53:20.85ID:PKxDsRUX仕様自体がなんでもありのカオス過ぎる。
0206デフォルトの名無しさん
2015/03/22(日) 11:13:05.90ID:9ijd/r0x信者の話だろ
俺の回りにはいないからよく知らんけど
0207デフォルトの名無しさん
2015/03/22(日) 11:57:54.47ID:UD5BMgeo境界を動かしたくなっても大変だ
C++ だと境界があっても侵入してくる友達とかもいるしなあ
0208デフォルトの名無しさん
2015/03/22(日) 11:59:13.94ID:FHqRUY0cそういうやつはstd::pairのfirstメンバとsecondメンバもアクセッサ用意しろとか言うのかな?
0209デフォルトの名無しさん
2015/03/22(日) 12:17:43.18ID:EAPeSLEN定量的データは存在するの?
0210デフォルトの名無しさん
2015/03/22(日) 12:19:03.03ID:CvAUvH6J0211デフォルトの名無しさん
2015/03/22(日) 12:25:19.22ID:B74/Dr8Mカプセル化しろだとか
実装依存でインターフェース作るなだとか
それらは言語非依存の話だろ
0212デフォルトの名無しさん
2015/03/22(日) 12:29:28.68ID:a4d1QeSfコンテナは特例だろ
コンテナは全クラスの中の一割にも満たないだろうし
0213デフォルトの名無しさん
2015/03/22(日) 13:19:59.45ID:f09FMk3Sうん、そうだね。
上の方でも書いたが、クラス入門記事を書いたサイトなんかでvectorを例にあげたものが結構多くて、ミスリードさせてる面があると思う。
コンテナを入門例にする弊害はもうひとつあるげど。
0214デフォルトの名無しさん
2015/03/22(日) 14:24:44.71ID:KqEpS/vgなんでお前らはキャメルケースなの?
標準をリスペクトしろよ
0215デフォルトの名無しさん
2015/03/22(日) 14:33:07.47ID:CvAUvH6J0216デフォルトの名無しさん
2015/03/22(日) 20:42:54.20ID:MxnNmn3Iややこしいので実装に非常に苦労するのと、その時はどうにか理解できて動かせたとしても、
あとで見直すと何の処理しているのか思い出すのに時間がかかります。
それなら、部分特殊化などはせずに、それぞれの型に応じて、似たような関数を必要な個数だけ
書き下すほうが私には分り易いのですが、みなさんはどうでしょうか?
0217デフォルトの名無しさん
2015/03/22(日) 20:51:01.26ID:+PdyLyEl0218デフォルトの名無しさん
2015/03/22(日) 21:17:57.52ID:85Ajb4qCテンプレートの利用は最小限で済むようにしっかりと設計をしましょう
0219デフォルトの名無しさん
2015/03/22(日) 21:21:40.65ID:st2tKls6そりゃ科学技術を悪魔の所業だと恐れる未開人の反応
0220デフォルトの名無しさん
2015/03/22(日) 21:23:06.87ID:OTwiJSdy0221デフォルトの名無しさん
2015/03/22(日) 21:26:54.53ID:+PdyLyEl抽象化ってそういうもんだし、型を用途別に認識してるような人間には読みにくいと思う。
もっと透過的に総合的にTYPEとして認識していれば読みやすい。
0222デフォルトの名無しさん
2015/03/22(日) 21:35:56.06ID:LZ22PPBw業務で書いたコードは誰が保守するかわかりません
ユーザーの事を真摯に考えるならば、テンプレートの多用は避けましょう
事実として設計が良くできたシステムではテンプレートの利用はそれほど多くなりません
逆に言えばテンプレートを多用していると、設計が雑なのではないかと疑ってよいでしょう
基本的なオブジェクト志向が出来ていれば実装する言語はなんでも構わないはずです
UMLで記述された設計書がC++でしか実装出来ないものになるでしょうか?
他の言語にはC++のテンプレートはありません
他の言語で実装できるものになぜテンプレートを使う必要があるのでしょうか
0223デフォルトの名無しさん
2015/03/22(日) 21:39:47.48ID:+PdyLyEl逆にウィローの密度が上がって上級者向けになる。
個人的には、組み込み型をそのままテンプレートクラスにしたものが欲しい。
継承してoperator*実装するわ。色々イテレーションさせるために。
0224デフォルトの名無しさん
2015/03/22(日) 21:44:01.30ID:st2tKls6特に大がかりなプログラムになれば成る程ね。
規格もコンパイラやライブラリさえどうにかなるなら、その時点でなるべく新しい方にしておいた方がいい。
記述性もメンテ性も上がるし、諸々のサポートも長く続くしね。
0225デフォルトの名無しさん
2015/03/22(日) 21:45:05.48ID:FHqRUY0cレベルの低い人はいるが、それと共に生きていくか、切り捨てて競争に勝ちにいくのか。
会社によるとしか言いようがないな。
0226デフォルトの名無しさん
2015/03/22(日) 21:47:00.39ID:+PdyLyEl頑張れ明日のプログラマー。
0227デフォルトの名無しさん
2015/03/22(日) 21:51:40.37ID:st2tKls6つまりc++の殆どの標準ライブラリは設計の良くできていない糞と
まあ一部本当に糞な部分が存在するのは確かだが
0228デフォルトの名無しさん
2015/03/22(日) 22:23:27.08ID:MxnNmn3Iもう少し簡素に出来ないのかなと思います。
0229デフォルトの名無しさん
2015/03/22(日) 22:25:20.60ID:Es/fnACychar str[10];
str="ABC";
これがダメな理由が分からないです。
静的領域に'A','B','C'という配列が出来て、"ABC"という文字列は配列の先頭アドレスを示すから
strという配列の先頭アドレスに、"ABC"を格納したアドレスが入るということではないのでしょうか?
本にはスカラやら色々書いてますがいまいち理解できませんでした。
0230デフォルトの名無しさん
2015/03/22(日) 22:27:18.64ID:XbO38xnHstrはその場所を示してるだけで、後で変更不可能
0231デフォルトの名無しさん
2015/03/22(日) 22:31:21.35ID:Es/fnACy言われてみればそのとおりですね。 ありがとうございます。なぜこんなことで数時間悩んでたんだ・・・
0232デフォルトの名無しさん
2015/03/22(日) 22:32:46.32ID:+PdyLyEl0233デフォルトの名無しさん
2015/03/22(日) 23:07:06.07ID:XatTIShe限度って物があると思う。
0234デフォルトの名無しさん
2015/03/22(日) 23:15:40.78ID:+PdyLyElconstexper出来たのでSFINAEは減ってくと思う。
0235デフォルトの名無しさん
2015/03/23(月) 00:27:31.31ID:M3nkBPPX最大の問題だと思う。
templateとかtypenameとか似たよな名前が沢山出てくるのも変だし、
typenameでもclassでもいいとかも変だし、
特殊化する時に構造体使うのも変だし、全てが変だ。
テンプレートという考え方自体は良いと思うが実装のしかたに難があるなあ。
0236デフォルトの名無しさん
2015/03/23(月) 00:34:57.95ID:nQj6e6EY定型文だからそれこそ、そういう型だと思うべきでは?
0237デフォルトの名無しさん
2015/03/23(月) 01:09:02.68ID:jYOEZXcwtypename前置みたいな糞ルールを片付けてくれるんならまだしも。
あとexport廃止も何だかねえ。
翻訳フェーズが再帰的にループするのは制御構造として別に汚くないのに。
0238デフォルトの名無しさん
2015/03/23(月) 01:43:52.38ID:NupNPfA+設計ミスか黒魔術かもしれない
0239デフォルトの名無しさん
2015/03/23(月) 02:09:57.00ID:mg7QYnuCC++イディオムについて行けないなら自分の知性を疑え
0240デフォルトの名無しさん
2015/03/23(月) 05:44:33.15ID:xwACqlutconst char * s1 = "ab";
const char * const s2 = "cd";
char s3[] = "ef";
ここで、s1, s2 は変数だが、s3 は変数ではなく!、
配列の先頭アドレスの別名
ちなみに、書き込みできない rodata(ReadOnly)領域には、
ab, cd, s2
書き込みできる data 領域には、
ef, s1 が入る
また、書き込みできない rodata/text 領域は、
ファイルにデータがあるため、
スワップ領域に書き込まれないし、
同じアプリの複数プロセスで、
データが共有されるため、エコであり、
なるべく、const にした方がよい
0241デフォルトの名無しさん
2015/03/23(月) 06:23:51.77ID:XTpYB3rUhttp://7ujm.net/linux/1.html
を見てコンパイルしていますが上手いこといきません。
ソースは次のとおりです。
0242デフォルトの名無しさん
2015/03/23(月) 06:24:51.10ID:XTpYB3rU# cat test.cpp
#include <stdio.h>
class test{
public :
void out(){
printf("test test");
}
};
int main(char*args []){
test t;
t.out();
getchar();
return 0;
}
# gcc -o test.exe test.cpp
test.cpp:10:5: 警告: ‘int main(char**)’ の第一引数は ‘int’ であるべきです [-Wmain]
int main(char*args []){
^
test.cpp:10:5: 警告: ‘int main(char**)’ は 0 個または 2 個の引数のみとります [-Wmain]
/tmp/ccMmfykR.o:(.eh_frame+0x4b): `__gxx_personality_v0' に対する定義されていない参照です
collect2: エラー: ld はステータス 1 で終了しました
# g++ -o test.exe test.cpp
test.cpp:10:5: 警告: ‘int main(char**)’ の第一引数は ‘int’ であるべきです [-Wmain]
int main(char*args []){
^
test.cpp:10:5: 警告: ‘int main(char**)’ は 0 個または 2 個の引数のみとります [-Wmain]
何が原因なのでしょうか??
0243デフォルトの名無しさん
2015/03/23(月) 06:31:49.23ID:91/eC9il0244デフォルトの名無しさん
2015/03/23(月) 06:33:26.87ID:nQj6e6EY<type> main(void);
<type> main(int,char**);
であると厳密に規定されていたと思う。
char**単体では何個の引数が入力されたか知ることは難しい。
0245デフォルトの名無しさん
2015/03/23(月) 07:31:35.40ID:U7lhbTJwひとつ抜けとる
0246デフォルトの名無しさん
2015/03/23(月) 07:34:25.08ID:nQj6e6EY0247デフォルトの名無しさん
2015/03/23(月) 07:53:36.32ID:QGdOu4B90248デフォルトの名無しさん
2015/03/23(月) 07:56:05.98ID:nQj6e6EY0249デフォルトの名無しさん
2015/03/23(月) 08:43:56.61ID:jYOEZXcwgccのアチラ製らしい尊大な言いぐさで242が混乱した、
本来なら「対応していません」と言う「べき」だった、
そういうことだ。
0250デフォルトの名無しさん
2015/03/23(月) 08:52:32.61ID:h9PpfwFWここはC/C++スレではなくC++スレ
0251デフォルトの名無しさん
2015/03/23(月) 09:15:36.21ID:U7lhbTJw環境変数
0252デフォルトの名無しさん
2015/03/23(月) 09:22:50.40ID:0V7gGH5Jそんな、うんこサイトで勉強するな。
0253デフォルトの名無しさん
2015/03/23(月) 09:28:02.11ID:nQj6e6EYあー、パースしないといけないから結構めんどくさいな。
Linuxの場合は環境変数のハッシュがあるんだっけか。
windows使ってるけどそんなことしないからなぁ。
0254デフォルトの名無しさん
2015/03/23(月) 09:33:33.74ID:RnMSimPVデタラメが多すぎてまるで狂った人のようになってる
0255デフォルトの名無しさん
2015/03/23(月) 09:39:51.18ID:0V7gGH5Jお里が知れるな
0256デフォルトの名無しさん
2015/03/23(月) 09:49:40.19ID:h9PpfwFW0257デフォルトの名無しさん
2015/03/23(月) 11:39:33.90ID:g/PuNzsZ二つの処理を共通化してしまうと、なにか問題でもありますか?
コピーコンストラクタでは *this = rhs; とだけ書いてしまって、
operator=だけにメンバの代入処理を記述するという方法です。
0258デフォルトの名無しさん
2015/03/23(月) 11:51:57.29ID:octrM0VVやるべきことはそれの逆だ。
0259デフォルトの名無しさん
2015/03/23(月) 11:59:13.30ID:g/PuNzsZすみません、ちょっとよくわからないのですが、
operator=からコピーコンストラクタを呼び出せるということですか?
0260デフォルトの名無しさん
2015/03/23(月) 12:03:23.29ID:/01WT41oはコピーコンストラクタが必要でしょ。
=の演算子のオーバーロード時にコピーコンストラクタを使いたければどうぞ。
0261デフォルトの名無しさん
2015/03/23(月) 12:04:45.20ID:/01WT41o関数にオブジェクトをコピー
↓
関数の引数を通してオブジェクトをコピー
0262デフォルトの名無しさん
2015/03/23(月) 12:12:34.45ID:h9PpfwFWそのるーるに馴染まなければ
代替"言語"を提示しましょ
0263デフォルトの名無しさん
2015/03/23(月) 12:16:08.78ID:+XT1kww+0264デフォルトの名無しさん
2015/03/23(月) 12:38:38.58ID:h9PpfwFW0265デフォルトの名無しさん
2015/03/23(月) 12:55:42.31ID:octrM0VVfoo& operator =(const foo& src)
{
foo tmp(src); //コピーコンストラクタ
tmp.swap(*this); //情報入れ換え
return *this;
}
というイディオム
0266デフォルトの名無しさん
2015/03/23(月) 13:09:01.60ID:g/PuNzsZfooクラスにswap(const foo& src)というメンバ関数を作成して、
そこにメンバの代入処理を記述するということですか?
そうなると、結局はコピーコンストラクタと同じような代入処理が
別のメンバ関数に存在することになりませんか?
0267デフォルトの名無しさん
2015/03/23(月) 14:17:51.12ID:octrM0VV代入ではなく入れ換え(swap)。
たとえば大きな配列をぶら下げたポインタだとしても、個々の要素を相互コピーなどせずポインタ値だけすげ替えればよい。
std::swapとかでぐぐってみれば?
0268デフォルトの名無しさん
2015/03/23(月) 14:18:47.27ID:octrM0VVそのswapにはconstはダメ
0269デフォルトの名無しさん
2015/03/23(月) 19:39:09.35ID:jYOEZXcw3.6 Start and termination[basic.start]
3.6.1 Main function[basic.start.main]
2 An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return type of type int, but otherwise its type is implementation-defined.
0270デフォルトの名無しさん
2015/03/23(月) 22:13:35.52ID:KsjCjkkHポインタじゃないメンバは結局コピーなんだから>>257のやりたいことに対する回答としては的外れだな。
そもそも>>265のイディオムは、Effective C++では、他のオブジェクトをポインタで保持するクラスで自己
代入の場合でも安全にコピーする方法として紹介されているものだし。
ちなみに>>257の質問については、コピーコンストラクタからoperatoe=()を呼ぶのもその逆も間違いで、
共通部分があればそれをprivate関数にして両者から呼ぶようにするべきと説明されている。
0271デフォルトの名無しさん
2015/03/23(月) 22:14:58.99ID:fVAELCtW0272デフォルトの名無しさん
2015/03/23(月) 22:39:04.03ID:KsjCjkkH0273デフォルトの名無しさん
2015/03/23(月) 22:55:22.72ID:k7XREfiY>ポインタじゃないメンバは結局コピー
std::vectorを値で持ってる場合とかは?
>自己代入の場合でも安全にコピーする方法
自己代入と言うより例外安全性の問題でしょ?
あと、Effective C++じゃなくてExceptional C++だったと記憶している。
0274デフォルトの名無しさん
2015/03/23(月) 23:00:57.34ID:2qhNLH+n0275デフォルトの名無しさん
2015/03/23(月) 23:05:30.55ID:k4Iv9Yid例外安全性に対する認識もないんだろうな
その辺りの前提が無いとcopy & swapは回りくどく無駄な処理に見えても不思議ではない
0276デフォルトの名無しさん
2015/03/23(月) 23:25:28.43ID:qYKKxyMs0277デフォルトの名無しさん
2015/03/23(月) 23:26:08.37ID:qYKKxyMs0278デフォルトの名無しさん
2015/03/24(火) 00:06:03.95ID:ci+F9ib30279デフォルトの名無しさん
2015/03/24(火) 07:00:15.11ID:OlMq8+E5結局>>265でもコピーコンストラクタとコピー代入のコードの共有にはならない。
0280デフォルトの名無しさん
2015/03/24(火) 09:09:31.31ID:I6wG2MHBコピーコンストラクタからoperator=を呼ぶのではなく、
Copyのような名前のメンバ関数を作っておいて、コピーコンストラクタからもoperator=からも
Copy(rhs);を呼ぶようにするということですね。
たしかにこれなら、コピーする処理のソースコードは一つにできそうです。
0281デフォルトの名無しさん
2015/03/24(火) 10:49:21.59ID:y8D2IAAgoperator=からCopy(rhs)を呼ぶようにするなら、その関数内でメンバ変数への値の代入を順次やっていくように思えるんだけど。
x_ = a;
y_ = b;
z_ = c;
みたいにさ。
その問題点は分かってる?
0282デフォルトの名無しさん
2015/03/24(火) 11:49:12.70ID:mcQ2KYMH> たしかにこれなら、コピーする処理のソースコードは一つにできそうです。
くだらない手抜きを嬉しいと思う考え捨てないと危ないぞ
0283デフォルトの名無しさん
2015/03/24(火) 12:56:58.37ID:XLDH32TT0284デフォルトの名無しさん
2015/03/24(火) 16:07:13.05ID:Y088m5Hxあいつの場合は例外安全を身に付けるのが先
手抜き重視すると
「全メンバーに対する処理をswapとコピーコンストラクタの両方に書くのメンドクセ。
コピーコンストラクタがコピー代入を呼ぶようにすれば一ヶ所で済むんじゃね?」
に落ち着く
0285デフォルトの名無しさん
2015/03/24(火) 16:32:34.89ID:CAAyuzcN0286デフォルトの名無しさん
2015/03/24(火) 19:50:57.45ID:y8D2IAAgまあそれでも代入演算子を定義するなら同じパターンが必要になるけどね。
実は必要ないってことがほとんど。
上でgetter/setterの話出てたけど、オレは基本代入演算子はdeleteだ。
0287デフォルトの名無しさん
2015/03/24(火) 22:09:19.49ID:HjFfiljbって低能がいるようだな
0288デフォルトの名無しさん
2015/03/24(火) 22:29:55.90ID:rpeH1el60289デフォルトの名無しさん
2015/03/24(火) 22:35:21.24ID:CAAyuzcN何言ってんだ
0290デフォルトの名無しさん
2015/03/24(火) 22:41:25.26ID:rOFSYfDv同じコード2箇所に書いて片方だけ修正し忘れとか嫌
0291デフォルトの名無しさん
2015/03/24(火) 22:46:37.72ID:rpeH1el6おまえ下らない手抜きしてんのか?
どうしようもない奴だな。
0292デフォルトの名無しさん
2015/03/24(火) 22:49:20.96ID:rOFSYfDv0293デフォルトの名無しさん
2015/03/24(火) 22:52:48.14ID:CAAyuzcN0294デフォルトの名無しさん
2015/03/24(火) 22:55:18.39ID:rpeH1el6>>282のマネをしてみただけ。
0295デフォルトの名無しさん
2015/03/24(火) 22:56:41.14ID:rpeH1el6許してください。
0296デフォルトの名無しさん
2015/03/24(火) 23:00:08.42ID:rOFSYfDv0297デフォルトの名無しさん
2015/03/24(火) 23:01:42.41ID:07528NRIこの流れで出てる手抜き例は>>257だけかと
違ってたら他は知らん
0298デフォルトの名無しさん
2015/03/24(火) 23:10:39.85ID:rpeH1el6コピーコンストラクタは失敗しても構わない。だから operator = に依存しても別に構わない。
だけど operator = それ自体は例外安全を考慮する必要がある。(*thisの整合性を守らなければならない)
そうすると・・・
なんか循環してない?
0299デフォルトの名無しさん
2015/03/24(火) 23:12:50.12ID:OlMq8+E5逆に突っ込まれたのを取り繕おうとしてグダグダになるパターンのような。
0300デフォルトの名無しさん
2015/03/24(火) 23:23:37.91ID:31iHMNlfT x,y,z;
void swap(T&r){std::swap(x,r.x);std::swap(y,r.y);std::swap(z,r.z);}
C1(const C1&r):x(r.x),y(r.y),z(r.z){}
C1&operator=(const C1&r){C1 tmp(r);swap(tmp);return*this;}
};
template<typename T> struct C2 { // 手抜き
T x,y,z;
C2(const C2&r){*this=r;}
C2&operator=(const C2&r){x=r.x;y=r.y;z=r.z;return*this;}
};
0301デフォルトの名無しさん
2015/03/24(火) 23:25:48.60ID:CAAyuzcNメンバーに可変長の配列欲しければstd::vector
コピー不可なポインタ持ちたければstd::unique_ptr
moveにも自動で対応してくれる
0302デフォルトの名無しさん
2015/03/24(火) 23:27:30.38ID:X8yhOJK8C1はネットの世界で一部の例外安全厨だけが言ってる
そんな回りくどいこと実務でやってたら干されたりクビになったり蹴られたり刺されたりするからやめとけよ
0303デフォルトの名無しさん
2015/03/24(火) 23:44:44.24ID:rpeH1el6あー
>>265がデタラメだから?
0304デフォルトの名無しさん
2015/03/24(火) 23:55:30.28ID:rpeH1el6すいませんが教えてください。
自分が作ったんじゃないクラスがA B のふたつあって、
A a;
と
B b;
をメンバに持つときってコピー演算子はどうしてますか?
0305デフォルトの名無しさん
2015/03/25(水) 00:10:38.94ID:IfOZa4FKclass A : public Base {...};
class B : public Base {...};
std::vector< std::unique_ptr< Base > > objs;
objs.push_back( std::unique_ptr< A >( new A() ) );
objs.push_back( std::unique_ptr< B >( new B() ) );
異なるクラスを同一のコンテナに格納したくて抽象クラスを継承させる方法で試してみたのですが、純粋仮想関数が増えまくってやめてしまいました。
具体的にはコンテナに格納したオブジェクトの順番を管理したいのですが、何かうまい方法ありませんでしょうか。
0306デフォルトの名無しさん
2015/03/25(水) 00:24:56.55ID:GA9WsxhK何もしない
AかBがコピー禁止してるなら訳あっての事だろうから自動的にそれらをメンバーに持つクラスもコピー禁止
>>305
shared_ptrかweak_ptrで入れれば?
必要な所で派生の型で持っとく
0307デフォルトの名無しさん
2015/03/25(水) 00:37:14.42ID:1YXCDFuZスマポとか特殊なクラス以外でコピィ要らなくね?
どんな時に使うんだよ
0308デフォルトの名無しさん
2015/03/25(水) 00:37:54.83ID:IfOZa4FKdynamic_castして持っておくってこと?
dynamic_castって何となく抵抗あるんですよね。みんな普通に使ってるのかな。
0309デフォルトの名無しさん
2015/03/25(水) 00:40:32.91ID:GA9WsxhK違う
生成してshared_ptrに入れてそのまま持っとけばいいだろ
0310デフォルトの名無しさん
2015/03/25(水) 00:42:06.53ID:2VS3tjRnいや、AもBも別にコピーは禁止してないです。ただ例外発生の可能性はあり。
こいつらをメンバに持つクラスを作って、代入演算子も書かなきゃならないときのはなしです。
0311デフォルトの名無しさん
2015/03/25(水) 00:44:29.60ID:GA9WsxhKshared_ptr<A>をshared_ptr<void>に入れることが出来る。
順番を保持したいだけなら(それをどうするのか知らんが)std::vector<void>に突っ込めばいい
>>310
なんで代入演算子を書く必要があんの?
0312デフォルトの名無しさん
2015/03/25(水) 00:47:50.97ID:2VS3tjRn>なんで代入演算子を書く必要があんの?
問題のための問題です。
0313デフォルトの名無しさん
2015/03/25(水) 00:53:27.12ID:IfOZa4FK知らなかった!ありがとう。
いまパーサを書いててそのために順番が必要なんだ。
これで試してみます。
0314デフォルトの名無しさん
2015/03/25(水) 01:16:54.43ID:GA9WsxhKshared_ptr<Derived>から shared_ptr<Base>とか、キャストの必要ない方向へのポインタの変換なら出来る。
parserなら親子とか出てくるかもしれんが循環参照に気を付けなよ
0315デフォルトの名無しさん
2015/03/25(水) 08:25:13.60ID:Cs/cNnzy0316デフォルトの名無しさん
2015/03/25(水) 08:36:25.42ID:GA9WsxhK理由は?
voidポインタからキャストして使えと言ってるわけでは”ない”というのを理解して言ってるわけだよね?
0317デフォルトの名無しさん
2015/03/25(水) 08:56:10.92ID:Cs/cNnzyなんだこの理論
0318デフォルトの名無しさん
2015/03/25(水) 09:06:09.40ID:GA9WsxhKいやだからダメな理由言えよ
0319デフォルトの名無しさん
2015/03/25(水) 09:17:47.71ID:Cs/cNnzyパーサー用途と言ってんだからキャストして使わないなんて前提も無意味だな
0320デフォルトの名無しさん
2015/03/25(水) 09:23:28.73ID:qHyR6V3I手抜き厨と反手抜き厨のバトルばかり
0321デフォルトの名無しさん
2015/03/25(水) 09:27:55.13ID:GA9WsxhKよく知らない奴がアホに流されないようにshared_ptr<void>の有効な使い方の例が書かれたブログ記事置いとくよ
ttp://d.hatena.ne.jp/Cryolite/touch/20080122/p7
0322デフォルトの名無しさん
2015/03/25(水) 09:37:38.66ID:xvQRm8Zyうーん、>>281の質問に対して誰かが答えれば論点がクリアになると思うんだけどね。
自分としてはどっちの意見も100%いい悪いと断言できないと思う。
0323デフォルトの名無しさん
2015/03/25(水) 09:47:15.66ID:xvQRm8Zyああデストラクタ呼び出しですか。
目的は違うけどstd::functionがやってる技法使うやつ?
0324デフォルトの名無しさん
2015/03/25(水) 19:36:09.60ID:IhUE1Xultemplate<typename F>
void g( F f){
f();
}
//2
template<typename F>
void g(){
F f;
f();
}
1も2もあるのに
なぜ1がつかわれるのですか?
0325デフォルトの名無しさん
2015/03/25(水) 19:38:59.43ID:YRj0jYVL0326デフォルトの名無しさん
2015/03/25(水) 20:09:20.15ID:sC+pepL90327デフォルトの名無しさん
2015/03/25(水) 20:28:35.18ID:IATtsD4X0328片山博文MZ ◆T6xkBnTXz7B0
2015/03/25(水) 20:41:12.54ID:0It7vtDM0329デフォルトの名無しさん
2015/03/25(水) 20:49:46.76ID:CQ7NAuEEコストラクタに自由がないと困るよ
0330デフォルトの名無しさん
2015/03/25(水) 20:50:54.98ID:Dwma7Few0331デフォルトの名無しさん
2015/03/26(木) 14:16:39.05ID:9iu5R64g0332デフォルトの名無しさん
2015/03/26(木) 17:08:05.75ID:BDjvcE7V桁数分(n個)ループを回すような愚直な方法しか思い付きません。
任意の並び替えを実現したいのですが、「○桁目を右に△個ずらす」ようなアルゴリズムでも構いません。
それを何回かやれば任意のケースに対応できると思うので。
nは16まで、mは64までに限っても良いです。
0333デフォルトの名無しさん
2015/03/26(木) 17:40:04.67ID:4eocBIkUswap(C[x], C[y]);
0334デフォルトの名無しさん
2015/03/26(木) 18:10:22.30ID:DVfty8jF左シフトはN*2^M 右シフトはN/2^Mだよな。
これを一般化して、N*Radix^Mで左シフト N/Radix^Mで右シフト
出来そうじゃね?
0335デフォルトの名無しさん
2015/03/26(木) 18:15:03.52ID:DVfty8jF0336デフォルトの名無しさん
2015/03/26(木) 18:19:03.95ID:nSqXA52dn桁m進数表現クラスを作ってその桁を入れ替える、って素直にやるけど
0337デフォルトの名無しさん
2015/03/26(木) 18:25:41.64ID:BDjvcE7V0338デフォルトの名無しさん
2015/03/26(木) 18:26:10.15ID:4eocBIkUm < 2 ^ k となる最小のkを見つけて2進k桁の移動をする。
0339デフォルトの名無しさん
2015/03/26(木) 18:29:36.94ID:4eocBIkU各桁を一変数にいれたほうがいいな。
結局、数値を取り出そうとすると同程度のコストだ。
0340デフォルトの名無しさん
2015/03/26(木) 18:32:38.24ID:nSqXA52di桁の数字x_i = (x - (x / m^(i+1) ) * m^(i+1)) / m^i
^は指数演算 /は整数同士の割り算であまり切り捨て
i桁とj桁の入れ替えは
x = x + (x_i-x_j) * (m^j - m^i)
これで行けるかな?
0341デフォルトの名無しさん
2015/03/26(木) 18:46:41.53ID:DVfty8jF手抜きで書くんだったらこんな感じだけど、数学的にやったらもっと別の解があるのかなー??
俺、数学ダメだから識者に任せる。
0342デフォルトの名無しさん
2015/03/26(木) 20:10:26.73ID:BDjvcE7V例えば8桁の
abcdefgh
を
ghabcdef
に入れ替えるようなケースです。
0343デフォルトの名無しさん
2015/03/26(木) 20:19:07.25ID:BDjvcE7Vちょっと考えてみます。
0344デフォルトの名無しさん
2015/03/28(土) 18:45:50.47ID:EQ3zAKR0時間によって値が変わるとかないよな?
0345デフォルトの名無しさん
2015/03/28(土) 20:37:48.75ID:/OKG1/Xj0346デフォルトの名無しさん
2015/03/28(土) 20:38:30.01ID:EQ3zAKR00347デフォルトの名無しさん
2015/03/28(土) 21:42:14.53ID:HPuG9XXV0348デフォルトの名無しさん
2015/03/28(土) 21:50:37.06ID:LYzvh/ES0349デフォルトの名無しさん
2015/03/28(土) 22:02:14.95ID:wVsC1fdLでも、「数字」じゃなくて「数値」と言って欲しかった
0350デフォルトの名無しさん
2015/03/29(日) 02:18:34.60ID:abbduuwwそりゃ、簡単にできる。
Rubyでは例えば、配列の先頭要素を削除する、shiftでも、
一々、別の配列にコピーしないで、同じ配列を使う
配列の要素のstart位置を、0から1へ変えて、
配列の要素数、lengthを1減らし、
要素[0]には、nilを代入する
同様に、start, end位置を管理すれば、
コピーすることなしに、その配列をそのまま使える
0351デフォルトの名無しさん
2015/03/29(日) 03:38:15.93ID:gsIKbDqn寿命が尽きたオブジェクトへのポインタを使った場合の動作は保証されないよ。
0352デフォルトの名無しさん
2015/03/29(日) 04:28:35.51ID:xroka6GoCやC++でも?
0353デフォルトの名無しさん
2015/03/29(日) 11:01:04.14ID:gR6bL9ge重複するぞ
0354デフォルトの名無しさん
2015/03/29(日) 11:03:16.80ID:Z5FbvqDQ0355デフォルトの名無しさん
2015/03/29(日) 11:26:32.64ID:XfQU9N1Rポインタを数値として使う分には問題ないよ。ポインタの参照先を扱うと未定義
>>354
無効になったポインタの値をキーにしたデータをハッシュテーブルにいつまでも入れておいたら再び有効なポインタになったときに重複するだろ
0356デフォルトの名無しさん
2015/03/29(日) 13:11:30.32ID:gR6bL9geバカは引っ込んでなよ
0357デフォルトの名無しさん
2015/03/29(日) 19:21:22.70ID:gsIKbDqnC++11 では無効なポインタ(delete 後のポインタ)の値を読んだりするだけで未定義
だったけど、 C++14 からは間接参照や二重deleteを除いて処理系定義の動作に緩められてる。
いずれにしても移植性のある結果は期待できないわけで、問題ないとは言えないんじゃないかな。
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1438
> [Footnote: Some implementations might define that copying an invalid pointer value
> causes a system-generated runtime fault. ?end footnote]
0358デフォルトの名無しさん
2015/03/29(日) 19:45:27.42ID:pAU/iMZP0359デフォルトの名無しさん
2015/03/29(日) 20:04:48.54ID:gR6bL9ge0360デフォルトの名無しさん
2015/03/29(日) 20:43:00.72ID:5KSECsA50361デフォルトの名無しさん
2015/03/29(日) 21:09:07.47ID:gujvBUVq0362デフォルトの名無しさん
2015/03/29(日) 22:31:13.00ID:ovaSRUeBお前の脳内ではそうなんだろうけど
規格厨的にはいろいろと問題が有るらしいのだよ
0363デフォルトの名無しさん
2015/03/30(月) 00:10:33.24ID:i+YJuxFC無効になったポインタをキーにして云々 には関係ないだろ。
0364デフォルトの名無しさん
2015/03/30(月) 00:12:41.86ID:XE5s3OGYdelete p2;
p1 = p2; //処理系定義の動作? これが??
意図は何だ???
0365デフォルトの名無しさん
2015/03/30(月) 00:14:38.49ID:XE5s3OGYchar *p1, *p2 = new char;
サーセンw
0366デフォルトの名無しさん
2015/03/30(月) 00:39:16.32ID:Ee2yddLDint a[4]={1,4,3,2};
std::sort(a,a+4);
0367デフォルトの名無しさん
2015/03/30(月) 00:49:23.13ID:+8902R/bこの意味がわからないのか?
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1438
The current Standard says that any use of an invalid pointer value produces
undefined behavior (3.7.4.2 [basic.stc.dynamic.deallocation] paragraph 4).
This includes not only dereferencing the pointer but even just fetching its value. The reason for this draconian
restriction is that some architectures in the past used dedicated address registers for pointer loads and stores
and they could fault if, for example, a segment number in a pointer was not currently mapped.
0368デフォルトの名無しさん
2015/03/30(月) 01:21:53.44ID:XE5s3OGYアフォな俺にもわかるよう、君の言葉で言ってみてくれ。
0369デフォルトの名無しさん
2015/03/30(月) 01:54:34.61ID:/0Skz+0Tアドレスレジスタに無効なセグメントのアドレス代入するだけで例外発生するCPUがかつてあったと。
0370デフォルトの名無しさん
2015/03/30(月) 01:56:58.36ID:TWFsNKaTアドレスレジスタが特殊で、そこに読んだり書いたりするタイミングで
副作用のある環境があるのね。バンク切り替えが要る処理系とかあるもんな。
draconianっていうけどさ、無効になったポインタを読み出すようなコードなんてそもそも書くか?おまえら。
0371デフォルトの名無しさん
2015/03/30(月) 02:17:36.70ID:Ee2yddLD0372デフォルトの名無しさん
2015/03/30(月) 03:19:14.10ID:qKq7fiSVどうしてそれが処理系定義なの?
0373デフォルトの名無しさん
2015/03/30(月) 03:24:35.79ID:cpFnfRt6もう知らねーよそんな糞CPU
0374デフォルトの名無しさん
2015/03/30(月) 03:31:19.22ID:Ee2yddLDa+4は無効な参照先を持つポインタだろ
0375デフォルトの名無しさん
2015/03/30(月) 05:54:35.16ID:9fB5zcnp0376デフォルトの名無しさん
2015/03/30(月) 07:40:04.74ID:N0uL9gGu処理系定義ってことはポータビリティが求められる所に
使っちゃいけないコードってことだな
未定義と大差無いんじゃないの
0377デフォルトの名無しさん
2015/03/30(月) 07:47:58.94ID:+221ILPC嘘だろ?
0378デフォルトの名無しさん
2015/03/30(月) 07:48:39.78ID:TkDhqs3Aなるほど
でもそんな処理系実際にあるのかな
0379デフォルトの名無しさん
2015/03/30(月) 08:34:32.21ID:+221ILPCんなこたーない。
0380デフォルトの名無しさん
2015/03/30(月) 08:37:32.50ID:Ee2yddLDじゃあどういう事だよ
0381デフォルトの名無しさん
2015/03/30(月) 08:49:48.69ID:TWFsNKaTよく知らんが
0382デフォルトの名無しさん
2015/03/30(月) 09:43:40.26ID:Xp6r+luEusing namespace std;
struct B;
struct A{
virtual bool equal(const A* a){
return true;
}
virtual void f( const B* b)=0;
};
struct B:public A{
int c;
virtual bool equal(const A* a){
a->f(this);
return true;
}
virtual void f(const B* b) {}
};
int main() {
B b1, b2;
A& a1=b1,&a2=b2;
a1.equal(&a2);
// your code goes here
return 0;
}
このコードのエラーがどうしても取れません
何が悪いのか教えてください
0383デフォルトの名無しさん
2015/03/30(月) 10:00:17.14ID:srztvLsH力量を超えたプログラムしている可能性はないのか。実現したいことをできるだけ簡単に書く工夫をしたら動くとは思う。
0384デフォルトの名無しさん
2015/03/30(月) 10:09:17.12ID:Ee2yddLDエラーの内容ぐらい貼ろうね。一行一行読み下すかコンパイラに入れる手前をかけさせるからまともな解答を期待するならそれぐらいしようね。
const A* aからconstメンバー関数でないfは呼び出せません。
0385デフォルトの名無しさん
2015/03/30(月) 10:12:02.63ID:Xp6r+luEこんどconstやった時動いたわ
idoneのバグかな
0386デフォルトの名無しさん
2015/03/30(月) 10:13:04.49ID:Ee2yddLDバグってんのは間違いなくお前の頭だよ。
0387デフォルトの名無しさん
2015/03/30(月) 10:18:02.65ID:jdEim0yl難しくはないだろ
0388デフォルトの名無しさん
2015/03/30(月) 10:23:00.22ID:srztvLsH自分にはエラー特定ができない程度の難度だ。
関係ないがいまだに・=A[x]、A[x]=・といったオーバーロードで任意の読み書きを行うのが作れない。
0389デフォルトの名無しさん
2015/03/30(月) 10:27:08.42ID:jdEim0ylダウンキャストとconstの2ヶ所くらいだろ。
どこが間違いか指摘が入ったところを書き換えるより、
コード書いた奴がひとつひとつ正しさを解説して見るのが手っ取り早いだろうな。
0390デフォルトの名無しさん
2015/03/30(月) 10:31:28.33ID:Ee2yddLD0391デフォルトの名無しさん
2015/03/30(月) 10:33:54.56ID:Xp6r+luEusing namespace std;
struct B;
struct C{
virtual bool f( const B* b) const{
return false;
}
};
template<typename T>
struct A:public T{
virtual bool equal(const A<T>* a){
return false;
}
};
struct B:public A<C>{
int c;
virtual bool equal(const A<C>* a){
return a->f(this);
}
virtual bool f(const B* b) const{
return c==b->c;
}
};
int main() {
B b1, b2;
b1.c=2;
b2.c=2;
A<C>& a1=b1,&a2=b2;
cout<<a1.equal(&a2)<<endl;
return 0;
}
出来たよ・・・2項メソッド問題を解決したよ。基底クラスを書き換えずにCとAを書き換えるだけで解決できる。もっといい方法あるかも。
0392デフォルトの名無しさん
2015/03/30(月) 10:34:15.57ID:Xp6r+luE0393デフォルトの名無しさん
2015/03/30(月) 10:34:39.68ID:jdEim0ylconstだけのエラーならここで質問して得られる情報と同じことをコンパイラが喋ってくれるよな。
0394デフォルトの名無しさん
2015/03/30(月) 10:42:48.88ID:Ee2yddLDCが基底クラスになってんのに基底クラスを書き換えずにとはこれ如何に
一言で言えば、糞コード晒してんじゃねえよですわ
0395デフォルトの名無しさん
2015/03/30(月) 10:48:22.09ID:Xp6r+luE0396デフォルトの名無しさん
2015/03/30(月) 11:17:29.40ID:Xp6r+luEusing namespace std;
struct B;
struct A{
virtual bool equal(const A* a){
return false;
}
template<typename T>
bool f(const T* b) const{
return static_cast<const T*>(this)->g(b);
}
};
struct B:public A{
int c;
virtual bool equal(const A* a){
return a->f<B>(this);
}
bool g(const B* b) const{
return c==b->c;
}
};
int main() {
B b1, b2;
b1.c=2;
b2.c=2;
A& a1=b1,&a2=b2;
cout<<a1.equal(&a2)<<endl;
return 0;
}
Bだけ書き換えるだけでできた。2項メソッド問題は完全解決だわ。
0397デフォルトの名無しさん
2015/03/30(月) 11:41:45.95ID:Ee2yddLDBのequalにBではない型を渡したら一致しないダウンキャストで未定義動作
勉強の為にいろいろ試すのはいいが、いちいちここにその糞コード晒すな。
0398デフォルトの名無しさん
2015/03/30(月) 12:03:12.42ID:Xp6r+luEこのスレッドにも書き込まないし
二度と見ません
(まともな人はこうやっていなくなるんだろうな・・・)
0399デフォルトの名無しさん
2015/03/30(月) 12:05:51.78ID:Ee2yddLD糞コード撒き散らしてまともだと思ってるなんてめでたい奴だな
0400デフォルトの名無しさん
2015/03/30(月) 12:11:13.47ID:Xp6r+luE0401デフォルトの名無しさん
2015/03/30(月) 12:12:27.32ID:IoC6Id9cお前自分がまともだと思ってたのかw
まともな人はエラーメッセージくらい示すもんだがなw
0402デフォルトの名無しさん
2015/03/30(月) 12:24:29.28ID:Ee2yddLDだいたい
>>384 でエラーの理由も
>>397 で糞コードの問題点も挙げてやったのにお礼の一言も無し。まともな人のやることは理解できませんわ。
0403デフォルトの名無しさん
2015/03/30(月) 12:43:40.20ID:qKq7fiSV>>357,367 が挙げてる 3.7.4.2 [basic.stc.dynamic.deallocation] p4 の規定は
operator delete 関数で解放された領域を指すポインタの話。
配列終端を指すポインタの話は関係ないよ。
0404デフォルトの名無しさん
2015/03/30(月) 12:53:12.19ID:Ee2yddLD理由から言ったら同じ事じゃない?
OSにマッピングされてない領域を示したポインタを扱うだけで(dereferenceしなくても)未定義だったんでしょ?
それともnewした配列の範囲の次のアドレスだけ特別に許される規定でもあるんかね?
0405デフォルトの名無しさん
2015/03/30(月) 13:12:54.74ID:qKq7fiSV有効な配列の終端を指すポインタの振る舞いは別途規定されているから、それに
沿うように実装されていないといけない。
つまり、実際にマップされていないポインタのコピーもできないような環境に対する
実装(コンパイラ)であれば、配列終端アドレスがマップされた範囲に収まるように配列を
配置する義務がある。たとえばセグメントの終端に置かないように、とかね。
ユーザーは気にしなくていい。
0406デフォルトの名無しさん
2015/03/30(月) 13:19:08.50ID:Ee2yddLDそうなのか、知らんかった。ありがとう。
ついでにその辺の規格の記述どの辺に書かれてるか知ってたりする?
0407デフォルトの名無しさん
2015/03/30(月) 13:47:14.01ID:qKq7fiSV5.7, 5.9, 5.10 あたりのポインタを扱う加減算や比較について、配列終端を指す
ポインタの挙動が規定されてる。
加減算についての 5.7 [expr.add] p5 には "... the evaluation shall not produce
an overflow ..." とか書いてあったりする。
0408デフォルトの名無しさん
2015/03/30(月) 14:01:55.63ID:+221ILPCnewした配列だけじゃなく、静的配列でも最後の要素の次のアドレスは有効だよ。
0409デフォルトの名無しさん
2015/04/01(水) 23:46:03.74ID:PpKhxCtRthx
亀レスすまそ
0410デフォルトの名無しさん
2015/04/02(木) 01:53:32.79ID:Ccy4QVUJ0411デフォルトの名無しさん
2015/04/02(木) 07:12:16.76ID:yahBsgVN0412デフォルトの名無しさん
2015/04/02(木) 07:19:42.69ID:5Z3Wm1GR0413デフォルトの名無しさん
2015/04/02(木) 07:25:31.79ID:yahBsgVN0414デフォルトの名無しさん
2015/04/02(木) 10:00:14.05ID:IrSjfvolcは組み込み系でガッツリ生きてるけどc++はコンシューマゲーム業界以外どこで使われてるん?
0415デフォルトの名無しさん
2015/04/02(木) 10:17:48.78ID:u14NoDB/0416デフォルトの名無しさん
2015/04/02(木) 10:22:19.72ID:3p4oNCvA0417デフォルトの名無しさん
2015/04/02(木) 10:55:45.95ID:9YRqykboWEBアプリ以外のメジャーなソフトは殆どみんなC++で書かれているよ。
速度を要する分野で、ある程度以上大きなソフトだと現状C++以外に選択肢がない。
0418デフォルトの名無しさん
2015/04/02(木) 19:59:17.85ID:pjalxKw1apache/nginx
mysql
perl/php/python
これ全部C++で書かれてるのにな
0419デフォルトの名無しさん
2015/04/02(木) 20:06:13.16ID:uxRlyB0w0420デフォルトの名無しさん
2015/04/02(木) 20:14:48.35ID:OJF0+RMs質の高いプログラマー向けのコンパイラーと二分化されてるから
質の低い世界に住んでいる人はC++が使われていることを知らないんだろうな
0421デフォルトの名無しさん
2015/04/02(木) 20:17:30.48ID:mly0Vlsl0422デフォルトの名無しさん
2015/04/02(木) 20:18:16.39ID:mly0Vlsl>質の低いプログラマー向けのコンパイラー
>質の高いプログラマー向けのコンパイラー
具体的に何と何?
0423デフォルトの名無しさん
2015/04/02(木) 20:18:19.86ID:vn5gNo4y0424デフォルトの名無しさん
2015/04/02(木) 20:30:08.07ID:IrSjfvol質問者に対してネット弁慶のようなレスしかしない。解答者にも絡んでくるけど。
0425デフォルトの名無しさん
2015/04/02(木) 20:31:28.75ID:IrSjfvol技術者が使うツールなどを作る時は結構使われてるんですね。
0426デフォルトの名無しさん
2015/04/02(木) 20:33:12.02ID:LIO982SiCが残っているのはもう少しリソースの厳しい低レベルな処理
0427デフォルトの名無しさん
2015/04/02(木) 21:22:16.97ID:mhyCTgAkC++はどれ?
0428デフォルトの名無しさん
2015/04/02(木) 21:40:55.08ID:Rb/VTf7B青春なんていつだってやってくらぁ
0429デフォルトの名無しさん
2015/04/02(木) 21:45:44.80ID:mly0Vlslmysql
他は C
0430デフォルトの名無しさん
2015/04/02(木) 22:28:14.99ID:pGoFdtSH0431デフォルトの名無しさん
2015/04/02(木) 23:18:06.88ID:bPm0KiLVallocatorを自作しなければならないのでしょうか?
0432デフォルトの名無しさん
2015/04/02(木) 23:18:41.35ID:3p4oNCvA0433デフォルトの名無しさん
2015/04/02(木) 23:19:47.15ID:1IqOBimZみたいな煽り
0434デフォルトの名無しさん
2015/04/02(木) 23:26:22.49ID:LIO982Si0435デフォルトの名無しさん
2015/04/02(木) 23:50:56.01ID:k9SRa5UQ0436デフォルトの名無しさん
2015/04/03(金) 00:31:51.57ID:gU7tQdFvCで開発されているものは低レベルのが多いだろ
0437デフォルトの名無しさん
2015/04/03(金) 07:51:18.99ID:l1j02Vyo「無能」という意味ではなくて
「ハードウェアに近い領域」という意味だよな?
0438デフォルトの名無しさん
2015/04/03(金) 12:15:39.54ID:WBIDg/yVバカニート「低レベルが好きです」
0439デフォルトの名無しさん
2015/04/03(金) 12:23:10.34ID:lmmcTvrcうまくないな
0440デフォルトの名無しさん
2015/04/03(金) 12:24:38.90ID:oM2wNwa8ドラゴンクエストの影響だろうな
段が低いプログラムと訳せばすぐわかるだろ
0441デフォルトの名無しさん
2015/04/03(金) 12:44:52.89ID:CKFmHz340442デフォルトの名無しさん
2015/04/03(金) 12:57:41.37ID:5y9eBdTs0443デフォルトの名無しさん
2015/04/03(金) 13:20:43.97ID:MqJmbX9B0444デフォルトの名無しさん
2015/04/03(金) 20:17:26.93ID:iCpO92hv0445デフォルトの名無しさん
2015/04/03(金) 21:22:51.48ID:VzIRpAhA・低水準
・低レベル
それぞれニュアンスが違うね
つなみにロー水準は聞いたことがない
0446デフォルトの名無しさん
2015/04/03(金) 23:14:17.92ID:1fmbbdAS0447デフォルトの名無しさん
2015/04/03(金) 23:16:12.54ID:6Ne83I+L0448デフォルトの名無しさん
2015/04/04(土) 00:09:01.67ID:b1B36uxJ0449デフォルトの名無しさん
2015/04/04(土) 02:34:01.42ID:Q4sSBebL0450デフォルトの名無しさん
2015/04/04(土) 08:02:12.42ID:Y86GgH66Go の言語仕様見たけど、良くできてると思う
Visual Studio が対応したら乗り換えてもいい
0451デフォルトの名無しさん
2015/04/04(土) 11:42:51.25ID:bWOLWnuf結局生き残るのは変化し続けられる拡張性の高い言語だと思うな
0452デフォルトの名無しさん
2015/04/04(土) 11:45:15.56ID:Qb3r1pUW0453デフォルトの名無しさん
2015/04/04(土) 11:55:59.65ID:aY+BpC5wばかも休み休み言え
大切なのはドカタにヒットするか否か
0454デフォルトの名無しさん
2015/04/04(土) 18:14:49.27ID:u9UoiVR20455デフォルトの名無しさん
2015/04/04(土) 20:36:43.32ID:Y86GgH66さすがに新規はないだろうから、むしろお固いメーカー系とかの保守じゃね?
0456デフォルトの名無しさん
2015/04/04(土) 21:13:47.50ID:GZJxoxqqカルチャーショックを受けるわ
0457デフォルトの名無しさん
2015/04/04(土) 21:15:37.79ID:YGBBXr+7未だにどんな言語なのかも知らない
0458デフォルトの名無しさん
2015/04/04(土) 21:27:13.48ID:IZnxY6AhFortranが、数式に近い表記でそうするように。
再帰ができず、変数がすべてグローバル。
つまりスタックがないということだ。
10進演算が基本なのでCで0.1にいじめられた人が泣いて喜ぶ。
ポインタがないのでCで(ry
0459デフォルトの名無しさん
2015/04/04(土) 21:33:14.65ID:YGBBXr+70460デフォルトの名無しさん
2015/04/04(土) 21:34:38.44ID:IZnxY6Ah本当のソフトウエアクライシスを ごほっ ごほっ
0461デフォルトの名無しさん
2015/04/04(土) 23:51:14.83ID:tv8NjFyX真のドカタを目指すなら身に付けるべき
0462デフォルトの名無しさん
2015/04/05(日) 02:28:58.61ID:ADR7fkz90463デフォルトの名無しさん
2015/04/05(日) 03:50:23.84ID:dbx3NX/gリレーションとドメイン(値域)とカーディナリティが理解できないので
商品マスタと売上明細テーブルがあったらなぜか商品マスタに顧客IDが紛れてたりする
Cをやらせるとf001,f002…みたいな名前の関数が100個ぐらい出来上がる
変数はグローバルオンリー
COBOL自体が社会のインフラストラクチャに対する破壊工作みたいなもの
0464デフォルトの名無しさん
2015/04/05(日) 08:18:37.11ID:DrA9WGfs0465デフォルトの名無しさん
2015/04/05(日) 09:46:54.28ID:tP/np3Hb関数があったとして
const Hoge hoge;// constとして扱いたい
GetHoge(const_cast<Hoge&>(hoge));
これって問題あり得ますか?
0466デフォルトの名無しさん
2015/04/05(日) 09:48:58.95ID:tP/np3Hb勿論GetHoge関数の中でconstではなく
Getして、その先constとして扱いたいという意図です
0467デフォルトの名無しさん
2015/04/05(日) 09:55:48.93ID:QXMk1mSi不毛な議論が湧くといく問題があります
言語仕様上は問題ありません
0468デフォルトの名無しさん
2015/04/05(日) 10:48:16.27ID:ZB+STXk40469デフォルトの名無しさん
2015/04/05(日) 10:51:46.20ID:AP5T/bEV自分が使用する、使用しないの範囲にしてください
0470デフォルトの名無しさん
2015/04/05(日) 10:55:16.66ID:odxgurOZ「constで宣言された変数を書き換えた結果は不定である。」が言語仕様だから>>467は間違い。
0471デフォルトの名無しさん
2015/04/05(日) 11:05:43.37ID:wZq+dpj7Hogeを返す関数作れば良いんじゃね。
0472デフォルトの名無しさん
2015/04/05(日) 11:09:31.17ID:cAbKejSYC++11でconstの意味が大きく変わってついて行ってないわ
0473デフォルトの名無しさん
2015/04/05(日) 11:20:48.65ID:ADR7fkz90474デフォルトの名無しさん
2015/04/05(日) 11:30:03.89ID:ZSoXTOOk「constがマルチスレッド対応の意味に変更」は
標準ライブラリの設計ポリシーの話をすり替えている
だけなので信じてはいけない
0475デフォルトの名無しさん
2015/04/05(日) 11:32:56.90ID:ooAp89VBint a;
const int& b = a;
に対して
const_cast<int&>(b)=4;
はいいが、
const int b;
に対してやったらアウチ
0476デフォルトの名無しさん
2015/04/05(日) 11:44:39.16ID:g7UffUWg初期化直後だけはいいですか?→んなわけねーだろ
0477デフォルトの名無しさん
2015/04/05(日) 12:35:34.30ID:CGkbVOZ+そのケースはconst_castの正しい使い方の典型例だから問題なし
0478デフォルトの名無しさん
2015/04/05(日) 12:50:53.90ID:rAca8ckP0479デフォルトの名無しさん
2015/04/05(日) 14:18:50.90ID:BDu3Qsud0480デフォルトの名無しさん
2015/04/05(日) 14:36:00.32ID:ADR7fkz90481デフォルトの名無しさん
2015/04/05(日) 15:27:49.26ID:Vu7rbLCFデバッガでも値の書き換えができなくて一時間ぐらい悩んだことあったわw
0482デフォルトの名無しさん
2015/04/05(日) 23:09:52.62ID:Ml+kBWFS475の上の例は合法だって言ってんだからROMおくりになるわけねーだろ
0483デフォルトの名無しさん
2015/04/06(月) 00:20:22.16ID:nCXQ8Uh10484デフォルトの名無しさん
2015/04/06(月) 00:21:23.29ID:sz0/lsVF0485デフォルトの名無しさん
2015/04/06(月) 01:29:03.02ID:m+KJDtq5インライン関数で実装できたら良いと思うんですが、何か良い方法というか一般論はないでしょうか。
0486デフォルトの名無しさん
2015/04/06(月) 02:15:25.25ID:jHKWPtxv0487デフォルトの名無しさん
2015/04/06(月) 02:17:33.62ID:KWrrkyNb0488デフォルトの名無しさん
2015/04/06(月) 03:02:05.32ID:nCXQ8Uh1すみません。
ループの中で何度も呼ぶpow(a, b)を高速化したいと考えました。
a, bは任意の値なので自力で書き下すのは不可能です。
0489485
2015/04/06(月) 03:03:24.17ID:nCXQ8Uh10490デフォルトの名無しさん
2015/04/06(月) 03:10:50.96ID:KWrrkyNb実数べきが必要なの?自力で書けないというんだからそうなんだろうけど
そうなら素直にpow使うしかないだろ
インライン化での高速化なんてわずかだよ
ちなみに強制インライン化はVCなら__forceinline
GCCなら__inline__ __attribute__((always_inline))
で出来る
0491デフォルトの名無しさん
2015/04/06(月) 03:11:09.71ID:AEDCz7+8計算の方が時間がかかるのでインラインで書いても高速化は期待できない
例えばaが2固定、bが63(31)以下ならシフトで高速化とかできるけど、任意じゃ無理だね
ループから追い出す方法考えろ
0492485
2015/04/06(月) 03:40:51.66ID:csWIwiDC勝手なイメージで標準ライブラリのpow()は遅いと思っていました。
せめて関数呼び出しのオーバーヘッドを除ければと思ってインラインと言ったのですがそれも微妙なようですね。
数値計算をやっているのですがアルゴリズム的にループの外にpow()を追い出すのは難しいです。
0493デフォルトの名無しさん
2015/04/06(月) 04:03:13.27ID:KWrrkyNb詳細が分からないけど、場合によっては適切なベクトル・行列演算ライブラリを
探せれば高速化できる
インライン化なんてものは忘れたほうが良い
0494485
2015/04/06(月) 04:27:37.90ID:J5Wu6+2V行列行列積はblasでやっていますが、それ以外の自分で実装せざるを得ない箇所がボトルネックになっています。
pow()は追い出せないとしてもループ構造について少し考えてみます。
ありがとうございました。
0495デフォルトの名無しさん
2015/04/06(月) 12:04:57.14ID:FmIxDu06浮動小数点とか桁数が大きければ全く効果ない
0496デフォルトの名無しさん
2015/04/06(月) 12:10:16.54ID:EluQw0m1POWが遅くしていて、そこを改善する以外に手がなくなってからでいい。
0497デフォルトの名無しさん
2015/04/06(月) 14:14:51.09ID:UfNBjhwRこのへん、参考になるか?
http://labo.xo-ox.net/article/89320345.html
0498デフォルトの名無しさん
2015/04/06(月) 15:42:48.35ID:EluQw0m1あとは同じ数でPOWを使うケースがあるなら結果をcacheしとくとか。
0499デフォルトの名無しさん
2015/04/06(月) 15:43:45.99ID:UfNBjhwR0500デフォルトの名無しさん
2015/04/06(月) 16:47:43.17ID:KWrrkyNb0501デフォルトの名無しさん
2015/04/06(月) 16:51:26.46ID:PufGX+Fr0502デフォルトの名無しさん
2015/04/06(月) 20:57:04.31ID:rbpG+7VYアドバイスできるならしてやりなよ
>>500 じゃないけど、俺にも無理
0503デフォルトの名無しさん
2015/04/07(火) 06:37:49.78ID:V4a6/AQt次はc+勉強しようと思うのですが、お勧めの入門書籍教えて頂けませんか…
0504デフォルトの名無しさん
2015/04/07(火) 06:48:47.64ID:V4a6/AQt0505デフォルトの名無しさん
2015/04/07(火) 07:26:26.37ID:oZeWhsk30506デフォルトの名無しさん
2015/04/07(火) 07:33:32.21ID:v4cb0BJkVCのデバッガ優秀だからステップ実行しながらバグつぶしてたら感覚がつかめた。
基本クラス書かないし、構造体もTupleで済ませてるし。
Cから追補する内容があんまりない。ライブラリ覚えるくらい。STLの作法とか。
そうだ、Tupleにメモリオーダーの保障付けてほしい。
ファイルに一気に書き出すときにわざわざ分解して構造体に書き出さなきゃいかんハズ。
メンドくせー。
あと、以下のサイトで最新を追ってる。
http://cpplover.blogspot.jp/
http://faithandbrave.hateblo.jp/
0507デフォルトの名無しさん
2015/04/07(火) 07:46:38.08ID:1BnTCMqM0508デフォルトの名無しさん
2015/04/07(火) 10:10:11.66ID:bTzwYy+4エンディアンだとかパディングだとか色々ありすぎて
メモリイメージをそのまま書き出しなんかトンデモ系だし
vc使いならシリアル化って日常だろ
0509デフォルトの名無しさん
2015/04/07(火) 14:20:25.90ID:LBE26d+C0510デフォルトの名無しさん
2015/04/08(水) 19:23:36.04ID:emBlUbRpbが一般だと難しいかもな。
0511デフォルトの名無しさん
2015/04/08(水) 21:01:05.78ID:e6090r1Yとかはどう?
0512デフォルトの名無しさん
2015/04/08(水) 21:27:23.58ID:/95dwa0a0513デフォルトの名無しさん
2015/04/08(水) 22:51:44.78ID:bms3DTdi0514デフォルトの名無しさん
2015/04/09(木) 01:05:04.07ID:5iBpwB+Iこの場合は効果薄いでしょ
>>512
この場合は無理でしょ
0515デフォルトの名無しさん
2015/04/09(木) 16:13:30.66ID:FMmlOnX00516デフォルトの名無しさん
2015/04/10(金) 00:16:06.36ID:nlVL+POWaやbは配列?
ネックになっているのはキャッシュじゃないの?
0517デフォルトの名無しさん
2015/04/10(金) 04:15:51.92ID:WWoe/A8aループ変数です
0518デフォルトの名無しさん
2015/04/10(金) 04:22:43.06ID:eGKlq6HE0519デフォルトの名無しさん
2015/04/10(金) 09:02:17.76ID:fXTADCyVC#だとParallel.Forというのが有るみたいだけど
0520デフォルトの名無しさん
2015/04/10(金) 09:20:42.23ID:Knd4Pp9G0521デフォルトの名無しさん
2015/04/10(金) 09:29:41.15ID:eUeD8SFS0522デフォルトの名無しさん
2015/04/10(金) 14:02:55.25ID:jfiHW1smintです
0523デフォルトの名無しさん
2015/04/10(金) 14:11:41.52ID:nlVL+POWy = pow(a+n, b+n);
のように2つ以上書いたらどうか
0524デフォルトの名無しさん
2015/04/10(金) 15:05:40.99ID:2bvOEv+Maは-1で固定、bは16の5乗個くらいループします
0525デフォルトの名無しさん
2015/04/10(金) 15:27:04.05ID:MJEeIOkg0526デフォルトの名無しさん
2015/04/10(金) 15:35:20.61ID:nB31hCq9(b&1) ? -1 : 1;
0527デフォルトの名無しさん
2015/04/10(金) 16:24:10.14ID:XYVxfdln0528デフォルトの名無しさん
2015/04/10(金) 16:25:07.56ID:qlTKx4Z2卒論か何かか?
悪いこと言わん、テーマ変えろ。
0529デフォルトの名無しさん
2015/04/10(金) 17:00:36.70ID:m1Pw5dN40530デフォルトの名無しさん
2015/04/10(金) 18:18:17.83ID:R9t+SJrJとは書いてるが任意の実数とは書いてなかったな
一本取られた
0531デフォルトの名無しさん
2015/04/10(金) 19:56:27.65ID:h+8O1Nmp0532デフォルトの名無しさん
2015/04/10(金) 20:21:20.83ID:EwSb4KYJ0533デフォルトの名無しさん
2015/04/10(金) 21:09:58.20ID:jxWpgR7l条件としては、
aの符号、偶数、奇数かは不明
bは常に正の奇数、exe実行毎に値は変わるが、動作中の値は固定
余りは正で返す(例 -3 % 7 = 4)
値のレンジは32bit int、5000<b<50000くらいです。
よろしくお願いします。
0534デフォルトの名無しさん
2015/04/10(金) 21:27:13.19ID:w4td4TOx0535デフォルトの名無しさん
2015/04/10(金) 21:45:17.26ID:jxWpgR7l浮動小数点だと1/bを事前に計算しておけば乗算にできるので、似たようなトリックが使えないかと考えていますがわかりません
0536デフォルトの名無しさん
2015/04/10(金) 21:54:44.69ID:PbAFF08pttps://software.intel.com/en-us/forums/topic/288503
浮動小数点で割り算してからかけ算、引き算の方が速いらしいぞ
0537デフォルトの名無しさん
2015/04/10(金) 23:03:54.11ID:p2fg6sTV今速度に不満のあるコードのサンプルを書いてみてくれ
誰かがそれを速くするコードに直すかもしれない
0538デフォルトの名無しさん
2015/04/10(金) 23:25:17.27ID:jxWpgR7l誤差が気になりますが、試す価値はありそうですね
>>537
コード自体は非常に単純で、for文の中でひたすら%を計算します
一応ループ展開もしたんですが、そもそも%の回数がメチャクチャ多いのでそれ自体を無くしたいのです
0539デフォルトの名無しさん
2015/04/10(金) 23:29:05.24ID:66gOXAhn0540デフォルトの名無しさん
2015/04/11(土) 00:12:30.64ID:450jiNSI単純ならそのコードを書いてみなよ
それより速く動くコードを誰かが書ければいいんだろ?
0541デフォルトの名無しさん
2015/04/11(土) 01:19:04.96ID:wSNin0w3速いなんてどこにも書かれてないような気がするが。
まあ可能性はあるのかなぁ…と思ったが
divの回路つくるよりキャストして実数演算使ったほうが速いなら
CPU自体そういうバイパスする実装になってるはずじゃねーの?
0542デフォルトの名無しさん
2015/04/11(土) 01:47:07.49ID:qEG89sYkSSEには整数modがないのでシフトでごちゃごちゃやるしかないと書いてあるじゃん。
Z80かよと。
floatだとSSE2演算でできるので多分そっちの方が速い。
0543デフォルトの名無しさん
2015/04/11(土) 08:13:22.23ID:DUtKJUYtあたりで自分の求めているものを探したら?
0544デフォルトの名無しさん
2015/04/11(土) 09:03:00.10ID:sEFyMtyE実数ではa / b = a * (1 / b)です。
整数でも同じことができます。
大きい数cを用意して、a / b = a * (c / b) / cの変換を使います。
cを2べきにすればビットシフトに変換できます。
0545デフォルトの名無しさん
2015/04/11(土) 10:39:21.75ID:wSNin0w3SSE2はどうでもいいけど、除数が定数であるなら
確かに事前に(1/b)の実数用意して実数乗算ってのは速いっぽいな
>>544
でも除数が>>533みたいに任意の値をとる場合は
一般には「大きい数」が64bitの範囲を超えるだろうから使える戦略じゃないだろそれ
0546デフォルトの名無しさん
2015/04/11(土) 12:26:33.94ID:R7AqMyz7SSEのおかげで同時に同じ演算を複数件やるならfloatが速い。
整数を1個ずつ演算するときにそれを使わないのは当たり前だ。1個ずつのときに速いわけではないのだから。
0547デフォルトの名無しさん
2015/04/11(土) 12:29:14.52ID:JNIRY6v4> でも除数が>>533みたいに任意の値をとる場合は
> 一般には「大きい数」が64bitの範囲を超えるだろうから
533は50000未満だと言ってるぞ
0548デフォルトの名無しさん
2015/04/11(土) 13:24:30.54ID:fItp2rC50549デフォルトの名無しさん
2015/04/11(土) 13:51:35.44ID:HEeB3rJnまずは c = 1.0/b; a - b * (int)( a*c ) を、
あと544と同じことが↓に載っていたので試してみます。
ttp://stackoverflow.com/questions/980702/efficient-cycles-wise-algorithm-to-compute-modulo-25
0550デフォルトの名無しさん
2015/04/11(土) 14:08:08.07ID:fItp2rC5除算を乗算に置き換えても効果ないよ。最初に逆数計算する分だけ僅かに遅くなる
SSE/AVX使って複数の計算を同時にやるようにするのでない限り今のIDIVを使う方法以上には速くならない
まあやってみな。試してみれば分かるから
0551デフォルトの名無しさん
2015/04/11(土) 15:14:55.21ID:00OQafp31/bはもろ実行時除算じゃないか
言い出したやつpgr
0552デフォルトの名無しさん
2015/04/11(土) 15:29:39.95ID:HEeB3rJn除数が固定なので、乗算に置き換えられれば十分効果はあると思っているのですが。
なかったら諦めるだけです
0553Office & Gamers ◆G144Hzgh2.0e
2015/04/11(土) 15:54:57.31ID:qwyJf/Pv0554Office & Gamers ◆G144Hzgh2.0e
2015/04/11(土) 16:07:14.38ID:qwyJf/Pv0555デフォルトの名無しさん
2015/04/12(日) 02:15:49.77ID:5oPlUArh0556デフォルトの名無しさん
2015/04/12(日) 02:27:30.24ID:YSMYgbxd0557デフォルトの名無しさん
2015/04/12(日) 02:31:08.06ID:rANlTzQt>>555
Core2で実際に逆数の実数積使ったのと整数剰余とをブン回したら
普通に一桁遅かったわ、実数が。
最近のスクリプト言語はdoubleしかねーの多いがパフォーマンスに限って言えば糞だな
0558デフォルトの名無しさん
2015/04/12(日) 02:31:48.82ID:vpw/CkAAaが整数でしかも範囲が決まっていてbは起動後固定ならそれが正解だね
テーブルルックアップにだって時間が掛かるからせいぜい30%程度の時短にしかならないだろうけど
0559デフォルトの名無しさん
2015/04/12(日) 02:35:21.73ID:vpw/CkAA0560Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 02:35:22.48ID:qV7OJBYFスレッド割り当て見直しで何とかしろw
0561Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 02:39:45.73ID:qV7OJBYF>最近のスクリプト言語はdoubleしかねーの多いがパフォーマンスに限って言えば糞だな
スクリプトに明確な型変換が必要か?w
0562デフォルトの名無しさん
2015/04/12(日) 02:42:30.96ID:rANlTzQtその頃のバッドノウハウ引きずってる人は多いかもよ
0563Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 02:51:24.12ID:qV7OJBYF0564デフォルトの名無しさん
2015/04/12(日) 09:30:34.25ID:rYlzljDe0565デフォルトの名無しさん
2015/04/12(日) 11:05:29.80ID:owm43KXpusing namespace std;
template<typename ...T>
struct A:public T...{
auto f(){return 2};
};
struct B{
virtual auto f()=0;
};
int main() {
A<B> a1;
A<> a2;
cout<<a1.f()<<a2.f()<<endl;
return 0;
}
ベースクラスありと無しバージョンができません
教えてください
0566デフォルトの名無しさん
2015/04/12(日) 11:43:54.51ID:6+WEXIqk0567Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 11:58:17.56ID:kx9iDNgYそれ何のために使うの?w
0568デフォルトの名無しさん
2015/04/12(日) 11:58:59.27ID:SJx57Gdu0569Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 12:01:23.73ID:kx9iDNgY0570デフォルトの名無しさん
2015/04/12(日) 12:28:17.35ID:3nL2tunAISO/IEC 14882:2014 14.5.3p7
コンパイラーが腐っているのでは
0571デフォルトの名無しさん
2015/04/12(日) 12:29:02.94ID:f/YMZojg0572デフォルトの名無しさん
2015/04/12(日) 13:13:43.23ID:h1PZ1sRJ『教えてください』とは何を教えて欲しいのか
565は釣り臭がプンプンする
それに仮想関数って戻り値を
virtual auto f()=0;
こんな書き方できないだろ
0573デフォルトの名無しさん
2015/04/12(日) 13:48:58.78ID:Fa1sTouPhttp://ideone.com/MW6UeR
0574デフォルトの名無しさん
2015/04/12(日) 14:12:47.02ID:2c7YuQYFvirtual auto f() -> int = 0; //virtualは返り値の型必須
auto main()
0575デフォルトの名無しさん
2015/04/12(日) 14:20:15.20ID:BtEXqKfw0576デフォルトの名無しさん
2015/04/12(日) 14:42:48.08ID:lWdBYxMntype_infoをイソクルードしてtypeidします
0577デフォルトの名無しさん
2015/04/12(日) 14:51:13.17ID:taPXD9k9せっかくの レス番号が 無駄になってる
こうしきゃ
c++で 任意の式の 型を得る
0578デフォルトの名無しさん
2015/04/12(日) 14:58:20.10ID:2c7YuQYFまあ任意の式の正確な型を得るのはC++14でも無理。
0579デフォルトの名無しさん
2015/04/12(日) 15:50:19.70ID:Buy3OTWoリフレクションみたいな事をしたいの?
decltypeが03にはないからなあ
でもdecltype(auto)も理解するのが最初はとまどった
0580デフォルトの名無しさん
2015/04/12(日) 16:17:28.46ID:BtEXqKfw>>578
私の日本語は変ですか?
こういう場合はどう書けば良いのでしょう
0581デフォルトの名無しさん
2015/04/12(日) 17:19:09.35ID:Q2J6Pj1Zvariadic templatesってこんなことできるのか...
0582デフォルトの名無しさん
2015/04/12(日) 22:13:13.41ID:zsWDXSt6基底クラスができるということは
当然ながらメンバーイニシャライザも
template<typename... base_types>
struct unko : base_types... {
template<typename... U>
unko(U... params) : base_types{params}... {
}
};
0583デフォルトの名無しさん
2015/04/14(火) 22:31:12.61ID:ZDLeXrwA独立な2つの関数funcAとfuncBがあって、両方とも中で並列化可能なfor文を回してる
OpenMPを使って、それぞれに4スレッドずつ割り当てて同時に処理させたらシングルスレッドとほとんと変わらないくらい遅かった
やりかたは ttp://stackoverflow.com/questions/7916411/openmp-for-loop-inside-section を使った
で、片方に8スレッド割り当てて、funcA->funcBと順番に処理したらシングルの4倍位速くなった
これってなんで?単純に考えると前者の方が速くなりそうなんだけど
0584片山博文MZ ◆T6xkBnTXz7B0
2015/04/14(火) 22:36:13.64ID:WdcxbNEq0585デフォルトの名無しさん
2015/04/14(火) 23:20:54.36ID:8NHB2jrTコアはいくつあるのよ?Hyper-Threading有効?
0586デフォルトの名無しさん
2015/04/14(火) 23:26:48.74ID:LMD+MjqVこれのN3386についてどう思う?
ていうか、プロトタイプ宣言でauto使えるのなら、
もうプロトタイプ宣言の意味なくね?
実装がcppにあって、宣言がhにあって、他のcppからはhをインクルードして
使うのが普通だと思うんだけど、プロトタイプ宣言にautoがあったら、
何の情報にもならないし、コンパイル無理じゃね?
どうなってんの?
0587デフォルトの名無しさん
2015/04/14(火) 23:46:34.29ID:Kp699WDIそれならテンプレートでいいんじゃないって思う
0588デフォルトの名無しさん
2015/04/14(火) 23:50:14.90ID:G4Teoc/4定義(=実装コードね)が現れる前に使っちゃダメって書いてあるじゃん。
って事は、当然コンパイル時にすべての定義が見えなければならない。
つまり、template以外の一般関数ったって、事実上inline的な関数でしか使用出来ないって事だよ。
0589デフォルトの名無しさん
2015/04/15(水) 00:04:36.25ID:NF77CiRA戻り値の型は関数のシグネチャーではないので自然だけれど、
関数テンプレートの場合はシグネチャーに戻り値が
含まれるのだから規格のミスではと思う
0590デフォルトの名無しさん
2015/04/15(水) 00:25:49.40ID:9EAsN0Neこれって何の意味があるの?
定義の後にしか使えないのなら、プロトタイプ宣言要らないんじゃ・・・
>>589
>戻り値の型は関数のシグネチャーではない
マジで?戻り値の型がからない状態でどうやってコンパイル/リンクしてるの?
マングリングの話だよね?
0591デフォルトの名無しさん
2015/04/15(水) 00:49:21.90ID:9EAsN0Ne戻り値の型をマングリングする必要は無いのか。
0592デフォルトの名無しさん
2015/04/15(水) 02:02:10.99ID:mhTbOD0j0593デフォルトの名無しさん
2015/04/15(水) 02:10:17.73ID:9EAsN0Ne0594593
2015/04/15(水) 02:48:08.76ID:9EAsN0Ne0595588
2015/04/15(水) 03:44:42.16ID:Gdw830UqN3386 とプロトタイプ宣言が何の関係があるの?
あくまで一般関数でも戻り値推定を使えるようにしようっていう提案であって、プロトタイプ宣言とは何の関係も無いでしょ。
もちろん、しても構わないけど、一般的に template や inline でプロトタイプ宣言はしないよね。
いらないっていう君の考えは正しいんだけど、的を射てないっていうか、そこはN3386の趣旨じゃないと思うよ。
0596588
2015/04/15(水) 03:58:49.65ID:Gdw830Uqで、何の意味があるか?だけど、
コンパイラには一意に識別できるようなシチュエーションでも、
人間が書くのはめんどくさい場合があるんだよね。
まぁ、逆に可読性が下がる場合もあるので、
一概に良し悪し決められない気もするけど。
// ↓この型を正確に書いたところで誰得 ???
auto getNow()
{
return std::chrono::system_clock::now() ;
}
0597デフォルトの名無しさん
2015/04/15(水) 11:29:44.91ID:YuHqMLmtそれだけではなんとも言えないけど、ありがちなのは funcA と、funcBが同じキャッシュラインをリードライトしてるとか。
0598デフォルトの名無しさん
2015/04/15(水) 11:36:29.75ID:YuHqMLmt0599デフォルトの名無しさん
2015/04/15(水) 19:42:58.02ID:r2lvBfAu再現コードとかがないから妄想レスするしかないって感じだよね
フォルス・シェアリングって初めて聞いたよ
マルチスレッドで性能出すの色々大変なんだな。シングルスレと変わらない性能じゃね
0600デフォルトの名無しさん
2015/04/15(水) 19:54:02.21ID:SmxjYtk4>N3386 とプロトタイプ宣言が何の関係があるの?
日本語が読めない人にはちょっと難しかったかな
0601デフォルトの名無しさん
2015/04/15(水) 20:11:16.24ID:+JX/9q1Wあんがと。どうも原因はそれっぽい。
マルチスレッド処理前にsection分データ複製して終わったらマージしてだと結局早くならなそうだから、それぞれの中で並列化させるだけにする
0602デフォルトの名無しさん
2015/04/15(水) 20:37:53.74ID:Gdw830Uqだな
あの文書を読んでプロトタイプ宣言とかうあたり、まず日本語勉強しろと言ってやれ
0604デフォルトの名無しさん
2015/04/15(水) 23:28:20.82ID:XPC8PdXLむしろ書いてないと困るだろ。
steady_clockかsystem_clockかも分からなかったら使えない
0605デフォルトの名無しさん
2015/04/15(水) 23:29:09.00ID:Gdw830Uqホントだよな
自覚もてと言ってやれ
0606デフォルトの名無しさん
2015/04/15(水) 23:29:40.73ID:Gdw830Uqえっ?!
0608デフォルトの名無しさん
2015/04/17(金) 02:50:59.29ID:taSEBu9a0609デフォルトの名無しさん
2015/04/17(金) 21:50:44.71ID:omrkMRZ4ampって何?
1のこと?
(b&1)とは
bと1のビット積が1なら1を返し、1でないなら0を返すみたいな意味?
0610デフォルトの名無しさん
2015/04/17(金) 22:04:02.70ID:0VqFq7s9&;込みでhtmlで1文字ggrks
0611デフォルトの名無しさん
2015/04/17(金) 22:11:22.91ID:omrkMRZ4C++の文法かと思ったわ
0612デフォルトの名無しさん
2015/04/17(金) 22:19:23.29ID:va7l7l3Wキチガイはどうしようもないな
せめて(b bitand 1)ぐらいのひねりが欲しいところ
0613デフォルトの名無しさん
2015/04/17(金) 22:20:28.95ID:omrkMRZ4全く気付かんかったスマン
0614デフォルトの名無しさん
2015/04/18(土) 00:26:31.20ID:4cICBPDJ目的はパフォーマンスのボトルネックを探すことだとして
0615Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 00:52:06.28ID:yZFnrc/6FOR-NEXT10億回ループで計測w
0616デフォルトの名無しさん
2015/04/18(土) 00:57:51.86ID:j/wjXDDUプロファイラで測定する
0617Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 01:01:55.32ID:yZFnrc/6clock_t tt;
tt=clock();
の要領w
0618Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 01:04:12.62ID:yZFnrc/60619デフォルトの名無しさん
2015/04/18(土) 01:14:31.56ID:Pxa1HN8F0620デフォルトの名無しさん
2015/04/18(土) 02:12:46.96ID:3+5aq7igクロノ使ってストップウオッチクラス書く。
0621デフォルトの名無しさん
2015/04/18(土) 02:16:54.96ID:W/lu3ENI0622デフォルトの名無しさん
2015/04/19(日) 12:20:15.38ID:XOnDNqxYusing namespace std;
struct A{
const int a[1];
constexpr auto f(){a[0]=999;}
A(){f();}
};
int main() {
A a;
cout<<a.a[0]<<endl;
return 0;
}
配列をコンパイル時に初期化する方法がわかりません
教えてください。
0623デフォルトの名無しさん
2015/04/19(日) 12:34:28.12ID:qbZayNF/#include <iostream>
using namespace std;
struct A{
static const int a[];
A(){}
};
const int A::a[] = {999,111};
int main() {
A a;
cout<<a.a[0]<<endl;
return 0;
}
0624デフォルトの名無しさん
2015/04/19(日) 12:42:26.23ID:XOnDNqxYusing namespace std;
struct A{
const int a[100];
constexpr auto f(){
for(int i=0;i<100;++i)
a[i]=複雑な式;
}
A(){f();}
};
int main() {
A a;
cout<<a.a[0]<<a.a[1]<< 〜略〜 <<endl;
return 0;
}
イメージとしてはこんな感じです
それではできません
c++14なので出来ます
0625デフォルトの名無しさん
2015/04/19(日) 12:50:05.59ID:ZmF0gxct0626デフォルトの名無しさん
2015/04/19(日) 16:09:51.41ID:XOnDNqxYusing namespace std;
struct A{
constexpr static int a[1];
constexpr auto f(){a[0]=999;}
constexpr A(){f();}
};
int main() {
A a;
cout<<a.a[0]<<endl;
return 0;
}
aにイニシャライザーがないとでます
コンストラクターをconstexprにすると
他の事が出来なくなります
0627デフォルトの名無しさん
2015/04/19(日) 18:45:10.81ID:F4fwOO7aここで相談していいものか微妙なんだがC++での名前空間の問題でこのような最適化がかかってしまうのかと思ってる感じなんだけど
int A( int a, char *b );
int B( int a, const char *b );
LPVOID pFunc;
pFunc = &A;
pFuncを用いた処理
pFunc = &B;
pFuncを用いた処理
これでビルドかけて機械語みると
mov dword ptr [esp], module.A;
処理
mov dword ptr [esp], module.A; //いやありえなくね?なんでA関数のアドレス設定してんの?
処理
上記のような感じになるんだ。
volatile使って抑制かけてもmodule.Aが参照されることからextern int A(...);側で関数定義しているところから
変な最適化がかかってそうなってるようにしか思えないんだが。
C++はCと違って名前空間の設定ができるからそれ絡みで処理系(コンパイラ)が勘違いしてる気がするんだけど
似たような経験や知識もっている人いない?
ちょっと場違いな質問で難しい問題だと思ってるんだが処理系詳しい人いたらいいな・・
0628デフォルトの名無しさん
2015/04/19(日) 18:48:38.60ID:MxqC0lBnそんな俺でも、constexpr A(){f();} で{f();}の関数呼び出し表記は駄目だろうと感じるけど
C++14ではOKなのかな
constexpr static int a[1]の初期化ってconstexpr static int a[1]{999};ってしないと駄目なんじゃないか
0629627
2015/04/19(日) 18:48:39.45ID:F4fwOO7aまた、処理の中でデバッグ分を入れたりすると正常な参照になる。
デバッグ分を入れない場合はAとBの関数の作りはほぼ同じような作りだから
処理系が勘違いし始めてるのかなっていう切り分けまではできているんだが、出来れば原因を突き止めたい。
無理やり解決することもできるけど気持ち悪いんだよな原因はっきりしないやつってのは。
0630デフォルトの名無しさん
2015/04/19(日) 18:56:21.93ID:MxqC0lBn色々な環境(VC,G++,Clangとか)で試した? それでみんな同じ結果?
0631デフォルトの名無しさん
2015/04/19(日) 19:00:10.97ID:oyXjgVbcこういう内容を聞く?
0632627
2015/04/19(日) 19:01:03.93ID:F4fwOO7aすまん。環境いい忘れてたがVS2010だなー。
windowsSDKで作ってる処理でもあるから移植して別の処理系試すのは出来れば避けたい。(最終手段としてやらなきゃいかんのだろうが
いま下記のような感じで改善するか試してるところ
Cは得意だがC++は不得意だからC++の知識が乏しいからこういうところでハマるときついんだよなー・・。
namespace TEST1 {
int A( int a, char *b );
}
namespace TEST2 {
int B( int a, const char *b );
}
LPVOID pFunc;
pFunc = TEST1::A;
pFuncを用いた処理
pFunc = TEST2::B;
pFuncを用いた処理
0633デフォルトの名無しさん
2015/04/19(日) 19:04:11.57ID:ZmF0gxct0634627
2015/04/19(日) 19:57:31.98ID:F4fwOO7a予想どおりDebugモードでは正常なコードが生成されたのでオプションを色々切り替えてみたところ正常なコードが生成されるようになった。
原因はVS2010のコード生成の下記のオプションを「いいえ (/Gy-)」にすることだった。
/Gy (関数レベルのリンクの有効化)
https://msdn.microsoft.com/ja-jp/library/xsa71f43.aspx
各関数をパッケージ化された関数 (COMDAT) 形式でパッケージ化します。
COMDAT形式にパッケージ化するのが悪かったんだろうがこれvolatileとかで回避すること出来ねえのかな
オプション外して治りはしたが根本的な解決とはまた違う気がするわ・・・。
まずCOMDATってなんぞやってところからだなw
>>631
結構ボリュームでかいから再現コードを新たに作製するのは難しいと思うわ(DLLだからデバッグめんどくさいしな)
暇な時にやってみて、もし再現できたら公開する。
0635デフォルトの名無しさん
2015/04/19(日) 21:56:23.53ID:9OEy8wIA{
public:
void Load();
private:
typedef char MyChar[40];
vector <MyChar> mychar;
};
void classA::Load()
{
mychar.resize(6);
}
こんなかんじに書くと「エラー 配列は初期化子リストでのみ初期化できます」と出てしまいます。
普通にint型で作ったvectorならresize出来るんですが・・・
どのようにすればよいのでしょうか?
0636デフォルトの名無しさん
2015/04/19(日) 22:03:35.11ID:iInvhP8b0637デフォルトの名無しさん
2015/04/19(日) 22:07:36.39ID:G8ijS8/cされてないんだったらしてほしい。
0638デフォルトの名無しさん
2015/04/19(日) 22:16:12.86ID:9OEy8wIADXライブラリを使ってるのですが
int DxLib::FileRead_gets(TCHAR *,int,int)' : 引数 1 を 'std::array<char,40>' から 'TCHAR *' へ変換できません。
と出てきます。
何度も何度も質問してすみません
0639デフォルトの名無しさん
2015/04/19(日) 22:23:56.56ID:iInvhP8b{
operator char* () { return &(*this)[0]; }
};
こんなコード絶対書きたくないけどw
0640デフォルトの名無しさん
2015/04/19(日) 22:30:19.14ID:9OEy8wIA勘違いしていたみたいです
arrayで作ったMyCharのサイズは途中で変えられないのでしょうか?
0641デフォルトの名無しさん
2015/04/19(日) 22:34:23.38ID:2BHkrPVe変えられたら固定配列でなくなる
vectorを入れ子にしなさい
0642デフォルトの名無しさん
2015/04/19(日) 22:44:58.71ID:9OEy8wIA0643デフォルトの名無しさん
2015/04/19(日) 22:46:30.83ID:2BHkrPVe0644デフォルトの名無しさん
2015/04/19(日) 22:54:32.15ID:9OEy8wIA頑張ってみます
0645片山博文MZ ◆T6xkBnTXz7B0
2015/04/19(日) 22:54:45.14ID:Kws6M3Szどうしても連続にしたいなら、一重にして
アクセス場所を計算で割り当てる必要がある。
0646デフォルトの名無しさん
2015/04/19(日) 23:24:47.45ID:UoddKiAV(char*)this と &this->elems[0] が同じになる保証ってあったっけ?
0647デフォルトの名無しさん
2015/04/19(日) 23:36:09.56ID:34xZOxfN0648627
2015/04/20(月) 01:57:48.89ID:xXEARlC8MAPファイル出力したところ、下記の様な情報が出力されてこれが原因だったんじゃないかと思う。
MAPファイル
Address Publics by Value Rva+Base Lib:Object
0000:00000000 ___ImageBase 10000000 <linker-defined>
0001:000003e0 _A@16 100013e0 f A.obj
0001:000003e0 _B@16 100013e0 f B.obj
該当関数はソースがA.cppとB.cppで別れていたから当然別オブジェクトになるんだけど
両方のオブジェクトファイルのセクション:オフセットがまったく同じになっていた。
正直、処理系に全然詳しくないから見当違いな事を言ってしまうかもしれないが、
この状態でリンクしにいったのが原因で>>627の様なバグが発生してたんじゃないかと思ってる。
ちなみに>>629で書いているけど該当関数にデバッグ文を入れると今回の事象が発生しないし、
この場合、MAPファイルのセクション:オフセットは同一ではなくなっている事を確認している。
今回の件は珍しくて非常に興味深いし。
後学のためにもこの辺詳しい人いれば補足しておくれ。
0649627
2015/04/20(月) 02:05:53.62ID:xXEARlC8ABとは別に似たような関数作って実験してみたらやはり下記の様な感じになって事象が発生したわ
0001:00000730 _C@20 10001730 f C.obj
0001:00000730 _D@20 10001730 f D.obj
出力された機械語の参照もおかしくなっている。(セクションとオフセットが同じ値だから当然か)
※mov dword ptr [esp], ベースアドレス + オフセット(00001730h)
0650デフォルトの名無しさん
2015/04/20(月) 03:25:54.29ID:DUxzIzguもしそうなら処理系のバグだけど、
AとBが同じコードになる様なケースなら最適化されどちらかが消されても何も不思議じゃない
0651デフォルトの名無しさん
2015/04/20(月) 03:55:11.54ID:DUxzIzguLPVOID pFunc;
pFunc = &A;
の時点でヤバすぎるコードだ
コンパイラだって人間が作ってる以上バグだって当然あるけど
こんなコード書く奴にどんな災いが起きようが自業自得というもの
0652デフォルトの名無しさん
2015/04/20(月) 09:45:06.44ID:dQWHCrXKusing namespace std;
template<typename T>
struct C{
using type=long;
};
template<>
struct C<int>{
using type=float;
};
template<typename T>
using B=typename C<T>::type;
template<typename T>
auto f(B<T>& x){cout <<"A"<<endl;}
int main() {
B<int> x;
f(x);
float y;
f(y);
return 0;
}
なぜマッチしてると思うのにマッチしてないエラーになるんですか?
0653デフォルトの名無しさん
2015/04/20(月) 12:46:56.50ID:9i4b1e7q0654デフォルトの名無しさん
2015/04/20(月) 15:01:25.44ID:dQWHCrXK#include <array>
using namespace std;
struct A{
constexpr static auto f()->array<int,1>{
return array<int,1>{999};
}
constexpr static array<int,1> a=f();
};
constexpr array<int,1> A::a;
int main() {
A a;
cout<<a.a[0]<<endl;
return 0;
}
>>626の続きでここまで考えたけど分かりません
教えてください
0655Office & Gamers ◆G144Hzgh2.0e
2015/04/20(月) 17:34:30.16ID:okp+NumQ0656デフォルトの名無しさん
2015/04/20(月) 18:16:32.25ID:bdfXzkyfマッチするのはわかるがオーバーロードの候補検索にも限界があるんだろうきっと。
ISO/IEC 14882:2014 14.8.2.5p8のルールに当てはまらなかったと推測
0657デフォルトの名無しさん
2015/04/20(月) 18:28:32.96ID:bdfXzkyfこれかな。
Bの実体がクラステンプレートでないからdeductionされない
0658Office & Gamers ◆G144Hzgh2.0e
2015/04/20(月) 18:58:52.99ID:okp+NumQ0659デフォルトの名無しさん
2015/04/20(月) 19:02:58.36ID:BWEdxuf10660デフォルトの名無しさん
2015/04/20(月) 19:42:13.27ID:BWEdxuf1失礼しました。
0661デフォルトの名無しさん
2015/04/20(月) 19:46:09.59ID:OqbAV7VH実行ごとに変わってもおかしくないんじゃ?
0662デフォルトの名無しさん
2015/04/20(月) 19:47:22.75ID:9i4b1e7q0663デフォルトの名無しさん
2015/04/20(月) 19:47:47.47ID:9i4b1e7q0664デフォルトの名無しさん
2015/04/21(火) 01:28:47.19ID:aTU/XB0Vhttp://www.cplusplus.com/reference/typeinfo/type_info/hash_code/
0665627
2015/04/21(火) 01:47:47.13ID:LXTViDG0すまない。色々開発作業すすめててこんな時間になっちまったが下記回答する。
> で、AとBが同一視されることによる具体的な問題はあったのかね?
> もしそうなら処理系のバグだけど、
> AとBが同じコードになる様なケースなら最適化されどちらかが消されても何も不思議じゃない
厳密に言うとAPIフック使ってるんだ。
例えばWriteFileやReadFileはIATを書き換えるために下記のような事をやっている。
hoge( "モジュール名", "API名", HookFuncA );
hoge( "モジュール名", "API名", HookFuncB ); ← ここがHookFuncAになる(理由は>>648で書いているMAPファイルの問題)
実際のHookFuncで処理している内容は正規のAPIアドレス取得して引数を受け流すだけ。(事象が発生する時はそれ以外やっていない)
正規のAPIアドレスを取得する処理の流れはFuncA、B共にほぼ変わらないから、
引数構成も同じだしおそらく似たような解釈されたんだろうな。
結論として処理系のバグだと俺は思っている。
ちなみに該当関数を下記で抑制させたらMAPファイルも治って正常に動くようになった。
#pragma optimize("", off)
#pragma optimize("", on)
> そもそも
> LPVOID pFunc;
> pFunc = &A;
> の時点でヤバすぎるコードだ
> コンパイラだって人間が作ってる以上バグだって当然あるけど
> こんなコード書く奴にどんな災いが起きようが自業自得というもの
すまんすまん。俺が出したコード例が悪かったわ。
正確には前述している通りのコードでpFunc = &A;なんて変なことはやってないんだ。
ともかく個人的に結論が出たから名無しに戻るわ。お互いプログラミングの精進しようぜお前ら。
0666デフォルトの名無しさん
2015/04/21(火) 07:48:09.78ID:AMz3cbvw再現性のあるコードを出さずに一人相撲かよ
0667デフォルトの名無しさん
2015/04/21(火) 07:59:28.86ID:3sACxkFmこいつのせいで他の質問がスルーされてる
0668デフォルトの名無しさん
2015/04/21(火) 08:22:59.20ID:/4w1NwLI>結論として処理系のバグだと俺は思っている。
日本語が読めないバカはどうしようもないな
同じにしてもも関数呼び出しに不都合が無い限り処理系は何をしても良い
関数のアドレスが重複するとか当たり前のこと
イヤならstatic volatile変数でも埋め込んどけ
0669デフォルトの名無しさん
2015/04/21(火) 21:47:51.04ID:lL+nS/AEprintf("%d\n",(unsigned int)-3/3*3);
0670デフォルトの名無しさん
2015/04/21(火) 22:03:07.89ID:2LCbUk1L0671デフォルトの名無しさん
2015/04/21(火) 23:10:25.82ID:zHBTo/Gl『Returns a hash code value that identifies the type.』
そんな嘘つきサイトのURL貼るなよ
0672デフォルトの名無しさん
2015/04/22(水) 10:25:54.62ID:oorXzYFJusing namespace std;
struct B{
int c[1]{};
constexpr static auto f(){
B b;
b.c[0]=999;
return b;
}
};
struct A{
constexpr static B b=B::f();
};
constexpr B A::b;
template<int a>
auto g(){cout<<a<<endl;}
int main() {
A a;
g<a.b.c[0]>();
return 0;
}
>>654をこれに変更したらclangでは動きましたがideone.comではエラーになります
ideoneはgccでc++14がちゃんと実装できてないのですか?
0673デフォルトの名無しさん
2015/04/22(水) 11:00:47.99ID:nQHDiL9hideoneのは多分4.9.2なんだと思う
0674デフォルトの名無しさん
2015/04/22(水) 13:36:27.95ID:oorXzYFJusing namespace std;
struct B{
int c[1]{};
constexpr B(){
c[0]=999;
}
};
struct A{
constexpr static B b{};
};
constexpr B A::b;
template<int a>
auto g(){cout<<a<<endl;}
int main() {
A a;
g<a.b.c[0]>();
return 0;
}
これでもコンパイルとおりました
ありがとうございます
0675デフォルトの名無しさん
2015/04/22(水) 21:20:05.33ID:p5bsCpo/GCC5の正式はまだだろう(もうそろそろだとは思うが)
C++14でconstexpr楽しんでねでstd::integer_sequenceなんかが追加になっているからな
0676デフォルトの名無しさん
2015/04/22(水) 21:39:08.86ID:p5bsCpo/0677デフォルトの名無しさん
2015/04/23(木) 10:05:32.90ID:NSi1YErYエラーや警告を出してほしいのですが
どうすればいいのですか?
0678デフォルトの名無しさん
2015/04/23(木) 10:44:40.71ID:NcXFq0hk0679デフォルトの名無しさん
2015/04/23(木) 11:03:56.01ID:qRmtbVqf0680デフォルトの名無しさん
2015/04/23(木) 12:45:42.85ID:+O6VWDUuどんなコードをエラーにしてほしいんだよ
サンプル示した方が速いと思う
0681デフォルトの名無しさん
2015/04/23(木) 13:54:45.91ID:qRmtbVqfusing namespace std;
auto f(int*& a){
return *(a++);}
int main() {
int a[3]={1,2,3};
cout<<f(a)<<endl;
cout<<f(a)<<endl;
cout<<f(a)<<endl;
return 0;
}
a[3]をポインターに変えるとうまくいくのですが
配列にするとエラーがでてできません
どうしたら直りますかおしえてください。
0682デフォルトの名無しさん
2015/04/23(木) 14:31:38.92ID:KAVaK0hf{
return *(p++);
}
int main()
{
int a[3]={1,2,3};
int *p = a;
cout<<f(p)<<endl;
cout<<f(p)<<endl;
cout<<f(p)<<endl;
return 0;
}
0683デフォルトの名無しさん
2015/04/23(木) 14:40:54.06ID:z1Tp7cOWauto f(int*&& a){
ポインタでないもの(a)にポインタへの参照をしようとしているが
その場合C++03ではint* const& aとconstが必要で++できない
C++11で追加された右辺値参照ならconstなしで同じことができる
それとautoで->なしはC++14からだ
g++ 681.cpp -std=c++14
0684デフォルトの名無しさん
2015/04/23(木) 15:24:29.86ID:qRmtbVqf&&にすると出力が111になりますね
0685デフォルトの名無しさん
2015/04/23(木) 15:29:50.88ID:qRmtbVqfアドレスそのものなので変更できないということですね
やっと理解できました
0686デフォルトの名無しさん
2015/04/23(木) 17:09:12.77ID:Gn+k9eRVint f1(int x) { return x; }
__attribute__((pure)) int f2(int x) { return f1(x); }
これをエラーにしてくださいということです
0687デフォルトの名無しさん
2015/04/23(木) 23:07:00.78ID:SGhZY/j90688デフォルトの名無しさん
2015/04/23(木) 23:12:42.32ID:SGhZY/j90689デフォルトの名無しさん
2015/04/23(木) 23:54:37.30ID:eEa/HFn0ここで聞くより。GCCスレで聞いたほうがよいじゃないか
GCC拡張の奴を標準のC++でエラーにできるのかな
アサートとか使えば出来るのかな...
0690デフォルトの名無しさん
2015/04/24(金) 00:15:53.40ID:pGLnwenfC2166エラー(const変えちゃだめよ)で弾かれるんですがどういう方法が正統なのでしょうか
コードは以下のような感じです
class A {
const int a;
A& operator=(const &A o){
this->a = o.a; //C2166
return (*this);
}
}
}
0691デフォルトの名無しさん
2015/04/24(金) 00:19:52.57ID:KlXTqpj5本当に代入したいのか?
それともコピーコンストラクタが欲しいのか?
0692Office & Gamers ◆G144Hzgh2.0e
2015/04/24(金) 00:24:15.54ID:gsh3Hj5N0693デフォルトの名無しさん
2015/04/24(金) 00:30:52.31ID:pGLnwenfコンテナに入れるのでオーバーロードを要求されます。
0694デフォルトの名無しさん
2015/04/24(金) 00:32:56.27ID:881zNkU7その値は変えない、と宣言しているようなものです
後から変えるならconstを外すべき
正直何がやりたいかわからんが
0695Office & Gamers ◆G144Hzgh2.0e
2015/04/24(金) 00:33:54.80ID:gsh3Hj5N0696デフォルトの名無しさん
2015/04/24(金) 00:36:07.91ID:ow/DeJq/const int b = 50;
a = b;
これコピーできるのか?
0697デフォルトの名無しさん
2015/04/24(金) 00:37:18.18ID:pGLnwenf自作以外のクラスのオブジェクトをコンテナに入れたいだけです。
値を変えたかろうが変えたくなかろうがオーバーロードを要求されるようです。
0698Office & Gamers ◆G144Hzgh2.0e
2015/04/24(金) 00:38:23.29ID:gsh3Hj5N0699デフォルトの名無しさん
2015/04/24(金) 00:38:50.01ID:pGLnwenf代入演算子を必須とする処理系側の作業で、
コンストラクタで処理できないので普通はどうするのかという意図で質問しました。
0700デフォルトの名無しさん
2015/04/24(金) 00:39:08.23ID:881zNkU7じゃあ690のコードは何のたとえにもなってないよね
問題を解決したい全コードを出せ
0701デフォルトの名無しさん
2015/04/24(金) 00:51:03.88ID:ow/DeJq/俺の例なら
const int a = 100;
const int b = 50;
const_cast<int&>(a) = b;
0702Office & Gamers ◆G144Hzgh2.0e
2015/04/24(金) 00:55:17.72ID:gsh3Hj5Nはい、次w
0703デフォルトの名無しさん
2015/04/24(金) 01:09:51.05ID:5q3CaoMeクラス定数に出来ないか設計を考えるんだ。
0704デフォルトの名無しさん
2015/04/24(金) 01:32:40.45ID:pGLnwenfiteratorでいじっているときにSTLの深いところで弾かれているので回避できないかもっと調べて出直してきますm(_ _)m
0705デフォルトの名無しさん
2015/04/24(金) 02:19:37.94ID:BiQ4+cXItypedef struct{
int data[NDATA];
double complex symbol[SYM];
}SIGNALS;
としているんですが、symbol値が複素数になりません。どうしてですか?
0706デフォルトの名無しさん
2015/04/24(金) 02:21:44.84ID:sbe0S4JR詳しいことは知らん(読んでない)が、よくあるよな
> iteratorでいじっているときにSTLの深いところで弾かれ
「は?俺そんなこと一言もいってないのに、いったい何の関係が・・・」
気を取り直して、へこへこ調べたあげく
「知るかヴォケ、そんなとこで決め打ちしてんじゃねえ!」
とかね
0707デフォルトの名無しさん
2015/04/24(金) 06:06:24.00ID:EJC6ZQDy0708デフォルトの名無しさん
2015/04/24(金) 06:12:48.13ID:EJC6ZQDy0709デフォルトの名無しさん
2015/04/24(金) 07:42:31.75ID:QbgvjuRu念のため聞くけど、クラス変数ってどういうもの?
0710デフォルトの名無しさん
2015/04/24(金) 08:47:33.59ID:JfCICRZ20711デフォルトの名無しさん
2015/04/24(金) 09:53:40.24ID:QbgvjuRu以前メンバ変数のことをクラス変数と呼ぶやつがいて、すれ違いの会話をしたことがある。
あとで原因に気付いたんだが指摘せずにそいつから離れた。
0712デフォルトの名無しさん
2015/04/24(金) 10:13:56.50ID:3r1MRGZBその間違いがあるかもしれないと疑うに足る理由があるときだけ
疑いを解消するためだけの無粋な質問をしましょう
ていうか、空気読めば分かるだろ
0713デフォルトの名無しさん
2015/04/24(金) 10:19:27.31ID:EJC6ZQDy0714デフォルトの名無しさん
2015/04/24(金) 10:59:40.01ID:SJX4zjJP代入演算子を必須とするという謎条件でも
operator=の中で*this = A(o.a)すればできると思うけどそれじゃダメなの?
0715デフォルトの名無しさん
2015/04/24(金) 12:10:10.67ID:EJC6ZQDy0716デフォルトの名無しさん
2015/04/24(金) 12:32:41.19ID:jkqKBt1Mコピコンだけなら
0717デフォルトの名無しさん
2015/04/24(金) 12:40:17.74ID:SJX4zjJPえっ?
http://ideone.com/4PUbJX
0718デフォルトの名無しさん
2015/04/24(金) 12:43:38.17ID:7A5IlD9x専ブラ締め出してからム板のレベル落ちすぎじゃね?
0719sage
2015/04/24(金) 12:53:42.35ID:QcIZpVM5const 消すのが正当。
いやコンテナに入れたいだけで変更もコピーもしてませんっていうのであれば
右辺値参照がサポートされてる環境ならコンパイルエラーは出ないはず。
そういう環境が用意できないなら薄汚く const_cast でもしてればいい。
0720デフォルトの名無しさん
2015/04/24(金) 13:02:37.17ID:SJX4zjJPはは俺がバカでした
0721デフォルトの名無しさん
2015/04/24(金) 13:04:03.30ID:881zNkU7お前2度とC++さわんなマジで
0722デフォルトの名無しさん
2015/04/24(金) 13:12:32.74ID:SJX4zjJPhttp://ideone.com/I7lsZ7
0723デフォルトの名無しさん
2015/04/24(金) 13:15:39.19ID:SJX4zjJP0724デフォルトの名無しさん
2015/04/24(金) 14:25:15.90ID:2/oaVRYv0725デフォルトの名無しさん
2015/04/24(金) 14:48:45.76ID:SJX4zjJP俺は解決策を提示できた
お前は罵ることしか出来ない無能
0726デフォルトの名無しさん
2015/04/24(金) 15:27:21.68ID:Kfq7fsbo0727デフォルトの名無しさん
2015/04/24(金) 15:31:22.87ID:SJX4zjJP提示してから言ってね無能
0728デフォルトの名無しさん
2015/04/24(金) 15:40:28.52ID:Kfq7fsbo0729デフォルトの名無しさん
2015/04/24(金) 15:52:49.09ID:SJX4zjJPとうとう発狂したか
哀れ
0730デフォルトの名無しさん
2015/04/24(金) 16:15:43.29ID:fozdvomS0731デフォルトの名無しさん
2015/04/24(金) 17:59:59.95ID:lmiDEY1Ttemplate<typename T>
using IteratorT=typename T::Iterator;
struct A{
using Iterator=int *;
auto begin()->Iterator {略}// A
auto begin()->IteratorT<A>{略} //B
auto begin()->int *{略} //C
};
AとBとCどれが正解ですか?
0732デフォルトの名無しさん
2015/04/24(金) 19:01:58.80ID:EJC6ZQDy(>>722を擁護してるんじゃなく、うんこな俺には正しいのかまずいのかわからない)
operator<の部分がアレなのはおいといて
なんか気持ち悪い感じはすげーするんだけど
0733デフォルトの名無しさん
2015/04/24(金) 19:31:26.71ID:GyPP4/bMちゃんとクラスのstatic const変数の定義書いてますか?
class unko {
static const int A = 100;
};
const int unko::A; //これ
0734デフォルトの名無しさん
2015/04/24(金) 20:03:21.87ID:LvePKIzx0735デフォルトの名無しさん
2015/04/24(金) 20:11:38.03ID:LOA4H2Vuそんな高度な質問は2chのプログラム板ではしないでください
0736デフォルトの名無しさん
2015/04/24(金) 20:24:46.39ID:SJX4zjJP本人が言うのもなんだけど何の問題もないよ
気持ち悪いのは同意だし、こんなコード仕事じゃ書かない
ただしこの場合はこれでいいけど、デストラクタを走らせなければならないメンバ
がある場合は↓の様にしなければいけないけどね
http://ideone.com/perUvr
operator<部分がアレ?何のことだろう?
0737デフォルトの名無しさん
2015/04/24(金) 20:31:28.36ID:ExNaQCDdデストラクタ走らせた後の placement newの中で例外が発生したら状態はメチャメチャよ!
(まあ遊びコードだということは分かってるから)
0738デフォルトの名無しさん
2015/04/24(金) 21:08:56.91ID:AOadAou2仕様上は鼻から悪魔なので
人類滅亡しようが文句は言えない
0739デフォルトの名無しさん
2015/04/24(金) 21:17:41.36ID:NvX0pdxfC++使っておいてそんなことはまず無い
0740デフォルトの名無しさん
2015/04/24(金) 21:31:13.21ID:KmXIJnIK仕事ものって例外・エラー処置を色々しないといけないからな
趣味ものなら、例外・エラーは必要最小限未満でも良いが
0741デフォルトの名無しさん
2015/04/24(金) 21:44:43.76ID:SJX4zjJPplacement newの例外?
お前らは難癖つけることだけは一流だなw
どういう場合にどうメチャメチャになるのか具体的な例を示すことはないだろうな
0742デフォルトの名無しさん
2015/04/24(金) 21:46:39.86ID:ExNaQCDd必要最小限「未満」
気に入ったwww
0743デフォルトの名無しさん
2015/04/24(金) 21:48:29.31ID:ExNaQCDdほぼ自明じゃね?
0744デフォルトの名無しさん
2015/04/24(金) 21:49:57.46ID:SJX4zjJP普通のデフォルト生成の代入演算子でもまったく同じ事だわ
0745デフォルトの名無しさん
2015/04/24(金) 21:56:01.79ID:KmXIJnIK俺ツールではエラーでたら処置するのめんどくせーで、ほぼ、はい終了ねにしているのが多いからな
おかげで使えねーソフトによくなっている
0746デフォルトの名無しさん
2015/04/24(金) 21:59:32.30ID:SJX4zjJPせいぜい「自明じゃね?」の捨て台詞が関の山
0747デフォルトの名無しさん
2015/04/24(金) 22:01:26.46ID:lmiDEY1T0748デフォルトの名無しさん
2015/04/24(金) 22:10:41.09ID:7A5IlD9xデフォルトの代入演算子が例外投げても基本的例外安全保障は満たしてるんだよ。
それに手動でnoexceptなswap関数を使ってcopy-and-swapするなら強い例外安全保障も満たせる。
例のplacement newで例外が投げられても例外安全保障が全くないんだよね。
デストラクタの呼び出しを防ぐ手段があるなら別だけど。
0749731
2015/04/24(金) 22:36:56.20ID:lmiDEY1Tありがとございました
0750デフォルトの名無しさん
2015/04/25(土) 00:18:07.20ID:JiGz+1sT構築が終わっていない出鱈目なメモリに対して
デストラクターを呼ぶことになるからムチャクチャだな。
特にクラスがトリビアルでないときは最悪だ
0751デフォルトの名無しさん
2015/04/25(土) 07:56:44.46ID:wqMgtpJQデフォルト生成の代入演算子で問題ないかどうかは、都度判断しなけりゃならないんだから
おまえの言う通り 「まったく同じこと」 だ
0752デフォルトの名無しさん
2015/04/25(土) 08:08:21.22ID:Jb9ExFOn*x=10; //自分で書いたヒープにちょっとラクガキ
delete x; //そして捨てる
}
みたいなデストラクタを持ってると、明示的デストラクタ呼び出しで捨てられたthis->x
に対してplacement newによるコンストラクタ呼び出し例外により*thisが消される時に
既に消えてるxに対してアクセスしちゃうな。
0753デフォルトの名無しさん
2015/04/25(土) 14:57:29.69ID:kJ4fYYnYusing namespace std;
using T1=int;
using T2=int;
auto f(T1 a){
cout<<1<<endl;
}
auto f(T2 a){
cout<<2<<endl;
}
int main() {
T1 a{};
T2 b{};
f(a);
f(b);
return 0;
}
これはいくら型を定義しても一番元の型でしかオーバーロード
出来ないということを表していますか?
0754デフォルトの名無しさん
2015/04/25(土) 14:59:35.84ID:uRlefziJ何が違うんだ?
個人的解釈では、usingは#defineに近いと思うんだけど。
0755デフォルトの名無しさん
2015/04/25(土) 15:05:50.58ID:MrtcAGpRusingはテンプレート使える
0756デフォルトの名無しさん
2015/04/25(土) 15:22:33.08ID:4ZOw+iO4いいえ
usingは型の定義でないためオーバーロードに関係しない
ということを表しています
0757デフォルトの名無しさん
2015/04/25(土) 16:45:29.03ID:kJ4fYYnY0758デフォルトの名無しさん
2015/04/25(土) 16:48:32.16ID:uRlefziJ0759デフォルトの名無しさん
2015/04/25(土) 17:50:14.22ID:MrtcAGpRちなみに俺が試した限り>>753は再定義ってことでコンパイルエラーになる
0760デフォルトの名無しさん
2015/04/25(土) 17:57:52.78ID:kJ4fYYnYtypedefは名前と違って型は定義されてなくてただのエイリアス
0761デフォルトの名無しさん
2015/04/25(土) 19:05:40.02ID:MrtcAGpR0762デフォルトの名無しさん
2015/04/25(土) 19:09:26.02ID:o0+9PbYE別名を実体に読み替えた結果に対して
行われる
0763靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト
2015/04/26(日) 01:06:12.88ID:Y3MqWFkg・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
10人に一人はカルトか外国人
「ガスライティング」で検索を!..
0764デフォルトの名無しさん
2015/04/26(日) 16:56:28.13ID:393KDKRYそれぞれ名前かぶりNGなんだな
0765デフォルトの名無しさん
2015/04/26(日) 23:12:37.33ID:qsJkdqQp全ての文脈で名前かぶりがNGなわけではない
0766デフォルトの名無しさん
2015/04/26(日) 23:26:50.69ID:mJnTBcXB0767デフォルトの名無しさん
2015/04/27(月) 07:29:16.45ID:RDoDXQt4using namespace std;
namespace stb{
template <int a>
struct A{};
template<>
struct A<1>{};
template<>
struct A<2>{};
}
using A=stb::A<0>;
int main() {
A a;
// your code goes here
return 0;
}
こうやればいいのですね
0768デフォルトの名無しさん
2015/04/27(月) 23:02:20.97ID:yA/R8UqB0769デフォルトの名無しさん
2015/04/27(月) 23:27:40.51ID:iwSGH0YNのTに指定できるクラスを特定のクラスを継承したクラスに限定することはできますか?
javaの
<T extends BaseClass>
みたいな感じです
0770デフォルトの名無しさん
2015/04/27(月) 23:33:01.35ID:zBMGGyjk0771デフォルトの名無しさん
2015/04/28(火) 00:39:35.57ID:rO9C2aMousing namespace std;
struct A { };
struct B : A { };
struct C { };
int main()
{
static_assert(is_base_of<A, B>::value == true, "test1");
static_assert(is_base_of<C, B>::value == true, "test2");
}
0772デフォルトの名無しさん
2015/04/28(火) 11:58:46.09ID:LPS4eGQB0773デフォルトの名無しさん
2015/04/28(火) 14:04:45.23ID:DcmqCUHe0774デフォルトの名無しさん
2015/04/28(火) 14:26:35.30ID:zJix27jC0775デフォルトの名無しさん
2015/04/28(火) 19:22:11.45ID:O4BRNsoF0776デフォルトの名無しさん
2015/04/28(火) 19:51:30.18ID:RqukAnDa「未来はある」の定義を書いてください
0777デフォルトの名無しさん
2015/04/28(火) 19:57:36.95ID:UkjyGXUe0778デフォルトの名無しさん
2015/04/28(火) 20:43:07.87ID:KqTo4oQm万能仕様だったんだよな
0779デフォルトの名無しさん
2015/04/28(火) 20:53:56.54ID:c2LgMy5Qなるほど
ありがとうございます
勝手にコンパイルエラー出してくれるようなのはなくて自分で実装するんですね
0780デフォルトの名無しさん
2015/04/28(火) 21:43:53.16ID:O4BRNsoF解釈はお任せします
0781デフォルトの名無しさん
2015/04/28(火) 21:45:16.74ID:HJC1x643そうなのか。
今回のは特定のクラスを継承したものだけど
XXXを満たしていない(必要条件満たしていない)のは駄目よとか出来たら良い場合があるだろうからな
0782デフォルトの名無しさん
2015/04/29(水) 20:10:58.14ID:DS/25RlUオブジェクトの生成から破棄までの時間を表示するサンプルを打ち込んだんだけど
0としか表示されません。
Linux上でg++でコンパイルするとダメなんですか?
0783デフォルトの名無しさん
2015/04/29(水) 21:15:49.85ID:DE/4ZI+P0784デフォルトの名無しさん
2015/04/29(水) 21:40:30.56ID:OLydmyrxあれは素朴なシステムを仮定しているから、うまくいかなくても仕方がない、放っておいて先に進んでいい
http://codepad.org/lwVv40bM
0785デフォルトの名無しさん
2015/04/29(水) 22:29:16.71ID:DS/25RlUじゃ、貼ってあるサンプルで試すわ(知らん文法混じってるけどw)
0786デフォルトの名無しさん
2015/04/29(水) 22:52:17.66ID:CTelZndeなんでループ内で毎回clock呼んでるの?
0787デフォルトの名無しさん
2015/04/29(水) 22:58:12.97ID:OLydmyrx時間稼ぎ‥
0788デフォルトの名無しさん
2015/04/30(木) 00:10:40.06ID:BTfegUIh0789デフォルトの名無しさん
2015/04/30(木) 14:27:12.72ID:ts1JvyON0790デフォルトの名無しさん
2015/04/30(木) 19:32:57.36ID:ioxLfyOWハーバート・シルトにいってくれ
0791デフォルトの名無しさん
2015/05/01(金) 03:16:47.61ID:vlM+4MwRclock何ソレうまいの?
しかもstd::clockじゃなくて::clockなんてもはや害悪
0792デフォルトの名無しさん
2015/05/01(金) 08:10:33.06ID:8Yyb98Uethread::sleep_for(chroo::seconds(1));
ありがとよ
0793デフォルトの名無しさん
2015/05/01(金) 08:23:19.60ID:Js76mxEt#include<thread>
using namespace literals;
std::this_thread::sleep_for(1s);
とマジレスしてみる
0794デフォルトの名無しさん
2015/05/01(金) 23:24:59.80ID:u780NpkF何も知らないんだね
0795デフォルトの名無しさん
2015/05/02(土) 02:28:07.49ID:8rP+TIajclockは時刻とは関係ないよ
0796デフォルトの名無しさん
2015/05/02(土) 02:50:31.53ID:RXlt9kb8一フレームごとに1ずつ増加する変数Aがあるとして
(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22、と推移している)
毎回、その変数Aの値だけを確認しては
その値の1の位だけを取り出して変数Bに格納したいんです。
それをシンプルにはじき出せる計算式ってありますか?
自分だと、毎回十の位を割り出してそれを引く方法しか思いつきませんが、
それだとスマートじゃないというか、十の位を判断する処理まで作るのは
理想じゃないんです。
ある二ケタの数字にかけると、必ずその数字の1の位が出る、みたいな
計算式ありませんか?
0797デフォルトの名無しさん
2015/05/02(土) 03:02:55.89ID:sa9psCKpttp://ideone.com/0SjnMs
こんなんでいいのか
0798デフォルトの名無しさん
2015/05/02(土) 03:08:43.94ID:RXlt9kb8これです、ありがとうございました。
0799デフォルトの名無しさん
2015/05/02(土) 11:04:57.48ID:oC0JGlfI%100して/10とかやってるけど、その方法で良いんだろうか
0800デフォルトの名無しさん
2015/05/02(土) 11:05:18.72ID:KaJzo6cD何百年前のコンパイラ使ってんだ
0801デフォルトの名無しさん
2015/05/02(土) 11:20:08.16ID:4YrLKI3W0802デフォルトの名無しさん
2015/05/02(土) 11:22:56.48ID:oC0JGlfI0803デフォルトの名無しさん
2015/05/02(土) 11:25:47.58ID:4YrLKI3Wその代りにenumを使うようになった
0804デフォルトの名無しさん
2015/05/02(土) 11:26:56.73ID:lFTXoRNX0805デフォルトの名無しさん
2015/05/02(土) 11:28:50.69ID:BbwZ7nY0class unko {
enum {U1, U2};
};
とか流行ったね。グローバルなら昔は
const int U1 = 100;//内部リンケージ
static const int U1 = 100;
と書いた。グローバルにenumを使うのは聞いたことがない。
0806デフォルトの名無しさん
2015/05/02(土) 11:34:00.77ID:oC0JGlfIありがと。
問題になるとしたら単純置換ってことだろうなとは思ってたが、やはりそうか。
昨今の「コードの目的が分かるように書く」ってのとは違う
バッドノウハウsって感じだね
0807デフォルトの名無しさん
2015/05/02(土) 13:42:36.40ID:EaDYU6BE0808デフォルトの名無しさん
2015/05/02(土) 13:45:51.31ID:GHLPNI3Ddefineは便利。
0809デフォルトの名無しさん
2015/05/02(土) 13:49:11.66ID:YO5MAHbf0810デフォルトの名無しさん
2015/05/02(土) 14:44:41.22ID:F+loCXy5衝突したらユーザの能力不足
0811デフォルトの名無しさん
2015/05/02(土) 15:31:29.27ID:EtP40/SZC++を読もうとした事が無いのですが、C が出来れば読めますか?
0812デフォルトの名無しさん
2015/05/02(土) 15:32:41.05ID:YO5MAHbf0813デフォルトの名無しさん
2015/05/02(土) 15:33:41.26ID:4YrLKI3W0814デフォルトの名無しさん
2015/05/02(土) 15:42:41.38ID:gAnCVUja0815デフォルトの名無しさん
2015/05/02(土) 15:57:11.57ID:XBfs8u1C0816デフォルトの名無しさん
2015/05/02(土) 16:25:38.58ID:jUtO03f6Cが出来ない人に比べたら1000倍のアドバンテージがある、全然問題ない
0817デフォルトの名無しさん
2015/05/02(土) 16:59:55.14ID:0E2FXew40818デフォルトの名無しさん
2015/05/02(土) 17:59:04.22ID:nMBC7KyNそれはそれは面白いおもちゃがあってだな...
0819デフォルトの名無しさん
2015/05/02(土) 18:36:45.72ID:4VidBwQk0820デフォルトの名無しさん
2015/05/02(土) 18:50:21.10ID:4VidBwQk0821デフォルトの名無しさん
2015/05/02(土) 19:23:22.70ID:Pp1W31E3これが配列になるとどうなるのでしょう
ヘッダーに具体的な内容は書くなと教わりましたので配列長や初期化子を書くのがおかしく思えます。
これでちゃんと動作するでしょうか
0822デフォルトの名無しさん
2015/05/02(土) 19:31:07.04ID:YO5MAHbf0823デフォルトの名無しさん
2015/05/02(土) 19:33:26.71ID:F+loCXy50824デフォルトの名無しさん
2015/05/02(土) 19:35:19.96ID:vEV2L0W4かなり昔にexternで共有しようとして、できなかった記憶でそれ以来つかってない気がする。
グローバルで共有しなくても引数などで渡したら同じでは。
0825デフォルトの名無しさん
2015/05/02(土) 19:40:28.44ID:vEV2L0W40826デフォルトの名無しさん
2015/05/02(土) 19:50:11.23ID:Pp1W31E3>>823グローバル変数を嫌う風潮は名前空間以前の話だと思い込んでましたが。。。
>>824初耳です。とりあえずC++の方で話してください
>>825組み込み関数の配列ならまだわかりますが、自作クラスの配列なのでなんか大げさな気がするのです。
0827デフォルトの名無しさん
2015/05/02(土) 20:40:26.46ID:F+loCXy5名前空間なんてグローバル変数の前には何の役にもたたん
0828デフォルトの名無しさん
2015/05/02(土) 21:28:13.14ID:Pp1W31E3グローバル変数嫌いなのは設計をしっかりやってこなかったことの表れなのかと
0829デフォルトの名無しさん
2015/05/02(土) 22:16:13.30ID:sWDugFs40830デフォルトの名無しさん
2015/05/02(土) 23:24:29.76ID:5bZclG1sビジネスは変化するものだ
ドメインが変化すれば設計も変わる
グローバル変数はシステムから進化の柔軟性を奪う
設計を上手くすればグローバル変数が
あってもいいなんてのは言い訳だよ
グローバル変数を無くした設計のほうが優れてるのだから設計を上手くすればグローバル変数も消える
0831デフォルトの名無しさん
2015/05/03(日) 01:27:58.33ID:K2cB2VuVextern 型名 変数名[];
[]の中にサイズを書いてもよいが、
具体的な内容かどうかはおまえが判断することだ。
# Cとの違いはconstとtentativeだが、ここでは関係ない
# グローバルは必要かどうか? おまえも脱力したようにまったく関係ないw
# グローバルを使わないことが最終目的化した「設計」なんて糞!相手にすること自体が「退化」でしかない
0832デフォルトの名無しさん
2015/05/03(日) 04:07:52.00ID:OTfyPYZU読みにくくてバカっぽいんだけど
0833デフォルトの名無しさん
2015/05/03(日) 08:55:02.54ID:n+HTtmT9転じて、「ここ突っ込まないでね」という意味で使う人もいる。
本文より#が長い奴はバカかチキンとみなされた。
0834デフォルトの名無しさん
2015/05/03(日) 12:12:51.34ID:PxtFfrN4「コメント(独り言)だから読まないでね」を言い訳に
負け惜しみ的な挑発を書くのに使用された
0835デフォルトの名無しさん
2015/05/03(日) 12:39:04.91ID:EHyjOu1T>ヘッダーに具体的な内容は書くなと教わりましたので配列長や初期化子を書くのがおかしく思えます
「利用に不必要な実装の詳細を書くな」というのはまだわかるが
具体的な内容を書くなというのは低能すぎるだろう。
配列の要素数ってのは型の一部で初期化データとは訳が違うし
書いてないと出来ないこともある。
要素数を使うテンプレートとforループと不完全型が許されない文脈。
0836デフォルトの名無しさん
2015/05/03(日) 17:23:40.64ID:0nFiiEQC突っ込めないのを突っ込まないことにして挑発してる誰かさんのブーメランかよ
0837デフォルトの名無しさん
2015/05/03(日) 18:13:03.64ID:7AJkLeM50838デフォルトの名無しさん
2015/05/03(日) 19:04:43.72ID:0nFiiEQCしかしコメント行は積年の人生訓話でありいろいろと参考になった
>>821
QZ芸の「extern は要らない子っ!」を君に贈ろう、C ならば tentative を駆使して extern を排除するのが好み、あくまで好みだが。
>>831 の言及するとおり、C と C++ との一番の違いは tentative.
リンクのときにすべての *.o は一つにまとまるのだから、実は必ずしもヘッダに extern 宣言をする必要はない
俺は、ちょいと「見えてくれればいいなあ」と思ったときには躊躇なく *.c のなかで extern しちゃったりする
こんな感じで
/* makefilename.c */
/* $Date: 2012-03-21 04:08:22 $ */
#include <windows.h>
#include "makefilename.h"
#include "combdoctype.h"
#include "combname.h"
#include "editdate.h"
#include "wmalloc.h"
extern char *ComboDocTypetableG[];
extern char *ComboNametableG[];
しかし、お行儀よくするのならヘッダで extern 宣言するべきなのかもしれない。
配列の extern の場合は、俺はサイズを書かない。配列サイズは実際に確保するところで書く
ただし配列の実際のサイズはきちんとコードで周知させるようにはする
0840デフォルトの名無しさん
2015/05/03(日) 21:01:45.68ID:5tvSOVaUこのバカはextern無しでうまく動いてしまった理由も理解してなかったのか
普通の環境なら問題なくリンクできるよ
だからこそ C89 で tentative defenition がわざわざ定義されているだろう?
お前は MASM を勉強したほうがいい
0843デフォルトの名無しさん
2015/05/04(月) 01:52:23.14ID:HqIFPjtbC:\>"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
C:\>masm
'masm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\>ml
Microsoft (R) Macro Assembler Version 14.00.22310.1
Copyright (C) Microsoft Corporation. All rights reserved.
usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info
アフォなの? 死ぬの?
0844デフォルトの名無しさん
2015/05/04(月) 03:12:02.35ID:DvxDo7Thリンカがシンボル重複エラーを無視するのはC++のODRと違って
保証されない動作なんだから他人にすすめるなボケ
0845デフォルトの名無しさん
2015/05/04(月) 04:19:36.92ID:rkUrIZbgms-c6 の時代から cl だったし ml だったろう?お前は何をいいたい?
>>844
C に関して自分の好みを書いただけ、C++ は別としたが、明言はしなかったのは悪かった。
>>839 で >>821 に薦めたのは「(一次元)配列を extern するときは配列サイズを明示しない」だが、それに問題があるの?
0846デフォルトの名無しさん
2015/05/04(月) 10:50:47.63ID:8XXgjNL8844はtentativeが解ってないんだよ
シンボルは重複しねえの知らねーし
0847835
2015/05/04(月) 11:26:50.69ID:6tuENR75日本語が読めないようだけどもう一度教えてやろう
>>835のようなケースでコンパイルが通らないという問題がある
例1: for (auto i : arrar1)
例2: sprintf(arrar1, "%d", 100);//sprintf_sの配列板MS拡張
例3 decltype(arrar1) arrary2
0848デフォルトの名無しさん
2015/05/04(月) 11:50:09.37ID:Brvnrtbftentative definitionは一つの翻訳単位の膣中の話なので関係ないだろう。
ただリンカの重複は規格上許可されている。
ISO/IEC 9899:2011
J.5.11 Multiple external definitions There may be more than one external definition for the identifier of an object,
with or without the explicit use of the keyword extern; if the definitions disagree,
or more than one is initialized, the behavior is undefined (6.9.2).
定義が異なったり複数回初期化されると未定義ということは、
一致している限りODRと同様に複数回の定義を許していると読んだ。
0849デフォルトの名無しさん
2015/05/04(月) 13:52:05.20ID:8XXgjNL8アラーの神が配列板のMSスレで中出しって凄い妄想だな
# リンカは重複しねえんだよ
0850デフォルトの名無しさん
2015/05/04(月) 15:36:30.62ID:0fo8dLYV0851デフォルトの名無しさん
2015/05/05(火) 02:41:06.16ID:i6lTVV+i「Boostってなんや!そんなん使ったらわからへんやろ!やめや!」言われてないかい?
0852デフォルトの名無しさん
2015/05/05(火) 02:55:18.30ID:EIQ3MmMp0853デフォルトの名無しさん
2015/05/05(火) 17:09:38.91ID:GWkF3sJ3詳しくないけど、どういう部分?
0854デフォルトの名無しさん
2015/05/05(火) 17:14:25.41ID:vYfhfuWD0855デフォルトの名無しさん
2015/05/05(火) 17:14:54.26ID:By/mCe1Z0856デフォルトの名無しさん
2015/05/05(火) 18:38:03.39ID:u63F52Uq面白いライブラリ書きたいと思ってるんだが。
0857デフォルトの名無しさん
2015/05/06(水) 02:55:14.17ID:GDfCo5jZ当方ビジュアルスタジオ2010にてアクションゲームを作っているんですが、
デバッグ中、配列に格納したマップ情報とオブジェクトとの判定をする部分で
ごくまれにエラーが起きて停止します。
経験則で判断すると、マップ判定でのエラーは
マップ情報の無い部分にオブジェクトが飛び出すというものが多かったんですが
今回は目視ですべてのオブジェクトが飛び出してるか否か確認出来る状態で
毎回エラー発生時に怪しいオブジェクトがいないので、今までのエラーとは違うような気がします。
しかも、滅多にそのエラーが出ないため、原因を探れません。
ただ、気持ち悪いことがひとつありまして、そのエラーで停止したあと、
マップの情報を入れた配列にカーソルを当てて、要素を見たら、
途中から「?」という状態になって表示されてるんです。
http://download1.getuploader.com/g/zipc ... e/91/B.png
http://download1.getuploader.com/g/zipc ... e/90/A.png
これがおかしなことに、見るのを止めて、もう一度カーソルを合わせてみると
今度はちゃんと中身が入ってる状態で表示されたりします。
ビジュアルスタジオの扱いにまだ慣れてないせいもあり、
中身が「?」で表示されたのは初めてだし、覗き直すたびに
「?」だったり、ちゃんと中身が見れたりすることが気持ち悪いんですが
これは別に、問題ないのでしょうか?(もともとそういうものだ、とか)
もし、ゲーム中に配列の中身が「?」みたいになる瞬間があるのなら
そりゃいきなりオブジェクトがど真ん中にいてもエラーになると思うんです。。。
これが原因なのかと思うんですが、、違いますか?
もしくは配列覗いたときの、「?」表示はビジュアルスタジオのバグなんでしょうか?
ちなみに、マップ配列の中身の格納はゲームが始まる最初に行っているので、
ゲーム中にマップ配列の中身が変わることは考えられない仕様です。
だとするとこの「?」はなんなんでしょうか?
考えられる要因を教えて下さい、お願い致します。
0858857
2015/05/06(水) 02:56:58.20ID:GDfCo5jZこちらです。
http://download1.getuploader.com/g/zipcodezipcode/91/B.png
http://download1.getuploader.com/g/zipcodezipcode/90/A.png
0859デフォルトの名無しさん
2015/05/06(水) 03:08:17.24ID:p+6RqcyD推測ではただのデバッガの都合だから、気にスンナとしか思わん。
あと、vector使うべし。
0860デフォルトの名無しさん
2015/05/06(水) 03:12:16.76ID:GDfCo5jZレスありがとうございます。
もちろん、ベクターを使っております。
画像は>>858に見れるURLを貼りましたが確認無理ですか?(pugだからでしょうか?
0861デフォルトの名無しさん
2015/05/06(水) 03:23:24.18ID:p+6RqcyDレンジがでかすぎるんじゃないかなぁ。
デバッガにはお世話になってるが、いつもブレークポイントで止めて使ってるなー。
自分は2013使ってるが、そんな感じにはならんな。
なんかそろそろ2015が出るそうだ。
0862デフォルトの名無しさん
2015/05/06(水) 03:25:42.07ID:D+nPUDhH0863デフォルトの名無しさん
2015/05/06(水) 03:27:57.23ID:GDfCo5jZえっと、ベクターでエラーが起きたら中断するじゃないですか?
そのときに、エラーの起きた個所に黄色の矢印が出て
そこの配列の中身を見ると、画像にあるように「?」とかなるんです。
ただ、気持ち悪いのは、もう一度見直すと、中身がちゃんと入ってたりするんですよね。
単なるvisualstudioのバグでしょうか?
0864デフォルトの名無しさん
2015/05/06(水) 03:33:23.08ID:GDfCo5jZはい。範囲外では無いはずなんです。
言うなら、二次元配列(map[90][60])で作った画面(map)の
ど真ん中でこのエラーが起きる感じなんです。
ちなみに、細かくどこの場所(配列の要素数)で起きたかを確認しようと
yとxにカーソルを当てた場合、yの値が表示してくれず、、
visualstudio2010を使ってまだ1年ほどですが、たまに思うんですけど
ブレークポイントで止めたとき、
すべての変数の中を確認表示されるわけじゃないですよね?
カーソルをあてても反応しない変数が多々ありますよね?
0865デフォルトの名無しさん
2015/05/06(水) 04:09:58.30ID:D+nPUDhHあとデバッガで表示されないのはリリースビルドでデバッグ情報が無効とかじゃないかな
ビルド構成をDebugにすれば出ると思う
0866デフォルトの名無しさん
2015/05/06(水) 04:17:21.02ID:GDfCo5jZ深夜なのに付き合ってくださって本当にありがとうございます。
非常に心強いです。
>念のため、アクセスする直前に範囲外かどうかチェックするコード
なるほど、了解しました。
>リリースビルドでデバッグ情報が無効とかじゃないかな
>ビルド構成をDebugにすれば出ると思う
ああ、確かに上記の配列確認は
リリースで実行中に出たエラー中断で確認してました。
ちょっとデバッグで確認してみます。
稀にしか出ないエラーですので
これらをチャレンジして、また昼にでも報告させて頂きます。
ありがとうございます。
0867デフォルトの名無しさん
2015/05/06(水) 07:20:03.49ID:X3Q3K5tH0868デフォルトの名無しさん
2015/05/06(水) 09:53:43.87ID:GDfCo5jZ問題が解決しました、エラーはちょっとしたミスでした。
また、変数の中身の話もリリースじゃ無くデバッグにしたら問題無かったです。
ありがとうございました。
0869デフォルトの名無しさん
2015/05/06(水) 13:30:00.38ID:UJrx/1uRttp://peace.2ch.net/test/read.cgi/tech/1423872914/653
0870デフォルトの名無しさん
2015/05/06(水) 13:45:00.47ID:8+3ki+s8ネットの警察気取りか? 2ちゃんのスッパマンよ
0871デフォルトの名無しさん
2015/05/06(水) 13:56:28.39ID:28cWsqJb0872デフォルトの名無しさん
2015/05/06(水) 14:23:43.84ID:UsA1ITN/0873デフォルトの名無しさん
2015/05/06(水) 14:30:49.20ID:8+3ki+s80874デフォルトの名無しさん
2015/05/06(水) 14:51:06.63ID:II8rx/Qj向こうでも対応してるレスあるけど、結局無視だしな
最低限のマナーは守るべき
0875デフォルトの名無しさん
2015/05/06(水) 14:58:52.37ID:28cWsqJbなぜマルチがダメか考えたことないんだろうな・・・
誰かが言ったからダメ程度の浅はかな知識しかないのだろう
0876デフォルトの名無しさん
2015/05/06(水) 15:03:19.85ID:ROM3ZfOK0877デフォルトの名無しさん
2015/05/06(水) 15:07:19.05ID:KY+yTKiM馬鹿だなぁ
0878デフォルトの名無しさん
2015/05/06(水) 15:18:41.56ID:A7Bt3It+この板は誤読とか変な思い込みで頓珍漢な回答する人も多いけど、そういう層と
かなりかぶってそうな気がする。
0879デフォルトの名無しさん
2015/05/06(水) 15:50:53.32ID:8+3ki+s8今はクロスポストを知らないやつほど金切り声をあげる皮肉な遺産となった
権利のない主張をぎゃんぎゃん吠えるという点では直リンと似ている
これもかぶってるんじゃないかねえ
0880デフォルトの名無しさん
2015/05/06(水) 16:39:28.20ID:II8rx/Qjで、何が言いたいんだ?
浅はかな知識で考えた言い訳かい? w
0881デフォルトの名無しさん
2015/05/06(水) 16:42:46.18ID:II8rx/Qjクロスポストの機能のない掲示板でなに言ってるんだ?
バカなの?
0882デフォルトの名無しさん
2015/05/06(水) 16:48:37.64ID:8+3ki+s8だからシュールな主張だってことだよ
おまえ結局、何がダメなのか、何の権利で言ってるのか説明できないだろ
せいぜい言論の自由くらいだろ、おまえの頭ん中は
0883デフォルトの名無しさん
2015/05/06(水) 16:53:41.36ID:7JUI6d7v0884デフォルトの名無しさん
2015/05/06(水) 17:13:31.94ID:II8rx/Qj> おまえ結局、何がダメなのか、何の権利で言ってるのか説明できないだろ
> 向こうでも対応してるレスあるけど、結局無視だしな
の意味も理解できてないのかよ...
> せいぜい言論の自由くらいだろ、おまえの頭ん中は
言論の自由?
最近覚えたのか?
全然関係ないぞ w
0885デフォルトの名無しさん
2015/05/06(水) 17:41:23.74ID:EH6/9roM0886デフォルトの名無しさん
2015/05/06(水) 17:49:37.50ID:UJrx/1uR>>870 ID:8+3ki+s8
>>871 ID:28cWsqJb
0887デフォルトの名無しさん
2015/05/06(水) 17:54:59.51ID:EiqG0b910888デフォルトの名無しさん
2015/05/06(水) 18:09:55.82ID:28cWsqJbマルチはダメはアホな考え方だな
0889デフォルトの名無しさん
2015/05/06(水) 18:11:47.91ID:uuh+Gth4ダメだと言っている人が居たからです
ボクの常識です
でも他人にとって常識かどうかは不明です
0890デフォルトの名無しさん
2015/05/06(水) 18:12:09.84ID:28cWsqJbみんなマルチはダメだと言っているから
みんなが言っていることは正しい
みんなが言ってないことは間違っているという
自分の意見の無い村社会の日本人の典型的な考え方
みんなが守っていることをやらないとそれを口実に
そいつを殺したり殴ったりしてもいいというのが
日本人の村社会
0891デフォルトの名無しさん
2015/05/06(水) 20:35:23.09ID:J3gYGT680892デフォルトの名無しさん
2015/05/06(水) 20:37:22.46ID:uy7C1mjZ0893デフォルトの名無しさん
2015/05/06(水) 20:40:13.10ID:5sLgMUIt質問の分散、その回答の分散と大抵の場合片方はスレ違いになっているからなんだよ
また回答さえもらえればそれでいいという質問者の姿勢が見え隠れすることも問題が提起される原因になっているのかもしれない
きっと最初のスレで誘導ありがとうございますと言い他のスレから来たことを伝え改めて質問をすれば優しい世界になっていたことでしょう!!
0894デフォルトの名無しさん
2015/05/06(水) 20:43:13.74ID:UsA1ITN/だからまあ、よく知られているデメリット(二度手間だとか情報が集約できないとか)をきちんとカバーすれば
個人的には何ら問題ない、場合によってはメリットになりうるんじゃないかなと
0895デフォルトの名無しさん
2015/05/06(水) 20:46:47.47ID:oaUrQJWU>大抵の場合片方はスレ違いになっているからなんだよ
つまり否定派は>>893のように論理的な思考ができないバカということ?
0896デフォルトの名無しさん
2015/05/06(水) 21:02:03.84ID:A7Bt3It+両方のスレに書かれるのが無駄ってことかね?
0897デフォルトの名無しさん
2015/05/06(水) 21:05:33.20ID:EiqG0b91両方みてれば重複してやりとりを見る無駄になるし
やるなら一つに投下して、で理由があれば移動先を示して移動すればいい
0898デフォルトの名無しさん
2015/05/06(水) 21:12:09.25ID:gh4kMUAtそれぞれのスレで両方とも回答レスがあったら今度は
二回も回答を目にしてしまったことに対してマルチ否定を唱えるとは
やはりマルチ否定派は頭がおかしい
0899デフォルトの名無しさん
2015/05/06(水) 21:38:35.41ID:A7Bt3It+0900デフォルトの名無しさん
2015/05/06(水) 21:47:50.28ID:q7mBNPu7マルチが悪いことにはならないぞ
0901デフォルトの名無しさん
2015/05/06(水) 21:54:56.61ID:UsA1ITN/全くもって質問者が悪いのはそのとおりだが、マルチポストのよくある問題の1つには違いないかな
0902デフォルトの名無しさん
2015/05/06(水) 22:02:34.46ID:8+3ki+s8だから質問者の何が悪いんだよ?
循環論法ぬきできっちり説明しろ
0903デフォルトの名無しさん
2015/05/06(水) 23:48:35.25ID:UsA1ITN/上2つのレスくらい読めよ。
0904デフォルトの名無しさん
2015/05/06(水) 23:55:01.84ID:RN/VQyA5・・・というような権利の主張です。
最初のスレに質問者独占利用権があります。
0905デフォルトの名無しさん
2015/05/07(木) 00:04:02.39ID:fQls54Ruこうか?
0906デフォルトの名無しさん
2015/05/07(木) 00:14:48.29ID:9dvShzW50907デフォルトの名無しさん
2015/05/07(木) 00:20:19.61ID:kuVzgkckマナー違反の理由の項目
おおよそ理由はすでに出てるな
内2番め、資源についてはちょっと疑問だが
0908デフォルトの名無しさん
2015/05/07(木) 00:29:50.33ID:xpfh09H0参考文献をつけるのはありだが
おまえ自身の言葉で何も語らずに参考文献が全て
というスタイルで賛同を受けることができるとでも思っているなら
脳外科を受診したほうがいい
おそらく脳全摘と塩化カリウムの点滴をすすめられるだろうな
他人を「マルチポスト」であると非難するには
挙証責任があるんだが、赤の他人が偶然同じ発言をしたのではないと
どうやって確認しているんだろうな
聴衆の誰かが独り言を言ったに過ぎない、で逃げるなら
こっちもそう扱ってやるだけだが
0909デフォルトの名無しさん
2015/05/07(木) 00:43:19.18ID:NPJhmwrPヒント:ID
0910デフォルトの名無しさん
2015/05/07(木) 00:55:30.06ID:yrCnDg7F全然飛躍じゃないだろ。少なくとも>>899-903読む限り
つまりアレだ。マルチ否定は理屈じゃない。感情だ。
電車の中で携帯電話で話す人がいると怒るのと同じで嫌がる人もいます。
レストランでウンコを連呼する人がいると不愉快に感じて発狂するひともいます的な
0911デフォルトの名無しさん
2015/05/07(木) 01:03:42.24ID:xpfh09H00912デフォルトの名無しさん
2015/05/07(木) 01:06:34.17ID:9qCHaQMT回答者は質問者のために時間を割いているのに
質問者はせいぜい「一応」程度にしか思っていない、
その態度をよく思わないから嫌われるのでは?
まあただ条件反射で言っている香具師も多そうだけどネ
0913デフォルトの名無しさん
2015/05/07(木) 01:22:05.20ID:ANuoCHhgおまいらだってC++標準委員会みたいなのがもう2つくらいできちゃったらこまるやろ
0914デフォルトの名無しさん
2015/05/07(木) 01:43:08.00ID:IYwlVx6v2つがバトルして勝った方が標準化や!
0915デフォルトの名無しさん
2015/05/07(木) 01:44:39.09ID:9dvShzW5>899「マルチポストに関して、お礼をしない質問者がいる」
>900「それは質問者個人の問題であり、マルチポストの是非とは少し異なる」
>901「確かにその質問者個人が悪いだけだ。しかしマルチポストでは発生しやすい問題なのは確かだ」
確かに、ここから「だからマルチ禁止にすべき」と結論付けることは可能だが、そう主張するつもりは無かった。
「飛躍しすぎ」という言葉は撤回しよう。すまない。
0916デフォルトの名無しさん
2015/05/07(木) 01:44:56.25ID:aqhaq9ot目的をすり替えないでください
規格の策定は標準を作成するのが目的なので一つである必要があります
掲示板はアナタの特定のクソ質問のために有るのではなく、C++に関する議論をするためのスレッドがあったり
C、C++を問わず環境依存も可な議論をするためのスレッドがあって、
それを利用してクソ質問を行っているだけなので複数に関して何ら問題はありません
0917デフォルトの名無しさん
2015/05/07(木) 01:47:02.07ID:Z0j1nzQ60918デフォルトの名無しさん
2015/05/07(木) 01:52:09.22ID:aqhaq9ot>これはシステム的に解決する方法があります
いえ問題は何もありませんから「解決」という考えがそもそもおかしいです
0919デフォルトの名無しさん
2015/05/07(木) 01:55:56.26ID:9dvShzW5それは流石に違うんじゃないか?
0920デフォルトの名無しさん
2015/05/07(木) 02:01:13.73ID:aqhaq9ot少なくとも917の読点の前の文章には
解決すべき問題が一切述べられていないぞ
0921デフォルトの名無しさん
2015/05/07(木) 02:06:58.62ID:9dvShzW5ああ、それもそうだな。すまん
0922デフォルトの名無しさん
2015/05/07(木) 08:01:33.92ID:fQls54Ruその理由がそのまま2chに当てはまるとも思わんけどな。
>回答が複数のコミュニティーに分散してしまい、知識の集積という一コミュニティーの目的にそぐわない。
一箇所に集積する目的なんかないだろう。分散しすぎることは良くないかもしれんが、それは
重複スレを避けるという方向で調整されているわけなんで、スレ違いにならない限り問題ないだろう。
>その問題に関心のある人は類似した複数のコミュニティーに参加して新規投稿をチェックしていることが
>多いが、あちこちの同じ投稿に対してそれが本当に目新しい内容かを峻別しなければならなくなる。
別に「目新しい内容かを峻別」する必要なんてないだろう。
同じ内容を過度に投稿したらコピペ荒らしと同じで迷惑だが程度問題。
>他のコミュニティーで付けられた回答を知らずに同内容の回答を付けてしまったり、他のコミュニティーで
>すでに解決したことを知らずに検討を続けたり、善意の回答者の労力が無駄になる。
回答する人は別だから余分な労力がかかるわけではないだろうし、1.で前提としているように
回答が有為な知識なのであれば、元の質問者が解決済みだとしてもそれは無駄ではないはず。
>この場所だけでは質問が解決するか不安であるという不信感を表明することと、結果としては同じである。
>こうしたことから、回答をする意欲を失わせたり、不快な気分にさせてしまう場合がある。
不快と思ったら回答しなきゃいいわけで、回答がもらえるように努力するのは質問者の責任。
名指しで質問してるわけじゃないんだから、なんで不快になる必要があるのかとも思うけどね。
0923デフォルトの名無しさん
2015/05/07(木) 08:25:40.05ID:dSzt+ngqだから指摘された
そこを抜きで話を進めるのはどうなんだ
0924デフォルトの名無しさん
2015/05/07(木) 08:34:57.41ID:5OlGDsGz断言しますが、これはたらこが作ったシステムの問題です。
0925デフォルトの名無しさん
2015/05/07(木) 08:49:48.19ID:fQls54Ru放置したこと自体が問題なんだろう?マルチポストとは直接関係ない。
関係あるというなら>>905
0926デフォルトの名無しさん
2015/05/07(木) 09:03:45.08ID:dSzt+ngq・このスレでは他のスレでも書き込んでる事に言及無し
・このスレで解決後他のスレで言及無し
・礼はどうでもいいが互いのスレで報告くらいするべき
言及有りなら問題じゃないのはわざわざ言う事でもないだろ
0927デフォルトの名無しさん
2015/05/07(木) 09:33:28.88ID:gQ8/BIui全部タラコが悪いじゃないですか。
0928デフォルトの名無しさん
2015/05/07(木) 10:24:35.28ID:mmB87F+l0929デフォルトの名無しさん
2015/05/07(木) 11:07:58.20ID:mvrNqduB0930デフォルトの名無しさん
2015/05/07(木) 11:11:03.41ID:fp1OfwiH0931デフォルトの名無しさん
2015/05/07(木) 18:32:03.86ID:ApTxQWeu同一人物が同時期に言うことが、その当時の関心事に相関するのは必然だし
だからって何か言うたびに自分の出没範囲をいちいち紹介するこたねーだろ
そんなことを「べき」とか言っちゃってるおまえは頭おかしい
0932デフォルトの名無しさん
2015/05/07(木) 18:51:53.16ID:KZqJgOca回答が得られなかったスレで回答が得られたスレの紹介だけすればいい
0933デフォルトの名無しさん
2015/05/07(木) 19:38:06.46ID:ApTxQWeuggrksだろ、そんなの
0934デフォルトの名無しさん
2015/05/08(金) 01:12:04.10ID:fm4B3wYY0935デフォルトの名無しさん
2015/05/08(金) 01:57:17.07ID:yfPyalF1それだったら、マナーがどうのこうの言うのにたいして
どうのこうの言うのもおいおいだろ
キリがねーよ
0936デフォルトの名無しさん
2015/05/08(金) 02:04:16.58ID:ARdnOE+l0937デフォルトの名無しさん
2015/05/08(金) 02:23:17.53ID:c8/86Wy3そんなことやってるうちは相談室ではないな。
0938デフォルトの名無しさん
2015/05/08(金) 02:41:27.42ID:y2d+QXKc基地外ループ
2chでは普通のこと
0939デフォルトの名無しさん
2015/05/08(金) 08:38:55.95ID:oCL66D4Sこの流れで「何か言うたびにいちいち」とか頭おかしいだろ
移動先さえ最初に言ってればそれでいいし
移動先言わずに別で結果出たなら元のスレで移動先と結果言えばいいだけ
>>932
互いってのは「こっちへ移動します」「このスレから着ました」って事な
0940デフォルトの名無しさん
2015/05/08(金) 10:00:16.61ID:yfPyalF1このスレの流れを見ればわかるだろ
馬鹿がマルチしたせいで迷惑かかってる
0941デフォルトの名無しさん
2015/05/08(金) 10:16:25.21ID:D0spdUtZマルチだって騒ぐ奴の方が迷惑
0942デフォルトの名無しさん
2015/05/08(金) 10:30:57.36ID:wqWNOpy00943デフォルトの名無しさん
2015/05/08(金) 11:29:48.09ID:Yhmm5THU0944デフォルトの名無しさん
2015/05/08(金) 11:31:27.47ID:OrCViH7z0945デフォルトの名無しさん
2015/05/08(金) 11:38:19.96ID:mh9KYOWdだから、何がそれで「いい」んだよ?
2ちゃんはおまえのご機嫌を取るためのサイトじゃねえぜ
頭おかしいつったのは、その前提のことだ
天動説的なナルシズムってやつ
0946デフォルトの名無しさん
2015/05/08(金) 11:39:56.15ID:mh9KYOWdおまえこそ、そんなことをあとどこで言って回ってるのか
ここで列挙してみせたらどうだ
0947デフォルトの名無しさん
2015/05/08(金) 12:23:03.50ID:Yhmm5THU専ブラだし、あまり気にならないな
少なくとも泣きながら連投してるキチよりマシ
0948デフォルトの名無しさん
2015/05/08(金) 14:10:09.07ID:Iyiixb5X0949デフォルトの名無しさん
2015/05/08(金) 14:21:03.23ID:mh9KYOWdggrksのような情報価値ゼロのくせに態度だけ偉そうなクズこそspamだろ
技術的な知見がなさすぎてスッパマン化してる情けないやつの仕業
0950デフォルトの名無しさん
2015/05/08(金) 14:34:16.68ID:Iyiixb5X0951デフォルトの名無しさん
2015/05/08(金) 15:55:40.23ID:oCL66D4S関係ある事言ってからにして下さいね
0952デフォルトの名無しさん
2015/05/08(金) 16:49:06.68ID:mh9KYOWdおまえがな
0953デフォルトの名無しさん
2015/05/08(金) 17:13:55.99ID:Iyiixb5X0954デフォルトの名無しさん
2015/05/08(金) 17:56:22.30ID:mh9KYOWdそもそも「マルチ」が2ch内での重複のことかどうか疑問だが
0955デフォルトの名無しさん
2015/05/08(金) 18:42:18.90ID:Iyiixb5X重複が駄目という事は、マルチはダメという事です。
皆さんに謝罪してください。
0956デフォルトの名無しさん
2015/05/08(金) 18:58:39.70ID:WF39tTmI0957デフォルトの名無しさん
2015/05/08(金) 19:14:17.98ID:4qeZgeCR0958デフォルトの名無しさん
2015/05/08(金) 21:08:14.55ID:H6GLXawwうん、うん。華だよね
クソどうでもいいことは、だれでも、まー低脳な俺でも激参加できるからね
楽しすぎ。クソどうでもいいこと最高!
0959デフォルトの名無しさん
2015/05/08(金) 21:23:05.03ID:yfPyalF1マルチ指摘されてブチギレてる基地外が暴れてるだけ
0960954
2015/05/08(金) 22:28:06.78ID:mh9KYOWd駄目かどうか俺は一言も言ってないんだが
おまえ最近脳からウミが出やせんか?
0961デフォルトの名無しさん
2015/05/08(金) 23:05:48.25ID:dH7MOosL0962デフォルトの名無しさん
2015/05/09(土) 01:14:35.06ID:59tNGwWs住人は脳からウミが出ているやつばかだよな
0963デフォルトの名無しさん
2015/05/09(土) 01:17:41.41ID:4slRVscAむしろマトモな人を探す方が難しい
0964デフォルトの名無しさん
2015/05/09(土) 09:31:55.70ID:rE+4crJwあなたに決定権はありません。
2ch運営が重複を禁止しました。
0965デフォルトの名無しさん
2015/05/09(土) 09:42:06.37ID:QFYNEVBc重複スレがどうしたって?
突然何を叫ぶんだ
キモいやつだなあ
0966デフォルトの名無しさん
2015/05/09(土) 10:53:33.42ID:OWlYoivl0967デフォルトの名無しさん
2015/05/09(土) 11:06:43.19ID:xjT36gcw遅レスですまんが
Boostの俺にとって重要な部分は大部分標準に吸収されたし
まあ使いたい機能はたまにあるのだが、それだけのためにBoostに依存したくないから
それに仕事でオープンソースライブラリ使うのは最近敷居が高い
0968デフォルトの名無しさん
2015/05/09(土) 15:01:22.25ID:t134gephソース非公開ライブラリーの方が怖くないか?
0969デフォルトの名無しさん
2015/05/09(土) 15:16:11.87ID:xjT36gcw実際そうなんだけどね
でも、オープンソースてかフリーのソフトを使うこと全般に対する社内規制が厳しくて
使いたい場合はめんどくさい承認手続きが必要だったり
0970デフォルトの名無しさん
2015/05/09(土) 21:16:24.22ID:xEYfesPT仲良し基地外同士ってこれが普通
0971デフォルトの名無しさん
2015/05/09(土) 22:39:45.55ID:0eTT8Vrhそういう変なとこで厳しい会社は辞めるべきだ
0972デフォルトの名無しさん
2015/05/09(土) 23:17:43.17ID:EyvPGW/W誰も不具合の責任取れないものは官庁系では基本的に使用不可
0973デフォルトの名無しさん
2015/05/09(土) 23:26:15.73ID:71x2Bj6xオープンソースか否かではない?
0974デフォルトの名無しさん
2015/05/10(日) 00:00:41.77ID:JmjHVEKM無茶苦茶やる奴が出てくるから野放しには出来ないのはその通りだと思うけど
役所式に規制すると生産性下がりまくりだよね
0975デフォルトの名無しさん
2015/05/10(日) 00:24:49.63ID:R0t9wz1Gまあそうなんだが
じゃあオープンソースなものを引っ張ってくる必要がある人が、
そのオープンソースの内容について全責任を本当に持てるのかって話
そんなスキルあったらなんで完全オリジナルじゃないのって矛盾
0976デフォルトの名無しさん
2015/05/10(日) 02:05:25.81ID:2lN5Lw4u0977デフォルトの名無しさん
2015/05/10(日) 02:10:31.46ID:hrvVbsgc0978デフォルトの名無しさん
2015/05/10(日) 02:27:02.70ID:o8+bBTGK使える奴から辞めていってる会社かな
0979デフォルトの名無しさん
2015/05/10(日) 02:29:10.43ID:i9+uwJ0f官公庁ではLAMPの全てが使えないということ?
0980デフォルトの名無しさん
2015/05/10(日) 02:32:27.88ID:mYc/00t/自作しても自己責任なのは同じだしだったらすでにあるものを使うべきだろ
0981デフォルトの名無しさん
2015/05/10(日) 02:34:57.13ID:TKw0Rwrj0982デフォルトの名無しさん
2015/05/10(日) 02:42:55.36ID:n56J5IsvC++相談室 part117
http://peace.2ch.net/test/read.cgi/tech/1431187685/
0983デフォルトの名無しさん
2015/05/10(日) 04:56:43.55ID:PscRQkQxvc2012使ってます。
#pragma data_seg (".myseg")
int i = 0;
char a[32]n = "hello world";
#pragma data_seg()
0984デフォルトの名無しさん
2015/05/10(日) 05:18:47.79ID:HIMFzhoN0985デフォルトの名無しさん
2015/05/10(日) 08:55:07.43ID:ZQGgJB6p責任問題はオープンソース使おうが自分で作ろうが自分で引き受けるしかないからあまり関係ない
まともな企業はライセンスの確認するのは今時当たり前
>>971 や >>978 はその辺りを知らなさすぎ
0986デフォルトの名無しさん
2015/05/10(日) 09:36:17.06ID:iy6eJpK/> まともな企業はライセンスの確認するのは今時当たり前
それを知っているからこそ>>971 や >>978 のような意見が出るわけでは?
0987デフォルトの名無しさん
2015/05/10(日) 09:49:20.90ID:VRIygtUk不具合が合ったときに確実に答えが得られる問い合わせ先が存在するかと
不具合の修正責任が担保されているかどうかが重要。
ソフトウェアの開発を請け負う契約がある以上、一部の機能を事前説明のない
第三者の著作物で達成しているために直せませんというのは許されない
0988デフォルトの名無しさん
2015/05/10(日) 09:56:28.75ID:ZQGgJB6pレスする前に深呼吸した方がいいぞ...
0989デフォルトの名無しさん
2015/05/10(日) 10:02:57.61ID:ZQGgJB6p>>987
使用許諾書とかまともに読んだことないでしょ?
> 不具合の修正責任が担保されているかどうかが重要。
そんなものが担保されてるソフトなんてほとんどないぞ。
0990デフォルトの名無しさん
2015/05/10(日) 10:04:40.78ID:iy6eJpK/レスする前に深呼(ry
0991デフォルトの名無しさん
2015/05/10(日) 10:17:01.28ID:iy6eJpK/0992デフォルトの名無しさん
2015/05/10(日) 10:19:36.02ID:udhumyro0993デフォルトの名無しさん
2015/05/10(日) 10:28:56.85ID:VMNiwqSw0994デフォルトの名無しさん
2015/05/10(日) 10:30:01.00ID:fG4e1mij0995デフォルトの名無しさん
2015/05/10(日) 10:46:25.95ID:f+C1iwEo0996デフォルトの名無しさん
2015/05/10(日) 11:16:45.23ID:gMFAbvGl0997デフォルトの名無しさん
2015/05/10(日) 11:17:56.25ID:udhumyro0998デフォルトの名無しさん
2015/05/10(日) 11:25:25.62ID:cR2vItWu激しい矛盾
0999デフォルトの名無しさん
2015/05/10(日) 11:45:08.80ID:5Pe0CN821000デフォルトの名無しさん
2015/05/10(日) 11:59:31.53ID:M5B2Klw410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。