トップページ⇒tech
1002コメント293KB

C++相談室 part126 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/08/13(土) 11:24:45.65ID:NPYsKJkE
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part125
http://echo.2ch.net/test/read.cgi/tech/1463761261/

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

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
0002デフォルトの名無しさん2016/08/13(土) 16:09:56.09ID:DvcVUK7N
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

---- テンプレ ここまで ----
0003デフォルトの名無しさん2016/08/14(日) 19:04:30.78ID:/ufxoGTJ
もう2のテンプレは要らない
0004デフォルトの名無しさん2016/08/14(日) 19:48:31.49ID:jo5I4z3k
その時見てなかったから意味わかんないな。
恐らく誰かを晒しあげてんだろうなとは思うけど、いつまで粘着して書いてんだ気持ち悪いと思う。
0005デフォルトの名無しさん2016/08/14(日) 22:26:13.71ID:TmMZaJrY
なんか異様に粘着性のやついるね
0006デフォルトの名無しさん2016/08/15(月) 00:06:47.99ID:ojA5BmnI
変な奴は多いな
このスレの醍醐味
0007asgasgasg2016/08/21(日) 11:29:17.36ID:NQK5qTs+
自作のWEBリクエスト システムを構築しています。HttpWebRequestを利用しています。

勉強の為、mixiへの自動ログインシステムを構築したのですが、うまくログインが出来ません。

■mixiのログイン構造
�@トップページ https://mixi.jp/ をGETする
---------
�Aログインページ https://mixi.jp/login.pl?from=login0"; へログイン情報をPOSTする
ポスト内容は以下の通り
next_url:/home.pl
post_key:�@のレスポンス内容のinput hidden項目
postkey:空文字
email:ログインURL
password:ログインパスワード
sticky:on

以下のクッキーがセットされる
session
stamp
�Bログイン後チェックページ https://mixi.jp/check.pl?n=%2Fhome.pl をGETする
�Aでセットされた以下クッキーでリクエストする
session
stamp
正常だと、HTTPステータス302のレスポンスヘッダーに Location:http://mixi.jp/home.pl があり
ログイン後トップ画面を表示する
0008デフォルトの名無しさん2016/08/21(日) 22:19:10.60ID:IM0bL6CD
質問
double std::exp(double x)に与えてよいxの範囲を事前に知る方法は何か無いですか
std::log(std::numeric_limits<double>::max())とかでおk?ギリmaxを極められる?それとも危険性有り?
あるいはより洗練されてて確実な方法キボンヌ
0009デフォルトの名無しさん2016/08/21(日) 23:08:26.81ID:FlxBKJll
exp(x) <= DBL_MAX
でexp(x)はeのx乗なんだから底がeのlogとって
log(exp(x)) <= log(DBL_MAX)
x <= log(DBL_MAX)
じゃろ…たぶん
0010デフォルトの名無しさん2016/08/22(月) 00:54:07.85ID:BRaxQeMg
なんでCopy Constructorが呼ばれないんですか?

class A {
public:
A() { std::cout << "Constructor " << std::endl; }
A(const A &a) { std::cout << "Copy Constructor " << std::endl; }
~A() { std::cout << "Destructor " << std::endl; }
};

A create_A() {
A tmp;
return tmp;
}

int main() {
A a = create_A();
return 0;
}
0011デフォルトの名無しさん2016/08/22(月) 00:59:08.93ID:FLDhgfD+
なんで呼ばれると思ってんの?
0012デフォルトの名無しさん2016/08/22(月) 01:35:13.36ID:jYf9ISog
RVO,NRVOという最適化の仕組みが働いてコピーが省略されるから
0013デフォルトの名無しさん2016/08/22(月) 01:40:27.00ID:BRaxQeMg
コピーが省略されたたらどうやって呼び出し元が値をうけとるのですか?
0014デフォルトの名無しさん2016/08/22(月) 02:11:33.10ID:pkonYlZZ
呼び出し元のスタック上に戻り値が返される
0015デフォルトの名無しさん2016/08/22(月) 02:19:39.81ID:jYf9ISog
mainはcreate_Aの返却値用の領域としてaを構築予定の領域を伝える(RVO)
create_Aではその返却値用の領域にtmpを構築してそのまま返却値として返す(NRVO)
0016デフォルトの名無しさん2016/08/22(月) 07:22:17.99ID:BRaxQeMg
コピーが省略されてるとのことなのにどうやって伝える/返すのですか?
0017デフォルトの名無しさん2016/08/22(月) 07:48:07.15ID:+lArBpqA
>>16
それで返ったことにする。
0018デフォルトの名無しさん2016/08/22(月) 13:12:55.14ID:JD5nAQ8h
コピーが省略されてるのはAのコピーだけ
伝えるのは領域のアドレス
返すのは返却値用の領域の使用権・管理権
0019デフォルトの名無しさん2016/08/22(月) 15:26:43.71ID:r/Rp/EFz
struct hoge
{
virtual ~hoge() = default;
};
virtualをこのように指定する事は可能ですか
0020デフォルトの名無しさん2016/08/22(月) 16:46:53.55ID:PLWTluEf
>>19
やってみたらどうなんだ
gcc 19.cpp -std=c++14 -c
cl 19.cpp /EHsc /c
0021デフォルトの名無しさん2016/08/22(月) 16:55:34.71ID:r/Rp/EFz
>>20
すでにやりました
規格的にどうかと聞いているんです
0022デフォルトの名無しさん2016/08/22(月) 17:05:45.63ID:L/g35wNF
8.4.1/1
自分で調べろよ
0023デフォルトの名無しさん2016/08/22(月) 17:48:37.29ID:GL87eYox
調べてわからないから聞いてるんです。
それに「8.4.1/1」ってなんですか、
企画の8.4.1を見たらわかるんですか。
もう少し実のある回答をお願いします。
0024デフォルトの名無しさん2016/08/22(月) 17:54:52.35ID:PLWTluEf
>>21
規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ
0025デフォルトの名無しさん2016/08/22(月) 17:55:54.20ID:L/g35wNF
またこいつか
>企画の8.4.1を見たらわかるんですか。
企画じゃなくて「規格」な。そうに決まってるだろ
お前はここの誰かが適当なこと言ったらそれを信じるのか?
俺が該当箇所を親切にも教えてやったのに、何が「もう少し実のある回答をお願いします」だよ
規格を気にしてる人間にこれ以上実のある回答なんてないんだよハゲ
0026デフォルトの名無しさん2016/08/22(月) 18:06:14.22ID:r/Rp/EFz
>>24
勝手にやってないことにされても困るので
0027デフォルトの名無しさん2016/08/22(月) 18:31:25.03ID:PLWTluEf
>>26
やったかどうか19の時点で言わねえ
てめえの落ち度を棚に上げて勝手にとかぬかすなクズ
0028デフォルトの名無しさん2016/08/22(月) 19:27:22.83ID:r/Rp/EFz
>>27
勝手に勘違いして逆ギレされても困りますけど
0029デフォルトの名無しさん2016/08/22(月) 19:29:51.79ID:h7MtbrKQ
>>25
規格の8.4.1を読んだけどわかりませんでした
どこをどう読むと>>19の答えが読みとけるのか教えて下さい
0030デフォルトの名無しさん2016/08/22(月) 20:32:32.48ID:L/g35wNF
>>29
8.4.1では関数定義における一般的な事について書かれていて
=defaultに関する特別なルールに関しては次の「8.4.2 Explicitly-defaulted functions」に書かれてる
から8.4.2を読んだほうが良い
本当に調べる気があるならとっくに読んでるだろうけど
0031デフォルトの名無しさん2016/08/22(月) 20:35:38.43ID:h7MtbrKQ
で、>>19にあるvirtualとデストラクターと=defaultの組み合わせが禁止されて「いない」ことは
どこから読みとるのですか?
0032デフォルトの名無しさん2016/08/22(月) 21:30:40.25ID:L/g35wNF
>>31
逆にどこで禁止されているんだよ?
attribute-specifier-seqopt decl-specifier-seqopt declarator virt-specifier-seqopt = default ;
に合致してて他で特別に禁止されてないなら、それは許可されてるんだって分かれよ
0033デフォルトの名無しさん2016/08/22(月) 22:14:15.64ID:h7MtbrKQ
>逆にどこで禁止されているんだよ?

1358ページある規格のどこにも禁止されていないことを8.4.1のどこから読みとるのか
と聞いているのに、論理的思考のできない低能はどうしようもないな
0034デフォルトの名無しさん2016/08/22(月) 22:38:44.27ID:PLWTluEf
>>28
勘違いじゃねえだろ
与えなかった情報がどっちに転ぶか
中間電位だのメタステーブルだのって状況を
おまえがわかってねえんだよ

言わなかったことは俺の都合よく取ってくれだろ?
甘やかされた金持ちボンボンによくあるんだが
家庭教師を雇う経済力はない親御さんのようだな
0035デフォルトの名無しさん2016/08/22(月) 22:46:13.25ID:L/g35wNF
>>33
はあ?お前どんだけバカなんだよ
論理的(爆笑
0036デフォルトの名無しさん2016/08/22(月) 22:53:13.58ID:PLWTluEf
禁止されて「いない」ことの証明を他力本願で祈りながら、
お寺の坊主にはお布施も渡さずに低脳よばわり
まあいいんじゃないか? ご利益なくて地獄に落ちるバカもいて
0037デフォルトの名無しさん2016/08/22(月) 23:07:38.46ID:h7MtbrKQ
なんだ
結局>>25の『そうに決まってるだろ』は嘘だったのか
0038デフォルトの名無しさん2016/08/22(月) 23:11:56.81ID:h7MtbrKQ
しかし>>19の質問が言語仕様の質問だと認識できない>>20は相当なアスペだな
0039デフォルトの名無しさん2016/08/22(月) 23:15:20.32ID:L/g35wNF
>>37
キチガイにくれてやる餌はもうありませんよ
0040デフォルトの名無しさん2016/08/23(火) 05:52:48.19ID:O4MU2HPR
規格に「○○と書くことができる」と明示されているなら
「規格書のこの場所を参照せよ」と教えられるけど、
「○○と書くことは禁止する」とか「○○と書いた場合の動作は未定義」とか、
どこにも書かれていないから許されるっていう論理展開の場合、
「規格書を隅から隅まで読め」としか言いようがないよな。

ところでC++の規格書にアクセスする方法を
スレッドのテンプレートにでも載せておくと便利かもね。
というか、タダで読める規格書を紹介してください。
0041デフォルトの名無しさん2016/08/23(火) 06:53:40.84ID:Y0n1zcYL
>>34
特定のコンパイラに依存する話はしてないのだから規格の話であることは明確です
逆になぜコンパイラに依存すると思い込んだのか不明です
勘違いしたなら素直にそう言えばいいだけなのではないでしょうか見苦しいです
0042デフォルトの名無しさん2016/08/23(火) 08:19:52.18ID:IvwXbhOy
>>41
おまえは可能かと聞いたんだ、いいか可能かだぞ

exportのように規格では可能でコンパイラでは不能なことや
結合指定の一致しない関数ポインタのように規格では不能でコンパイラでは可能なことだってある

おまえが脳内で勝手に決めたことなんざ
ぜんぜん明確じゃねえんだよバカ
0043デフォルトの名無しさん2016/08/23(火) 08:26:02.57ID:qBPZWzjH
>>42
特定のコンパイラに依存する話など聞いていません
自分で勝手に前提を作ってその前提をもとに話しをしてそれを押し付けられてもこちらはそんな話はいらないとしか言えないです

申し訳ないですけど頭のおかしい人に見えます
0044デフォルトの名無しさん2016/08/23(火) 08:31:31.66ID:qBPZWzjH
勘違いして恥ずかしいから自分を正当化するために相手が悪いという事にしたい気持ちはわかります

でもそれは余計恥ずかしい事なので恥の上塗りはやめたほうがいいと思いますよ
0045デフォルトの名無しさん2016/08/23(火) 08:43:12.87ID:uPhg+qti
>>19 みたいな初心者と勘違いされるような質問の仕方が悪い
0046デフォルトの名無しさん2016/08/23(火) 08:49:04.54ID:DsF8a6WC
技術板なのに「自分の言い分が正しい」って言い合い続けるだけのバカ共が居座っているのか
0047デフォルトの名無しさん2016/08/23(火) 08:49:55.28ID:3V8DlG7j
何だこの釣り堀は?
0048デフォルトの名無しさん2016/08/23(火) 08:59:21.57ID:J0tT4d0S
でも2chはプロが話し合う場ではない、というのもまた真実なんだよな。
プログラム板はある意味異常。
0049デフォルトの名無しさん2016/08/23(火) 09:18:16.76ID:IvwXbhOy
>>43
19の時点ではコンパイラとも規格とも
おまえはどちらとも言ってない
どうあがいてもこの事実は覆らない
0050デフォルトの名無しさん2016/08/23(火) 09:25:17.91ID:qBPZWzjH
書いてないのに勝手にコンパイラの話に決めつけるのはおかしい事です
なぜコンパイラの話にしたのか意味不明でアホ過ぎます

しかもそれを指摘されると逆ギレするのはとてもみっともない事です
0051デフォルトの名無しさん2016/08/23(火) 09:48:23.79ID:IvwXbhOy
ははは
規格の話だって主張を引っ込めたな
0052デフォルトの名無しさん2016/08/23(火) 09:59:46.93ID:qBPZWzjH
コンパイラは指定してないのだから
コンパイラに依存しないつまり規格の話なのは言うまでも無いです
特定のコンパイラでできるかどうか聞いているのなら最初からそのように言うでしょう

なぜ勝手にコンパイラの話にしたのか思考がおかしいです
論理的では無いです。
しかもその勘違いを指摘してあげたのに逆ギレとは心外です
0053デフォルトの名無しさん2016/08/23(火) 10:16:39.75ID:IvwXbhOy
いーや、おまえが "企画" と言い出したのは23からだ

歴史を捏造したり、嘘を100回言って本当にしようとしたり、
まるでどっかの国の告げ口おばさんだな
0054デフォルトの名無しさん2016/08/23(火) 10:31:45.33ID:IvwXbhOy
あ、21だっけ
いずれにせよ遅きに失したことに変わりはないが
0055デフォルトの名無しさん2016/08/23(火) 10:38:24.61ID:qBPZWzjH
企画とか言い出したのは別人です

c++のスレでコンパイラの話をしてないのに規格の話とは思わなかったというのは流石に無理があります
0056デフォルトの名無しさん2016/08/23(火) 10:47:49.73ID:LgPC+ubP
規格を端から端まで読まないとわからないという結論が出た以上、無駄な議論をする時間で規格を読んではいかが?
0057デフォルトの名無しさん2016/08/23(火) 11:09:33.65ID:vhBIERX9
どういう結論だよw
「8.4 Function definitions」とせいぜい「12.4 Destructors」を読めばいいだろ
ゆっくり読んでも5分もあれば十分
0058デフォルトの名無しさん2016/08/23(火) 11:34:13.96ID:IvwXbhOy
>>56
>>42

あれはウリじゃないニダか、ははは
0059デフォルトの名無しさん2016/08/23(火) 11:56:52.76ID:qBPZWzjH
勝手な思い込みでコンパイラの話と決めつけて他人を本人だと決めつけて
思い込みが激しい人なんですね

勘違いをして恥かいたのはしょうがない事です
それを人のせいにするのは小学生みたいで見苦しいですよ
0060デフォルトの名無しさん2016/08/23(火) 12:05:27.02ID:J0tT4d0S
「俺はコンパイラの話と思った。理由はともかくその話をするぜ」ってスタンスでも別にいいし、
「理由もなくそんな話するのは頭おかしい」と断ずるのもどうかと思う。
ちゃんとした話はTwitterででもやれ。
0061デフォルトの名無しさん2016/08/23(火) 12:31:02.84ID:IvwXbhOy
>>59
不自由な日本語で恥かいたのはあんただよ外人さん
0062デフォルトの名無しさん2016/08/23(火) 12:47:10.45ID:qBPZWzjH
勘違いで恥をかいたのが悔しくて外人だの言い出すのはみっともないですよ

何度も言いますがコンパイラの話はしてないのに勝手にコンパイラの話と決めつけるのは愚かな事です。
逆ギレして罵りたいのはわかりますがどこまでいっても恥ずかしいだけです
0063デフォルトの名無しさん2016/08/23(火) 12:49:07.79ID:qBPZWzjH
しかもちゃんと指摘してあげたのに
お前が悪いと人のせいにするあたりに人間性がよく現れていると思います
0064デフォルトの名無しさん2016/08/23(火) 13:06:25.52ID:IvwXbhOy
>>63
おまえが悪いんだよ
誰もおまえを擁護しねえだろ

おまえのしたことは典型的な質問者の後出しだ
それだけでも無礼なのに態度もでかすぎ
どこまでも腐りきった根性曲がりはみんな大嫌いなんだよ
0065デフォルトの名無しさん2016/08/23(火) 13:13:48.34ID:qBPZWzjH
残念ながら違います
言ってもいないことを勝手に解釈して決めつけることが悪いことです
さらに悪いのは間違いを指摘されたにも関わらず素直にそれを認めず人のせいにする
これこそが人間として最悪の事です

自分の間違いを認めたくないから人種などの話を持ち出して話をそらしたいのでしょう
それは卑怯者のすることです。
0066デフォルトの名無しさん2016/08/23(火) 13:23:13.61ID:HFGMYFIt
スレのマナーを守らないNG推奨ID
ID:qBPZWzjH
ID:IvwXbhOy
0067デフォルトの名無しさん2016/08/23(火) 13:31:03.89ID:IvwXbhOy
>>65
回答者がある程度エスパーするのが悪いこととか
まれに見るほど呆れ果てたクズ質問者だな
0068デフォルトの名無しさん2016/08/23(火) 13:39:37.64ID:qBPZWzjH
>>67
間違うのは仕方がないことです
こちらは即座に間違いを指摘してさしあげました
ゴネる要素は何処にもないはずなのにあなたはゴネています
ここまでくると頭がおかしくていらっしゃるということしかできません
0069デフォルトの名無しさん2016/08/23(火) 13:47:41.11ID:ksfCp0yK
後出し質問者vs似非エスパー回答者
0070デフォルトの名無しさん2016/08/23(火) 14:12:56.77ID:IvwXbhOy
>>68
指摘じゃねえよ、後出し注文だクズ
0071デフォルトの名無しさん2016/08/23(火) 14:21:52.19ID:qBPZWzjH
間違いを指摘されて悔しいのは理解できます
でもこちらがコンパイラの話を出していないのにコンパイラの話に決めつけるのはあまりに不自然で愚かしいです
0072デフォルトの名無しさん2016/08/23(火) 14:37:43.79ID:IvwXbhOy
>>71
おまえは可能かと聞いたんだ
コンパイラ持ってないやつは自動的に不可能だろうが
おまえの中ではそれが不自然らしいなゴミ
0073デフォルトの名無しさん2016/08/23(火) 14:51:18.14ID:qBPZWzjH
コンパイラの話をしてないのにコンパイラの話と決めつけるのは不自然です
コンパイラの話をしてないのだからコンパイラに依存する話ではないと判断するのは自然です
この程度の判断もできないのはちょっと困りますね

指摘してあげたのに間違いを認めず人のせいにするのはもっと困ります
0074デフォルトの名無しさん2016/08/23(火) 15:00:09.95ID:F2Uig/g+
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |
0075デフォルトの名無しさん2016/08/23(火) 15:01:58.06ID:IvwXbhOy
おまえの中ではの話にすぎない
後出し注文が通らなくて困るのは俺にゃ関係ない
0076デフォルトの名無しさん2016/08/23(火) 15:05:26.92ID:F2Uig/g+
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |
0077デフォルトの名無しさん2016/08/23(火) 15:07:26.73ID:qBPZWzjH
勝手にコンパイラの話にされた挙句
逆ギレして人のせいにされて困ってます
こういう横暴は控えるのが常識的な人間の態度かと存じます
0078デフォルトの名無しさん2016/08/23(火) 15:16:57.13ID:F2Uig/g+
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |
0079デフォルトの名無しさん2016/08/23(火) 15:24:57.18ID:IvwXbhOy
だから勝手に困ってろよ
そんな個人的なことを発表にくるな

同情を引きたくて衆目の前でメソメソ泣いてるのと同じだぜおまえ
0080デフォルトの名無しさん2016/08/23(火) 15:34:23.25ID:qBPZWzjH
勝手な勘違いで赤っ恥をかいたことを認めたくので
人に責任を押し付けてるわけですね
それは人間として最もみっともない行為ですよ
0081デフォルトの名無しさん2016/08/23(火) 17:15:01.76ID:IvwXbhOy
やーい、困る困ると連呼してたのが止まったw
0082デフォルトの名無しさん2016/08/23(火) 17:57:59.23ID:nfi0AMZ6
ID:qBPZWzjHは安定だな。討論で闘うポイントを抑えている。
ID:IvwXbhOyは潜在的にオツムが弱いタイプ
0083デフォルトの名無しさん2016/08/23(火) 18:03:38.77ID:82e1JvbW
どっちも迷惑なタイプ
普通に質問すら出来ないバカと
最初の質問からそれを読み取ってスルーしないバカ
0084デフォルトの名無しさん2016/08/23(火) 18:06:03.61ID:HFGMYFIt
昼間ずっとやっているとか手に負えんな

>>82
C++に関係ないディベートやるスレじゃねぇよ
0085デフォルトの名無しさん2016/08/23(火) 18:11:19.74ID:nfi0AMZ6
<まっとうな者同士の会話>
このように指定する事は可能ですか
 ↓
やってみたらどうなんだ
 ↓
すでにやりました 規格的にどうかと聞いているんです
 ↓
あ、そうなの。失礼

<キチガイとの会話>
このように指定する事は可能ですか
 ↓
やってみたらどうなんだ
 ↓
すでにやりました 規格的にどうかと聞いているんです
 ↓
規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ
後出し注文だクズ
0086デフォルトの名無しさん2016/08/23(火) 18:13:49.00ID:IvwXbhOy
>>82
ありがとよ
俺がオツムが弱いのは事実なので別にいいし
それでもディベテクで誤魔化せる問題じゃなかったわけだ
0087デフォルトの名無しさん2016/08/23(火) 18:15:21.36ID:IvwXbhOy
>>85
聞いてるんですという嘘が許せねえんだよ
聞きたいんですだろ
0088デフォルトの名無しさん2016/08/23(火) 18:35:19.51ID:sEUAXxwa
>>40
アホか?
プログラミング言語の仕様書は形式言語で、書く事が出来る事は厳密に定義してるわ
0089デフォルトの名無しさん2016/08/23(火) 18:43:08.31ID:nfi0AMZ6
そうか?
例えば8章だけだとコンストラクターはをvoid hoge (){}と書けそうだけど、
実際は12.1を読むとvoidが書けないことがわかるだろ。
局所的に8章だけ見てわかるだろ というのは変だと思うのだが。
特にC++は規格の3,7,8,9,12章をくまなく読んで確認しないと安心出来ない
0090デフォルトの名無しさん2016/08/23(火) 21:17:04.88ID:PDPzOw0b
ラムダ式を関数に渡す場合はテンプレートで受け取るしかないのか?
0091デフォルトの名無しさん2016/08/23(火) 21:34:59.86ID:fXfboly6
ディベートはC++でプログラムする
0092デフォルトの名無しさん2016/08/23(火) 21:41:26.18ID:1HCV3l6R
>>90
std::function
0093デフォルトの名無しさん2016/08/23(火) 23:08:28.87ID:nDdy5zri
>>92
いい加減な回答だな・・・
ラムダ式の型はコンパイラにしかわからないのに、なぜstd::function にコピーしてもいいのか?
0094デフォルトの名無しさん2016/08/23(火) 23:25:19.49ID:2deJIJdD
同じシグネチャの関数ポインタの型にも渡せる
0095デフォルトの名無しさん2016/08/23(火) 23:46:30.82ID:y4gmj8NB
キャプチャがなければね
0096デフォルトの名無しさん2016/08/23(火) 23:49:50.40ID:nDdy5zri
>>94
auto lmd = [](){};
void (*pf)();
cout << sizeof(lmd) << endl;
cout << sizeof(pf) << endl;
0097デフォルトの名無しさん2016/08/24(水) 01:27:40.47ID:e6LV9cko
>>96
何が言いたいんだよ
0098デフォルトの名無しさん2016/08/24(水) 02:12:05.23ID:ui+t3Px2
>>96
そりゃあLambdaじゃサイズ違うが、それがなんなんだよ
コミュ障すぎる
0099デフォルトの名無しさん2016/08/24(水) 02:31:42.60ID:sRbuKfy8
>>97
>>94,95の無キャプチャのクロージャは関数ポインタへ変換可能だという話に対して
sizeofの大きさが違うから渡せるはずないじゃんという無知からくる間違った『間違いの指摘』だろ
0100デフォルトの名無しさん2016/08/24(水) 06:29:36.29ID:dZrohm6h
>>10
A() に explicit 付け忘れとるでよ
0101デフォルトの名無しさん2016/08/24(水) 08:13:18.11ID:LiadQQJo
>>93
話を逸らしたところで
>>92が>>90の求める答えになっていることに変わりはないぞ。
テンプレートを使用した技法を使っているかどうかじゃやくて
呼ばれる側(ラムダを受け取る側)のシグネチャー固定だからな
0102デフォルトの名無しさん2016/08/24(水) 08:21:59.06ID:LiadQQJo
>>100
むしろどうしてこのクラスのA()に付けようと思った?
0103デフォルトの名無しさん2016/08/24(水) 09:11:35.12ID:KdH0xAm4
ここってプログラムの依頼とかできますか?
0104デフォルトの名無しさん2016/08/24(水) 09:14:38.48ID:zuAyaRZV
質問者のふりをして降ってみれば
喧嘩が始まってプログラムそっちのけになるかも
0105デフォルトの名無しさん2016/08/24(水) 09:25:41.91ID:KdH0xAm4
よく見たら上がすでに喧嘩状態でしたね
じゃあ質問させていただきます。
今、ネプリーグのトロッコアドベンチャーを再現しようとしています。
動画のほうは完成しつつあるのですが、肝心の再生技術がありません。
やりたいこととしては
�@クイズを5段階の難易度に分けて最初に指定
�A本物のように左を選択したら、左用の動画が流れるような仕組みにしたい。
それもキーコマンドか何かで。
➂正解したら次の動画が再生され、失敗したらそこで動画が止まるような仕組み。

プログラム初心者なので、経験のある友人にやらせようかと思っています。
こうしたらいいんじゃね?っていう案をください。お願いします
0106デフォルトの名無しさん2016/08/24(水) 09:28:02.77ID:zuAyaRZV
とりあえずC++じゃねえな
C++出できなくないけどやりたくない
つまりスレチ
0107デフォルトの名無しさん2016/08/24(水) 09:28:58.95ID:KdH0xAm4
了解です。ありがとうございます
0108デフォルトの名無しさん2016/08/24(水) 14:56:32.59ID:NR8vORkc
>>96
ちょっと楽しめた
cout << sizeof(&decltype(lmd)::operator()) << endl;
cout << sizeof((void(*)())lmd) << endl;
0109デフォルトの名無しさん2016/08/24(水) 21:03:17.24ID:09YX4k7p
>>105
OpenCV使え
0110デフォルトの名無しさん2016/08/24(水) 21:42:42.82ID:KdH0xAm4
>>109
なるほど、公開されているプログラム?の中に似たようなものがあるということですね。
探してみますありがとうございます。
0111デフォルトの名無しさん2016/08/24(水) 23:56:13.09ID:SbVNGFmk
初めてboostで通信プログラム書くんだけれど、

void hpge()
{
boost::asio::ip::tcp::socket *sock;
boost::asio::io_service *service;

service = new io_service();
sock = new ip::tcp::socket(*service);

ip::tcp::acceptor acc(*service, ip::tcp::endpoint(ip::tcp::v4(), 2000));
acc.accept(*sock);

// 適当に送信
{
unsigned int a = 1234;
char b[4];
memcpy_s(b, 4, &a, 4);
sock->send(boost::asio::buffer(b));
}

delete sock; // (´・ω・`)はぁ?
}

なんでソケットがclose()やdeleteされないと送信が完了しないのか訳が分からない……
送受信のたびに毎回コネクトし直せとかそんな馬鹿げた仕様なわけあるまいし、どうやって使うもんなんですこれは?
0112デフォルトの名無しさん2016/08/25(木) 00:06:36.64ID:fxoWtzfY
あっ、あとwinsockとか根本的に通信手段を変えろってダメなんです
具体的にはJVMTIでJVMを監視して、その情報を通信で飛ばしたい
その環境でwinsock使ったらそもそもコネクトすら出来んかった
0113デフォルトの名無しさん2016/08/25(木) 00:13:11.38ID:HcIHj1Mt
>>111
サンプルぐらい読めよ
0114デフォルトの名無しさん2016/08/25(木) 00:32:47.51ID:wUu3TQ4N
挙動に疑問があればまず公式資料で仕様を調べるだろ
ttp://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/reference/basic_stream_socket/send/overload1.html
> Remarks
> The send operation may not transmit all of the data to the peer. Consider using the write function if you need to ensure that all data is written before the blocking operation completes.
0115デフォルトの名無しさん2016/08/25(木) 00:37:54.17ID:HcIHj1Mt
これが一番簡単な例な

http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp

あと、関係ないけど無意味にnewしてる所とかもうちょい基本的なC++の使い方学んだ方がいい気がする
0116デフォルトの名無しさん2016/08/25(木) 00:47:16.73ID:aAEQc8xp
通信クラスだけは何故か必ずnewする奴いるわ
0117デフォルトの名無しさん2016/08/25(木) 02:46:19.92ID:fxoWtzfY
ありがとうwriteでやってみたらいけそうな気がした
まだなんか挙動が怪しいけれど

newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるからなんだ
質問のソースでは1個の関数に収めちゃったけども
0118デフォルトの名無しさん2016/08/25(木) 03:46:17.43ID:k3Y9C66L
>>105
openframeworksとか使えば一瞬でできる
0119デフォルトの名無しさん2016/08/25(木) 04:26:26.59ID:bqd04CsU
boostなんて使う理由がわからん
0120デフォルトの名無しさん2016/08/25(木) 08:14:37.95ID:cZABj4Tc
>その環境でwinsock使ったらそもそもコネクトすら出来んかった
自分のプログラムにバグがあるという発想には至らなかったようだ
0121デフォルトの名無しさん2016/08/25(木) 09:04:55.17ID:EwnmxDlV
>newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるから
newする理由になってないぞ
0122デフォルトの名無しさん2016/08/25(木) 10:22:03.81ID:87TtdhSG
おいあんましいじめるなよ
0123デフォルトの名無しさん2016/08/25(木) 10:38:13.96ID:WECz9XA9
newするのは良くないってのはどこかでdeleteしたいときであって、そこを管理しなくていいならどんどんnewすればいい
0124デフォルトの名無しさん2016/08/25(木) 12:16:43.61ID:j/BsZXzc
ナマポ使うなスマポ使えっていういつもの布教じゃろ
0125デフォルトの名無しさん2016/08/25(木) 12:46:06.50ID:EwnmxDlV
スマポ使う必要もないということも分からんですかそうですか
0126デフォルトの名無しさん2016/08/25(木) 17:40:44.14ID:fxoWtzfY
ええ?
じゃあ不勉強なもんでもうひとつ聞きたいんだけれど
class Tsushin
{
private:
boost::asio::ip::tcp::socket *sock;
}
っていうソケットを持ったクラスを作るとして、これをどうやってポインタを使わずに実装できるん?
boost::asio::io_serviceのインスタンスが無いとsocketのインスタンス作れないから、これ以外の方法が分からないんだけれども
0127デフォルトの名無しさん2016/08/25(木) 17:55:50.29ID:fxoWtzfY
あっ自己解決しました
メンバイニシャライザっていうんかc++でこの書き方初めて知った
0128デフォルトの名無しさん2016/08/25(木) 19:43:09.16ID:cZABj4Tc
一つ前のレスも読めないとは
どうしてこのスレはこうも文盲が多いのか
0129デフォルトの名無しさん2016/08/25(木) 20:30:02.71ID:aAEQc8xp
メンバのクラスはコンストラクタが動かないからポインタで持たせるといいよと言ってる奴は結構いるから困る
0130デフォルトの名無しさん2016/08/25(木) 20:45:21.63ID:HcIHj1Mt
>>129
そんなやつ見たことねー
0131デフォルトの名無しさん2016/08/25(木) 20:54:49.89ID:dURn6wW4
そんな奴おらへんやろ〜って漫才師、こだまひびきって言うのか。
今ググって分かった
0132デフォルトの名無しさん2016/08/25(木) 21:19:05.54ID:aAEQc8xp
>>130
ガチだぞ
うちの会社のソースを見たらみんなポインタで持ってて、上司に何でこんなことをしているのかと聞いたらそうじゃないと使えないからとか返ってきた
しかも暗黙のコーディング規約になっているらしく初期化リストを使おうとしたら変な文法使うのやめてとか言い始めた
0133デフォルトの名無しさん2016/08/25(木) 21:41:30.58ID:Auzyp/YA
c++書いちゃいけないレベルの奴が無理して書いてると一瞬でコードが負債化するな
こんな職場少なくないんだろうな
おとなしくゆとり向けのjavaかc#にしときゃいいのに
0134デフォルトの名無しさん2016/08/25(木) 21:49:20.87ID:gyF7bTdS
>>132
おまおれ・・・つーか、もしかして知り合い?
0135デフォルトの名無しさん2016/08/25(木) 21:50:34.75ID:rkw+skCq
怖いな
もちろんスマポも禁止でデストラクタでデリートしているのだろうな。
0136デフォルトの名無しさん2016/08/25(木) 22:02:34.44ID:sWxqL1bB
コンストラクタで代入しているのはまだカワイイもんで、K&RのCとC++の区別すらついてないのがゴロゴロいるよ

固定長配列しか使えない
構造体、配列をmemsetで初期化
algorithmヘッダの関数を知らない
全部forでぐーるぐる
Cスタイルのキャストしか知らない
引数のconst参照渡しを知らない
コードにconstが一切出てこない
変数は関数の頭でまとめて宣言
0137デフォルトの名無しさん2016/08/25(木) 23:01:19.36ID:aAEQc8xp
STL(標準ライブラリ全てのこと)は使わないでねと言われる、しかしMFCは使う
1人だけVS6.0を使っている
新しいバージョン使いましょうと言ったら、内部で新しいライブラリが読み込まれているかもしれないからバグが怖いと言って拒否される
君の書いたコードがコンパイルできないんだけどと言うから見に行ったら、古い仕様でfor文内の変数宣言が重複宣言扱いになってるせいだったが、これおかしくない?変数はfor文の外で宣言しないとダメだよとアドバイスされた
Gitは使いたくないらしく共有フォルダにzipで置いておかないと成果物として認められない
その処理は標準ライブラリで簡単にできると言っても使わなくてもできるでしょとと言って自力でやろうとする
GUIのクラスに様々な処理をべったりと書く
それぞれを部品と見なしてもっと抽象化するように書くと良いですよと説得しようとしたら理屈はいいからと言って一蹴される
C#に移行する案が出ると俺に勉強しろというのかと言って腹を立てる
0138デフォルトの名無しさん2016/08/25(木) 23:08:56.49ID:bqd04CsU
stlおせーからな
そうりゃそうだろ
内もつかわねーよ
0139デフォルトの名無しさん2016/08/25(木) 23:13:44.51ID:i0nCiEhg
え?
0140デフォルトの名無しさん2016/08/25(木) 23:14:18.40ID:i0nCiEhg
凡人がSTLの開発効率と速度を超えるのは容易ではないと思うんだが。
0141デフォルトの名無しさん2016/08/25(木) 23:30:57.44ID:sWxqL1bB
「STLが遅い」という人はほとんどの場合
「デバッグビルド時になんか知らんけどvectorが生配列に比べて遅い」
という意味でおっしゃっています
0142デフォルトの名無しさん2016/08/25(木) 23:32:50.42ID:aAEQc8xp
>boostなんて使う理由がわからん
>stlおせーからな
自信過剰なのか使い方がわからないのか
0143デフォルトの名無しさん2016/08/25(木) 23:39:01.25ID:bqd04CsU
>>140
STLのソースみてみろよ
アルゴリズムなんて偉そうに言ってるわりには単にループしてるだけじゃんw
0144デフォルトの名無しさん2016/08/25(木) 23:43:44.66ID:i0nCiEhg
>>143
ループがアルゴリズムじゃなかったらなんなんだ?
STLのすごいところは手続きの一本化だと思ってるが。
0145デフォルトの名無しさん2016/08/26(金) 00:00:25.29ID:5SQKnTXv
STLってがっかりしているポーズに見える
0146デフォルトの名無しさん2016/08/26(金) 00:00:26.86ID:zzW4nWtw
テクい実装をすることや複雑な問題を解くことだけがすごいことらしい
0147デフォルトの名無しさん2016/08/26(金) 00:14:11.18ID:XypgEzC7
count_if
なんてループで回して、比較してるだけじゃん
数十秒でかける処理をわけのわからんライブラリを使う理由がわからん
0148デフォルトの名無しさん2016/08/26(金) 00:16:33.63ID:mRE0T9bN
>>147
訳が分かってないだけだ。
共通理解というものを重視しないんだなぁ。いやすぎ。
0149デフォルトの名無しさん2016/08/26(金) 00:21:54.93ID:0ZeIadI8
>>147
標準ライブラリをわけのわからん呼ばわりするのは流石に笑う

printfはわけがわかるの?
atoiは?

標準ライブラリの使い方すら知らない人間が書いた関数はわけがわからんから使いたくないなぁ
0150デフォルトの名無しさん2016/08/26(金) 00:21:58.15ID:zzW4nWtw
C++が使えるというのは標準ライブラリも知っているということでもあるからな
誰が見ても一行で何をしているか分かるということが重要だ
0151デフォルトの名無しさん2016/08/26(金) 00:25:24.95ID:XypgEzC7
おまえらわけわか
0152デフォルトの名無しさん2016/08/26(金) 00:29:45.40ID:mRE0T9bN
>>151
こっちから見ればなんで素養のわからんあんたのコードつかわにゃならんのだ。ってこと。
関数名見れば機能はわかるということを破棄してるあんたと仕事したくない。
共通理解って言葉が理解できないって恐ろしいことだ。
0153デフォルトの名無しさん2016/08/26(金) 01:02:45.66ID:s3V0ZpLS
無駄に長くて読みにくいコード書いてそう
0154デフォルトの名無しさん2016/08/26(金) 02:10:25.32ID:jGd0g2RH
コピペしまくりのコードとかまとめろってかんじ
0155デフォルトの名無しさん2016/08/26(金) 02:40:37.07ID:mRE0T9bN
多分、>>152みて職場で無関係な奴に当たり散らすんだぜ。
盲目って怖い。
0156デフォルトの名無しさん2016/08/26(金) 06:15:21.48ID:9s6WK35L
>>129
そんなこと言うお前はもちろん
メンバー初期化の順番が何によって決まるのかを
調べずに言えるんだろうな?
0157デフォルトの名無しさん2016/08/26(金) 06:18:57.25ID:zQpNEvET
age
0158デフォルトの名無しさん2016/08/26(金) 08:41:47.22ID:G0uj5hQB
>>156
あたかも自分は知ってるって感じのものの言い方だなw
0159デフォルトの名無しさん2016/08/26(金) 08:51:08.73ID:Xz0onrQ7
クイズ好きだね
0160デフォルトの名無しさん2016/08/26(金) 08:52:16.33ID:zYo2bKWf
まあゴテゴテに凝ったフレームを使うより単純な自分実装のが
良いこともあるわな。
釘打つのに巨大ハンマーは必要ないってこともある。
0161デフォルトの名無しさん2016/08/26(金) 09:42:17.11ID:3Yp6hByU
std::使っておけばドキュメンテーション楽じゃん、とは思わないのかね?
0162デフォルトの名無しさん2016/08/26(金) 09:44:55.75ID:ZYJ50bjn
標準ライブラリは巨大ハンマーと言うよりは、ネジとか家庭用電源差込口とかに近い、まさに規格化された共通部品じゃないかと思うんだけどな。
0163デフォルトの名無しさん2016/08/26(金) 09:54:56.48ID:+34Dv1b8
自分実装のはずなのに、半年1年後
「誰だよこれやったのは?」って言いたくなる
0164デフォルトの名無しさん2016/08/26(金) 09:57:17.75ID:G0uj5hQB
速いならいいがな
遅いのにあえてSTLを使う理由がわからん
0165デフォルトの名無しさん2016/08/26(金) 09:58:29.62ID:3eEs1ucA
iostreamみたいなウンコ大作がネジとか何の冗談
0166デフォルトの名無しさん2016/08/26(金) 10:00:15.98ID:3eEs1ucA
ああ、screwedにかけたのかw
0167デフォルトの名無しさん2016/08/26(金) 10:01:25.74ID:3Yp6hByU
速いのがいいならsproutでも使えば
0168デフォルトの名無しさん2016/08/26(金) 10:11:56.38ID:ZYJ50bjn
別に標準ライブラリと同じインタフェースにしといてくれれば、あとは勝手にしてくれていいんやで。
0169デフォルトの名無しさん2016/08/26(金) 10:14:12.77ID:ZYJ50bjn
あと、標準ライブラリといったらiostremって発想もどうかと思う。
まあ、一番叩きやすいってのは確かだし、俺自身も使ってるないから擁護もできないのだけれども。
0170デフォルトの名無しさん2016/08/26(金) 10:16:18.07ID:ZYJ50bjn
iostreamは確かに使いにくい。
あれならprintf使うのも仕方ない…
0171デフォルトの名無しさん2016/08/26(金) 10:22:03.58ID:JmjWOqaY
printf > boost::format >>>>>>超えられない壁>>>>>> iostream
0172デフォルトの名無しさん2016/08/26(金) 11:08:04.55ID:R92D0kaL
なぜいつまでたってもフォーマットを指定してstd::stringにするライブラリが標準入りしないのか
0173デフォルトの名無しさん2016/08/26(金) 11:12:41.32ID:mRE0T9bN
putfって止まってるの?
0174デフォルトの名無しさん2016/08/26(金) 12:40:42.69ID:3eEs1ucA
>>172
モウロクしたハゲがiostreamを否定されて屈辱的だとかスネちゃうからだろ
0175デフォルトの名無しさん2016/08/26(金) 12:59:54.61ID:3Yp6hByU
>>174
「侮辱的だ」と繰り返すばかり
0176デフォルトの名無しさん2016/08/26(金) 13:16:58.62ID:R92D0kaL
streamの何も考えずガンガン流し込めばいいというスタイルは悪くないと思う
ただ特に標準出力に関してはデータを整形したいケースが多いから噛み合ってない
0177デフォルトの名無しさん2016/08/26(金) 13:22:39.50ID:FOeYYSc0
何も考えず?
iostreamってstd::size_tを流し込めること保証されてたっけ
0178デフォルトの名無しさん2016/08/26(金) 13:28:03.42ID:XS8ZF2FO
std::cout << std::hex << std::setw(2) << std::setfill('0') << int('A');
printf("%02x", 'A');
0179デフォルトの名無しさん2016/08/26(金) 18:00:13.51ID:ZiaxvSyE
https://t.co/wOBgDeY9iG
これわかる人いる?
deleteしたポインタにnullいれてないとおもったんだけど、それではないらしい…
0180デフォルトの名無しさん2016/08/26(金) 18:10:38.59ID:PiJ4eTCv
ヌルポチェックの外でメンバ関数呼び出している。
0181デフォルトの名無しさん2016/08/26(金) 18:21:32.60ID:RLEpnGOr
>>179
こんな超絶クソコード作る奴の頭がそもそも虫湧いてるので答えなんてないと思うよ
なんだよnewと対になっていないdeleteとか、しかもdeleteの前に無意味なnullチェックしてるし
0182デフォルトの名無しさん2016/08/26(金) 18:23:08.82ID:RLEpnGOr
前提条件が曖昧すぎて問題にすらなっていない
マルチスレッド環境なら話にならないコードだし
0183デフォルトの名無しさん2016/08/26(金) 18:26:56.70ID:3Yp6hByU
for (auto charactor はfor (auto& charactor でなくていいんだろうか?
0184デフォルトの名無しさん2016/08/26(金) 18:35:20.55ID:RLEpnGOr
ViewPortのコンストラクタにnullptrが渡される可能性があるなら
ViewPort::Updateは何もする必要がないのであって、Updateの冒頭でnullチェックしてreturnすればいいだろ
とにかく問題作った奴が馬鹿丸出し過ぎてイライラする
0185デフォルトの名無しさん2016/08/26(金) 18:36:33.86ID:ZiaxvSyE
色々思いつくけど >>180 が当たりっぽい
腑に落ちないw
0186デフォルトの名無しさん2016/08/26(金) 18:52:19.14ID:wMnlcyg3
rule of three(five)を無視しといてバグとか語るなって感じだが
>>182のいうように想定してる不具合実演のサンプルコードなのか実用コードの一部なのかすら
わからんのではどうにもなあ
0187デフォルトの名無しさん2016/08/26(金) 20:37:16.13ID:dDBcLzC2
>>178
これなw
いいかげん、正式な「1byte幅の整数型」が欲しいね。
0188デフォルトの名無しさん2016/08/26(金) 20:45:01.75ID:Xz0onrQ7
参考にしたいからお前らの頭の良い実装を見せてくれ
これくらいなら数分で書き直せるだろ
0189デフォルトの名無しさん2016/08/26(金) 23:13:22.52ID:mRE0T9bN
>>179
描画完了通知がNullチェックしてない??

>>187
現在策定中。
0190デフォルトの名無しさん2016/08/27(土) 08:43:16.25ID:SmFG8gRK
      ク    ク || プ  //
      ス  ク ス  | | │ //
       / ス    | | ッ //   ク   ク  ||. プ  //
       /         //   ス ク ス _ | | │ //
         / ̄ ̄\     /  ス   ─ | | ッ //
       /  _ノ  .\     /         //
       |  ( >)(<)       ___
.        |  ⌒(__人__)     ./ ⌒  ⌒\
        |    ` Y⌒l    /  (>) (<)\
.         |    . 人__ ヽ /  ::::::⌒(__人__)⌒ \
        ヽ         }| | |        ` Y⌒ l__   |
         ヽ    ノ、| | \       人_ ヽ /
.         /^l       / /   ,─l       ヽ \
0191デフォルトの名無しさん2016/08/27(土) 12:49:21.98ID:06SnK2FS
>>179
デストラクタでわざわざnull代入するかどうかよりdelete前にnullチェックしていることをつっこもうぜ
0192デフォルトの名無しさん2016/08/27(土) 13:15:37.85ID:s3YfawhT
nullptrだったら描画開始しちゃダメなんじゃないの?
0193デフォルトの名無しさん2016/08/27(土) 21:26:23.95ID:mslVqKaF
null をdelete しても無視されるから無駄って事かな
0194デフォルトの名無しさん2016/08/27(土) 22:04:43.54ID:sEFObQol
>>189
ソースは?
0195デフォルトの名無しさん2016/08/27(土) 22:19:45.68ID:nxWT+PHC
あってもなくても動作に影響しないものがあってもそこはバグとはいわないだろう
0196デフォルトの名無しさん2016/08/27(土) 22:42:36.92ID:OFUg9SIZ
バグとは言われないがゴミコードとは言われるだろう。
0197デフォルトの名無しさん2016/08/28(日) 01:03:52.09ID:IZ16EciY
>>194
https://cpplover.blogspot.jp/
上経由で知ったが、
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0257r1.pdf
これだと思う。
0198デフォルトの名無しさん2016/08/28(日) 01:09:59.02ID:3Myecdh+
delete前のnullptrチェックなあ
assertならわかるんだけどね
0199デフォルトの名無しさん2016/08/28(日) 01:19:06.19ID:jX9FVgVh
お前らが理想のコードに書き直してくれるのを待ってるんだが
0200デフォルトの名無しさん2016/08/28(日) 01:37:02.68ID:qNvxLYrv
お前らが知ったかぶりばかりなのが分かった。
別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。

問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。
0201デフォルトの名無しさん2016/08/28(日) 01:39:40.85ID:IZ16EciY
バグは1つではない説。
0202デフォルトの名無しさん2016/08/28(日) 01:39:43.61ID:60yVMOKI
>そのコピーに対して操作してることになる。
あの超絶クソコードの中では一番どうでもいい点だな
0203デフォルトの名無しさん2016/08/28(日) 01:41:06.73ID:qNvxLYrv
他のはバグの温床にはなりえても、あのコードだけではバグとは言えない。
お前ら学校のテストの問題とかでもケチつけてたタイプだろ?w
0204デフォルトの名無しさん2016/08/28(日) 01:45:52.06ID:7bU6M/B0
>>200
デストラクタ内でのdelete後にnullptrいれるのって何かメリットあるの?
通常の関数なら二重delete防止のためというのは分かるんだけど
デストラクタは複数回呼ばれないよね?
0205デフォルトの名無しさん2016/08/28(日) 01:50:09.68ID:qNvxLYrv
>>204
デストラクタ以外のどこか別の場所でdeleteされる可能性があるからだろう。
viewObjは外から渡された変数だから、知らないところでdeleteされてる可能性もある。
そのための防止だね。徹底するならデストラクタ内でもちゃんとnull代入しなきゃだめだけど。
0206デフォルトの名無しさん2016/08/28(日) 01:52:56.61ID:60yVMOKI
>>199
甘えてんじゃねーよこのウンコ量産野郎
0207デフォルトの名無しさん2016/08/28(日) 01:53:52.21ID:7bU6M/B0
>>205
なるほど
この問題の場合はそうですね
0208デフォルトの名無しさん2016/08/28(日) 01:54:04.96ID:60yVMOKI
>>205
バカですか?
0209デフォルトの名無しさん2016/08/28(日) 01:54:21.49ID:lPJVAstL
>>205
別の場所でdeleteされてる可能性があるとするなら、null代入があってもなくてもダメでしょ?
何言ってんの?
0210デフォルトの名無しさん2016/08/28(日) 01:55:42.67ID:60yVMOKI
デストラクタ以外のどこか別の場所でdeleteされてたなんてキチガイじみた状況に
nullチェックが役に立つとかどういう頭してんだよ
0211デフォルトの名無しさん2016/08/28(日) 01:55:50.77ID:qNvxLYrv
>>209
ごめん。一定レベル未満の人には回答しないことにする。
そこまでは面倒見切れん。
0212デフォルトの名無しさん2016/08/28(日) 01:56:03.58ID:Ux2eHzia
>>200
描画だけだから状態を変更しない可能性は高いし
vectorにいれてるくらいだからコピーコストは十分に低いんじゃないかと無理矢理
0213デフォルトの名無しさん2016/08/28(日) 02:00:10.83ID:qNvxLYrv
>>212
もちろん値型やstringとかならコピーでも問題はないよ。
でも状態を持った型だってしつこいくらいアピールされてるでしょ。
notifyして状態切り替えてうんぬんの箇所はその根拠となるよう書かれたもの。
問題を読めれば難しくはないはず。
0214デフォルトの名無しさん2016/08/28(日) 02:01:04.63ID:jX9FVgVh
デストラクタで解放することが分かってるのに他の場所で解放するのはクラスの使用者の責任ではないのか
0215デフォルトの名無しさん2016/08/28(日) 02:01:08.18ID:60yVMOKI
こういうバカが次から次に湧いてくるからアプリケーション層ではnewもdeleteも書くなって言ってるの
あの糞コードみたいなnewとdeleteが対になっていないようなのはその設計思想自体がバグであって
論ずる必要などはなく、こういうことやるバカは速やかにプロジェクトから排除するべし
0216デフォルトの名無しさん2016/08/28(日) 02:02:18.11ID:lPJVAstL
>>205
あ、クラス内の別の場所でdeleteを追加した場合にnull代入が要るって話してんのかな?
それだと>204への答えにはなってないし、>179の「問題」はクラス定義が全部見えてるのに、
コード追加でバグる可能性を考え始めたらきりがないでしょ。

コード変更による多重deleteの心配するなら、他の問題への対処も含めてunique_ptrを使えばいい話しだし。
0217デフォルトの名無しさん2016/08/28(日) 02:04:40.29ID:qNvxLYrv
>>216
>>211
0218デフォルトの名無しさん2016/08/28(日) 02:06:59.88ID:jX9FVgVh
ここまで1行も無し
やっぱり口だけか
他のフォーラムじゃあり得ないな
0219デフォルトの名無しさん2016/08/28(日) 02:08:06.28ID:a4amypBO
最初からnullptrで渡されることがあるんじゃないの
nullptrチェックしても別の場所でdeleteされてるかどうかなんか判断出来なくない?
ポインタのポインタ使って他所でdeleteした時にnullptr入れてるならわかるけど
0220デフォルトの名無しさん2016/08/28(日) 02:09:26.72ID:7bU6M/B0
デストラクタ内でdelete&nullptr代入しておけばデストラクタ呼び出し後に
外でdeleteされても大丈夫と理解しました

でも、デストラクタ呼び出しより先に外でdeleteされてnullptrが代入されてない場合はダメですね
0221デフォルトの名無しさん2016/08/28(日) 02:27:55.51ID:lPJVAstL
>>220
大丈夫じゃないから、騙されないで。
0222デフォルトの名無しさん2016/08/28(日) 02:50:59.20ID:a4amypBO
ポインタがコピーされてるから内部と外部じゃ別物だよ
片方にnullptr代入したってもう片方は変わらない

これnewして直でコンストラクタに入れるんかな
それならコピーでもされない限り外部で消されることは無いけど
0223デフォルトの名無しさん2016/08/28(日) 02:56:39.81ID:jX9FVgVh
スマポだって外部でdeleteされることなんか考慮してない
正しい使い方をしない方に全ての責任があるから考慮する必要性がない
0224デフォルトの名無しさん2016/08/28(日) 03:50:58.71ID:VK4fyJjM
まさかポインターのコピーがわかってない奴がいようとは驚きだ
それより例外安全が考慮されていないのが気になって仕方ない
0225デフォルトの名無しさん2016/08/28(日) 03:54:18.30ID:d5NA/60H
また無意味な部分にツッコミを入れてるのか
バグを見つける為の例題なのであって
完全なコードを示してるわけではないってのが理解できないのかな
0226デフォルトの名無しさん2016/08/28(日) 04:21:07.87ID:hSYh5tBq
>>225
簡略化したはずのコードに無意味なnullポインタチェックがあるのはなんでなん?
簡略化する前ですら冗長なのに
0227デフォルトの名無しさん2016/08/28(日) 06:24:16.40ID:a4amypBO
速攻指摘されてるじゃん
0228デフォルトの名無しさん2016/08/28(日) 06:32:42.06ID:VK4fyJjM
>>226
>>225の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから
本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう
0229デフォルトの名無しさん2016/08/28(日) 07:20:04.01ID:ERRoyT16
>>197
論文見たら全てが策定中になっちゃうのかよ
おめでてーな
0230デフォルトの名無しさん2016/08/28(日) 07:40:09.72ID:hSYh5tBq
>>228
デストラクタでdeleteする前にviewObjに対してなにかしてるって事?
もしそうならもっと糞コードやん。
viewObj自身で片付けろよと。
0231デフォルトの名無しさん2016/08/28(日) 07:47:04.27ID:ERRoyT16
ビューポートがビューを破棄するクソ設計にこれ以上突っ込まないでw
0232デフォルトの名無しさん2016/08/28(日) 08:20:20.55ID:lCXt6uga
>>200
>>183
0233デフォルトの名無しさん2016/08/28(日) 21:30:38.37ID:NaGSjNyA
質問
実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?
0234デフォルトの名無しさん2016/08/28(日) 21:34:04.63ID:NaGSjNyA
自己解決しました。
すみません忘れて
0235デフォルトの名無しさん2016/08/30(火) 08:09:06.98ID:ftymYuoJ
ハゲの好きそうなコード
f ( { p1, p2, p3 } ) // explicitだとエラー
0236デフォルトの名無しさん2016/08/30(火) 15:46:08.79ID:0Xvfpf4x
ハゲの嫌いなことは、言語に機能を追加すること。
もともとC with classesとか始めた張本人がハゲなんだけど、
まあ今のC++を見てると気持ちはわかるね。
0237デフォルトの名無しさん2016/08/30(火) 19:30:10.07ID:0Xvfpf4x
ハゲの論理を、ハゲロンという。
1価の陰イオンとなる第17族元素である。
0238デフォルトの名無しさん2016/08/30(火) 23:18:33.93ID:lqTGpbVF
もっと増やせと言いたいところだがこれ以上大きく変えるような機能はあるのか?
C#みたいなプロパティは欲しいけど
0239デフォルトの名無しさん2016/08/30(火) 23:37:14.11ID:ocxqe0WR
そんなんtemplateで書けばいいじゃん
0240デフォルトの名無しさん2016/08/30(火) 23:42:07.71ID:xMG6EfaL
は?テンプレートでC#のようなプロパティどうやって実現するんだ?
0241デフォルトの名無しさん2016/08/31(水) 00:35:52.45ID:ityOLHmm
それっぽいのは出来なくはなさそうだけど
プロパティの簡潔さには程遠いな
0242デフォルトの名無しさん2016/08/31(水) 00:39:34.42ID:yHeo0PbI
C#を知らんやつにも分かるように説明汁
0243デフォルトの名無しさん2016/08/31(水) 01:23:54.91ID:/ANAyxIk
こんな感じか?
きっちり書くと更に手間かかるな
https://ideone.com/HVRzE1

C#だとこう書ける
https://ideone.com/idjL0A
0244デフォルトの名無しさん2016/08/31(水) 01:38:11.88ID:1fkGDbVO
>>240
> は?テンプレートでC#のようなプロパティどうやって実現するんだ?
今年一の名言だなw
0245デフォルトの名無しさん2016/08/31(水) 01:57:19.27ID:6ukDv4b6
>>243
ダッサ
お前C#のプロパティの便利さ全然理解してないね
0246デフォルトの名無しさん2016/08/31(水) 01:59:51.36ID:j3ifnVdn
何が名言なのかさっぱり分からんのだが
こんな書き方で満足する人いるの?
0247デフォルトの名無しさん2016/08/31(水) 02:07:02.38ID:BDrnIBJY
C++のstd::vector<bool>がクソ扱いされていることを
理解している気配は全く無いな
0248デフォルトの名無しさん2016/08/31(水) 02:09:05.10ID:BDrnIBJY
むしろ今年一の名言は>>211
0249デフォルトの名無しさん2016/08/31(水) 02:21:29.37ID:/ANAyxIk
>>245
アスペ
0250デフォルトの名無しさん2016/08/31(水) 02:44:37.65ID:AgvBQXnk
プロパティって最初に採用されたのはVBっていうかCOMだよね確か。
0251デフォルトの名無しさん2016/08/31(水) 09:31:40.10ID:+TzIiYAW
プロパティも欲しいけど簡単に使える部分配列も欲しいな
0252デフォルトの名無しさん2016/08/31(水) 09:57:43.27ID:WLaQrr/5
>>243
なんじゃこりゃ。全然違うじゃん。
これをC#のプロパティと思ってるの?
もっと普通のケース(各メンバ変数にgetメソッドとsetメソッド)
で例示してくれよ。
0253デフォルトの名無しさん2016/08/31(水) 10:03:12.25ID:WLaQrr/5
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw

class employee
{
public:
employee(int id, std::string name);
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
private:
int id;
std::string name;
}
0254デフォルトの名無しさん2016/08/31(水) 10:03:54.93ID:sRpVtXPN
ほならね
0255デフォルトの名無しさん2016/08/31(水) 10:14:08.99ID:WLaQrr/5
上のダサい例だとgetterやsetter書くよりコードも複雑化してるじゃねーか。
意味ねーじゃん。
0256デフォルトの名無しさん2016/08/31(水) 10:40:08.79ID:N4JrJ9XH
プロパティやりたいならC++Builder
0257デフォルトの名無しさん2016/08/31(水) 11:12:33.68ID:utsO37AQ
お手本はよ
0258デフォルトの名無しさん2016/08/31(水) 11:18:56.64ID:N4JrJ9XH
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw

class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}
0259デフォルトの名無しさん2016/08/31(水) 11:20:17.85ID:N4JrJ9XH
うわw赤の他人のコメントまでコピペしてしもうたw

class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}
0260デフォルトの名無しさん2016/08/31(水) 11:40:45.52ID:utsO37AQ
標準で頼む
0261デフォルトの名無しさん2016/08/31(水) 11:53:46.21ID:N4JrJ9XH
標準じゃないけどめっちゃ便利やよ
0262デフォルトの名無しさん2016/08/31(水) 12:18:33.24ID:XvHw9frf
教えてください。

Qt creatorで作成しており、GUIのボタンからwin7の拡大鏡(magnify.exe)を起動したいと思っています。

問題は、shellexecuteやQProcessで実行すると拡大鏡の画面が真っ黒になり適切に使用できません。
キーボードから、winと+のショートカットでで起動すると問題なく起動すると真っ黒になることはないので、これを行いたいです。

そこで、GUIのボタンクリックでキーボードのショートカットを実行するほうほうがあれば教えていただきたいです。
よろしくお願いします
0263デフォルトの名無しさん2016/08/31(水) 13:33:26.19ID:6ukDv4b6
Qtスレに行ってください
http://echo.2ch.net/test/read.cgi/tech/1438593408/
0264デフォルトの名無しさん2016/08/31(水) 14:02:00.01ID:XvHw9frf
誘導ありがとうございます。

Qt抜きで、c++的には実現できないのでしょうか?
0265デフォルトの名無しさん2016/08/31(水) 14:22:32.78ID:mqymnS7Z
Qt使ったこと無いけど呼び出し時の権限が足りないんじゃないかな
0266デフォルトの名無しさん2016/08/31(水) 14:25:22.52ID:utsO37AQ
とりあえずsystem("magnify");して同じ症状なら別の問題
0267デフォルトの名無しさん2016/08/31(水) 16:18:18.52ID:f/lfR+US
プロパティ標準で書いたらこんな感じ?
getを使う時c#にはない()がいるけど
https://ideone.com/BazQ1D
0268デフォルトの名無しさん2016/08/31(水) 16:56:40.77ID:/MnV3wL6
リファレンサオブジェクトをpublicデータメンバで持てって?
0269デフォルトの名無しさん2016/08/31(水) 17:50:46.05ID:WLaQrr/5
>>267
合格。絶対にこんなコード書かないけど、
プロパティの要件は一応満たしている。
0270デフォルトの名無しさん2016/08/31(水) 18:02:51.48ID:N4JrJ9XH
vectorとかの配列リファレンサがこんな形だよな
0271デフォルトの名無しさん2016/08/31(水) 18:55:44.77ID:gRHWeOr5
ここを見てるとC++のダメさ加減がよくわかる。
0272デフォルトの名無しさん2016/08/31(水) 19:41:02.78ID:YUscqvM8
不要だからコア言語に追加されなかったんだろう
0273デフォルトの名無しさん2016/08/31(水) 20:06:57.16ID:XvHw9frf
>>266のアドバイスで、使い方が間違っていなさそうだったので、違う拡大鏡ソフトを使用することで解決しました
0274デフォルトの名無しさん2016/08/31(水) 20:41:02.91ID:+TzIiYAW
プロパティ不要とか苦行かよ
0275デフォルトの名無しさん2016/08/31(水) 20:43:28.45ID:YUscqvM8
プロパティなんてあってもたいして使わない予感
0276デフォルトの名無しさん2016/08/31(水) 20:54:10.62ID:/MnV3wL6
実感じゃねえのかよ
0277デフォルトの名無しさん2016/08/31(水) 20:57:52.91ID:ntcwlW+6
プロパティ否定してる奴はエアプだってはっきりわかんだね
0278デフォルトの名無しさん2016/08/31(水) 21:00:08.58ID:NSLbELcw
クラス書かないからわかんない。テヘペロ。
0279デフォルトの名無しさん2016/08/31(水) 21:32:42.17ID:viOT3sew
Visual Studioだったら「共通言語ランタイム サポート」を有効にすればプロパティ使えるで(ゲス顔
0280デフォルトの名無しさん2016/08/31(水) 21:48:33.01ID:MERKTov5
C++/CLIは別言語
0281デフォルトの名無しさん2016/08/31(水) 21:59:28.02ID:/ANAyxIk
アクセス制限もいらないからな
余計なことして何が起こっても全て使用者の責任
0282デフォルトの名無しさん2016/08/31(水) 22:34:19.56ID:xAEFTakh
全部グローバル変数にすると便利だよ
0283デフォルトの名無しさん2016/08/31(水) 22:57:22.63ID:YUscqvM8
プロパティよく使うってひとは要するに属性を個別にコントロールすることが多いって事かね?
0284デフォルトの名無しさん2016/08/31(水) 23:03:00.58ID:6ukDv4b6
>>283
そうかもね。設計が下手なんじゃないかな。
もっとも俺もC#ではプロパティ使いまくるけどね。大概のは{get; private set;}だな。
0285デフォルトの名無しさん2016/08/31(水) 23:06:47.51ID:gUL/+EZq
は? 属性を個別にコントロールするのが設計の良し悪しとどう関係するんだ?

「C++で標準でできないことは出来る必要がないから、
 そもそも、やろうとする奴が悪いんだ」みたいな幼稚な思考だったらやめとけよ?
それは宗教だ。
0286デフォルトの名無しさん2016/08/31(水) 23:10:36.99ID:YUscqvM8
>>285
俺は良し悪しは言ってないよ
0287デフォルトの名無しさん2016/08/31(水) 23:23:15.94ID:YUscqvM8
まあ外部に
「このクラスは内部に属性A、属性B、属性Cを持ち、その状態とアクセスを管理します」
みたいな仕様を公開してるクラスだったらプロパティは使いたくなるだろうな。
でもどちらかというとそういうクラスは少ないような気がしたのさ。
0288デフォルトの名無しさん2016/08/31(水) 23:36:37.26ID:mzwgRQN4
そんなほとんど起こらんようなケースについて抽象的な説明されてもよくわからんわ。
0289デフォルトの名無しさん2016/08/31(水) 23:45:12.50ID:YUscqvM8
>>288
何が?
0290デフォルトの名無しさん2016/08/31(水) 23:51:01.09ID:/MnV3wL6
>>287
普通にprivateデータメンバじゃん、それ
0291デフォルトの名無しさん2016/08/31(水) 23:56:32.05ID:YUscqvM8
>>290
いや、それらの属性を持ってること自体を外部に公開してる。
privateメンバだったらそんなことは内部仕様にしか書かないでしょ。
0292デフォルトの名無しさん2016/09/01(木) 00:14:02.16ID:PJEueDDa
簡潔に

「どんな属性を持ってるか自体を隠蔽するのが普通」

って書けばいいじゃん
0293デフォルトの名無しさん2016/09/01(木) 00:31:43.23ID:8Xtys+zE
プロパティって、何が便利なん?
C#はGUI作成程度しか使わない俺的感性だと、setter/getterで十分じゃね?と思うんだが、メリットをトクトクと語ってくれ。
0294デフォルトの名無しさん2016/09/01(木) 04:18:24.20ID:siIxmZ+U
プロパティは
classの実装とインターフェースの分離が容易にします
プログラムの字面の変更なしで
後から小細工ができます
言語仕様に内包されたパッチ機能?w
>>293
十分だと思います
後から改変するとき小細工が出来て便利なのかな?
0295デフォルトの名無しさん2016/09/01(木) 06:05:34.36ID:quvSlm2c
いや、setterとgetterがめんどいからプロパティがあるんでしょw
0296デフォルトの名無しさん2016/09/01(木) 07:26:09.87ID:8Xtys+zE
>>295
手間変わらなくね?
0297デフォルトの名無しさん2016/09/01(木) 07:37:27.71ID:d6w4LGKM
>>296
C#のプロパティは超便利で手間が大きく違う
使ってみれば分かるよ
いまだにこんな便利なものが実装されていないJavaはゴミ
0298デフォルトの名無しさん2016/09/01(木) 08:36:37.64ID:8Xtys+zE
>>297
いや、使った事あるんだけど…
その上でわからないからトクトクとお願いしてる。
0299デフォルトの名無しさん2016/09/01(木) 08:44:04.42ID:7t+U5xjY
そもそもsetterとgetterが必要なのかって話でしょ
0300デフォルトの名無しさん2016/09/01(木) 08:45:24.36ID:ZAvvKiiS
手間はさほど変わらんと思うけどあとで読んだ時に他のメッセージ転送に埋もれない気はする
0301デフォルトの名無しさん2016/09/01(木) 08:51:59.38ID:8Xtys+zE
>>300
ああ、なるほどね。
意味論として、OOのメッセージとプロパティが、C#のメソッドとプロパティに相当するのか。
言われてみれば当然かも。
あざっす。
0302デフォルトの名無しさん2016/09/01(木) 09:01:16.42ID:DsNIQM1p
超便利と書くからワケがわからなくなる
いちいちGetなんちゃらSetなんちゃらと書くよりも既読性が上がる
0303デフォルトの名無しさん2016/09/01(木) 09:39:25.12ID:DsNIQM1p
既読性って何だ?w
可読性だったわw
0304デフォルトの名無しさん2016/09/01(木) 09:52:32.53ID:oseS/uHr
引数0の関数は括弧省略できればいいんじゃないのか
0305デフォルトの名無しさん2016/09/01(木) 10:08:05.72ID:d6w4LGKM
「超便利」が分かって貰えないとか
ほんとにC#のプロパティ使ったことあるんですかねえ(笑)
0306デフォルトの名無しさん2016/09/01(木) 11:42:15.33ID:n+lE1LxE
使えば超便利、だがあまり使わない、って両立するけどな。
0307デフォルトの名無しさん2016/09/01(木) 11:57:18.01ID:f8G6zOLb
listenerに出来るなら便利だけど、単なるsetter,getterじゃなあ

全部メソッドの方が統一感はあると思う。
0308デフォルトの名無しさん2016/09/01(木) 12:08:36.30ID:n+lE1LxE
getter/setter(プロパティに相当するものを含む)を持つクラスと持たないクラスの比率ってどんなもん?
俺は1対5ぐらいだ。
だからあれば便利というのはわかる。
0309デフォルトの名無しさん2016/09/01(木) 12:30:21.99ID:LcnNSect
>>296
手間は結構変わるよ。
まず、getter/setterを普通に定義するのより、
プロパティの方がコード量が単純に減る。
変数名と関数名の一致だとかも考慮しなくていいから、
保守もしやすい。

その上、利用時にはpublicメンバ変数のように使えるから、
呼び出し先のコードもすっきりする。

必須ではないから不要と思うなら使わなければいいけど。
便利機能ってだけだし。
0310デフォルトの名無しさん2016/09/01(木) 12:31:26.62ID:LcnNSect
>>304
それはVBAとかそうだけど、ややこしいからやめてくれw
0311デフォルトの名無しさん2016/09/01(木) 12:46:32.26ID:d6w4LGKM
>>298
単純な話こういうことを言ってるんだけど。。。

JavaやC++の場合
private int x;
public getX(){return x;}
public setX(int val) {x=val;}

C#の場合
public int X {get; set;}

手間は1/3以下になってる
ほんとに使ったことあるの?
0312デフォルトの名無しさん2016/09/01(木) 13:12:08.94ID:+q6YP6fM
あんなのが欲しい、こんなのが欲しいと、
みんな口々に勝手なこと言うのを
あれもこれもと言語に取り込む
ということをするかしないかというポリシーは
言語が違えば違って当たり前

C#でどうだからC++もどうせよとか
C#でどうだからJavaはゴミとか
そんなにC#が好きならC#だけ使ってればいい
0313デフォルトの名無しさん2016/09/01(木) 13:23:01.35ID:d6w4LGKM
うるせー(笑)なんだかんだ言っても一番好きなのはC++だよ
高速性が求められる場面ではほぼ唯一の選択肢だし
他の言語に比べて不便なところがあったとしても、かゆいところに手が届く感は最強だし
0314デフォルトの名無しさん2016/09/01(木) 13:37:36.32ID:Zz5UEunk
public変数とgetter/setter付きのprivate変数って何が違うの?
0315デフォルトの名無しさん2016/09/01(木) 13:52:30.49ID:d6w4LGKM
>>314
get/set時にコードが介入できる
0316デフォルトの名無しさん2016/09/01(木) 14:51:04.12ID:nGqVI4Wr
public変数なんか使ったら、まともにプログラミング出来ない。
これは、あり得ない選択

変数は出来るだけ、狭いスコープに閉じ込めるのが基本
0317デフォルトの名無しさん2016/09/01(木) 14:52:33.38ID:3wSPfZnR
>>314
昔見た理屈だと、ゲッターセッターは間に正規化とか突っ込めるからセーフティなんだと。
0318デフォルトの名無しさん2016/09/01(木) 15:42:38.63ID:n+lE1LxE
>>316
上段も下段もそれぞれ正しい
0319デフォルトの名無しさん2016/09/01(木) 16:38:25.17ID:f8G6zOLb
>>314
c++の場合、表記が違うので入れ替えが大変。
0320デフォルトの名無しさん2016/09/01(木) 16:52:35.75ID:oseS/uHr
直接変数に対して入出力してるだけのセッターゲッターでも将来を見越してわざわざ作ってるってことか?
0321デフォルトの名無しさん2016/09/01(木) 17:03:57.26ID:d6w4LGKM
>>320
そういう場合も多いかもしれないけど、.Net環境においてはpublicプロパティにすることによる恩恵は多々ある
例えばDataGridViewに内容を表示するときなど
0322デフォルトの名無しさん2016/09/01(木) 18:10:45.91ID:3cPIMSrP
>>314
public変数じゃ、変更されたタイミングで描画をアップデートするみたいな処理がやりにくくなる
needUpdateViewみたいなフラグをtrueにできるだけでも、getter/setterはあったほうがいい

単なる構造体に近いようなクラスでも、データの不整合を起こさないようにバリデーションが行えるという意味では重要
後から値の範囲を制限したくなるとか、複数の変数間で整合性のとれないケースを排除したくなるということはよくある
例えば、Personクラスが初めは性別と名前しかなかったところを、そこに「父」「母」「息子」「娘」みたいな属性を付けたくなったら、性別女で「父」は弾きたくなる
public変数だったらこれはできないけど、setter経由であればできる
「親」「子」にして性別と合わせて計算すればいいとかいう話があるかもしれんが、余談だがその場合はgetterで男女+親子の属性で「父」とかを取り出すことができるね
0323デフォルトの名無しさん2016/09/01(木) 18:27:41.58ID:zfFV4MMV
getterやsetterの関数呼び出しならまだしも、propertyでファイルアクセスやらネットワークのやら時間かかる処理入れられると嫌な感じ
0324デフォルトの名無しさん2016/09/01(木) 18:41:33.44ID:L3a4bYLC
>>323
それは利用者の予期を裏切るような実装をするなって話であって、
ゲッタセッターならよくてプロパティーではだめだって話じゃないと思うけど
0325デフォルトの名無しさん2016/09/01(木) 19:29:54.38ID:quvSlm2c
>>312
C++も11以降がんがん新しい要素取り入れてるんだから、
今の仕様が絶対的なものじゃないぞ。今の仕様を絶対視するのは宗教だ。
0326デフォルトの名無しさん2016/09/01(木) 19:36:30.23ID:qC9ojyjS
>>322
同性婚の夫婦が養子をとった時に破綻する先見性のない設計ですね w
0327デフォルトの名無しさん2016/09/01(木) 19:46:48.63ID:zfFV4MMV
メンバ変数ぽく使えるより、指示すればgetter,setterを自動生成してくれる方がいいな。

参照とって書き換える関数に渡したらどうなるんだとか考えると、変数っぽく使えるのは混乱招くだけのような。
0328デフォルトの名無しさん2016/09/01(木) 20:02:06.91ID:f8G6zOLb
>>326
不要な汎用化じゃね?
必要になってから修正でいいだろ。
0329デフォルトの名無しさん2016/09/01(木) 20:16:20.03ID:qC9ojyjS
>>328
ネタに突っ込むならもう少し面白いやつ頼むわ
0330デフォルトの名無しさん2016/09/01(木) 20:31:55.38ID:n+lE1LxE
setter/gettrrが要る要らないの話題になるとpublic変数の話題に転びがちだな。
ちょっともにょもにょする。
0331デフォルトの名無しさん2016/09/01(木) 20:40:39.28ID:n+lE1LxE
外部から属性を設定せざるを得ない状況がけっこうあって、なかなかリファクタリングも難しいってことか。
0332デフォルトの名無しさん2016/09/01(木) 21:41:16.10ID:quvSlm2c
>>327
C++でプロパティ導入するなら、getterの戻り値は参照かconst参照のどちらかに制限すれば、
その辺の問題は解決しそう。
0333デフォルトの名無しさん2016/09/01(木) 23:31:36.63ID:kyBhPm5k
そういや、パッと見は普通のフィールド(メンバ変数)なせいで
実行速度とか気にせずに気楽に使ってしまいやすい、なんて弊害も多少あるみたいね。
0334デフォルトの名無しさん2016/09/01(木) 23:49:26.27ID:VuYRfyfh
てかgetter/setterでもプロパティカプセル化が弱くなるから原則使わないのが基本だろ
フラグをプロパティ化してどうのこうのとか言ってるやついたけど、参照透過性なくなって状態遷移図保守の雇用を産みだしてるだけ
0335デフォルトの名無しさん2016/09/01(木) 23:55:31.16ID:quvSlm2c
それはおかしいだろ。メンバ変数を外から操作する必要性は普通にある。
例えばWindowクラスとかどうすんの。メンバ変数変えられないWindowクラスとか欠陥品でしょ。
0336デフォルトの名無しさん2016/09/01(木) 23:55:52.32ID:oRYPM1bK
>>334
言いたいことはわかるが、 外からの属性アクセスをやめたとしても、
実際に内部状態が変化するなら参照透過ではないよな?
0337デフォルトの名無しさん2016/09/01(木) 23:58:42.81ID:VuYRfyfh
>>335
お前がWindowクラスを書くのは自由だけど、C++なんだから数値計算ライブラリとかを想定して書けよ

>>336
もちろん
0338デフォルトの名無しさん2016/09/02(金) 00:04:47.23ID:q6GNZ6RD
>>337
否定されてから急に話題を限定し出すってのは一番見苦しいパターンだぞw
素直に間違いを認めろよ。数値解析だっていくらでもそういう事例あるだろ。
0339デフォルトの名無しさん2016/09/02(金) 00:23:31.33ID:dxT5btnL
あるかないかで言えばもちろんあるけど、外部主導の状態コントロールは避けたいので、
設計に時間をかけられるときはhetter/setterは減るだろう、ってだけ。
0340デフォルトの名無しさん2016/09/02(金) 00:25:04.39ID:dxT5btnL
X hetter
〇 getter
0341デフォルトの名無しさん2016/09/02(金) 00:32:46.64ID:wMSGanuZ
C++はプロパティないのでコード書くときは短く済ませたいんで
ゲッターはSize()、
セッターをSetSize()にして
Get省略してる
0342デフォルトの名無しさん2016/09/02(金) 00:50:46.08ID:VaOayOrf
>>341
自分はSetも省略する
たまに引数の関係でできない時もあるけどさ
0343デフォルトの名無しさん2016/09/02(金) 04:12:21.27ID:+CUdjKtm
俺はオーバーロードになると関数ポインタとるのが面倒になるからsetぐらいは省略しないな
0344デフォルトの名無しさん2016/09/02(金) 04:38:51.30ID:17n5VyUh
メンバ関数ポインタってほとんど使わないから気にしたことなかった…
0345デフォルトの名無しさん2016/09/02(金) 06:31:01.77ID:96M6CE+e
>>342
ああ、引数の違いを利用すればsetもgetも省略できるのか。

int value(int val); ... メンバvalueの値の設定
int value(); ... メンバvalueの値の参照

同じ関数名で機能の異なるものを作るのは危険、
ということから思いつきもしなかったけど、
この使い方なら便利で有用かも知れないな。
0346デフォルトの名無しさん2016/09/02(金) 07:16:35.65ID:Vf4h0u1D
>>345
> int value(int val); ... メンバvalueの値の設定
なぜに戻り値?
03473452016/09/02(金) 07:33:47.21ID:96M6CE+e
>>346
値の範囲制限とかする場合に、
戻り値に「実際に格納された値」を入れて返す。

あと瑣末なことだけど、
cout << a.value(val) << endl;
みたいに格納しつつ値も使う、ができてちょい便利。
0348デフォルトの名無しさん2016/09/02(金) 07:35:34.05ID:MC2dvnuP
そう言うの、以前の値を返すのも多いから紛らわしいな。
0349デフォルトの名無しさん2016/09/02(金) 07:36:05.31ID:sd/G3GoC
std::exchange的な〜?
0350デフォルトの名無しさん2016/09/02(金) 07:49:11.95ID:Vf4h0u1D
>>347
> 戻り値に「実際に格納された値」を入れて返す。

こっちはまだわからなくもないが

> 格納しつつ値も使う、ができてちょい便利。

みたいな設計はどうかと思う
0351デフォルトの名無しさん2016/09/02(金) 08:01:45.25ID:/uIui9G6
そうだな
(a = b) = c;
みたいな20世紀の設計思想だな
0352デフォルトの名無しさん2016/09/02(金) 08:01:48.98ID:5Aji0+2+
*thisを返してしまう
0353 ◆SEdFBOkLSw 2016/09/02(金) 08:29:24.90ID:Nu/77N8P
>>352
メソッドチェーン出来て便利だよね。
0354デフォルトの名無しさん2016/09/02(金) 08:44:56.31ID:OksuLk+6
演算子のオーバーロードみたいな使い方のポリシーでは
a.val(b.val() + c.val()) みたいなやつ

というかどうしてもプロパティが欲しけりゃ演算子オーバーロードで真似っこできるじゃん
0355デフォルトの名無しさん2016/09/02(金) 08:48:54.95ID:xzsbRhmn
は? 演算子オーバーロードでどうやってプロパティの代用すんだよw
プロパティ分かってない奴か? コードを示して見ろ。
0356デフォルトの名無しさん2016/09/02(金) 09:12:04.14ID:+CUdjKtm
http://ideone.com/rZ2S2m
こんな感じか?
0357デフォルトの名無しさん2016/09/02(金) 09:14:47.55ID:OksuLk+6
>>355
ググれば普通に出るが?
なんでそんなに必死なの
http://boost.2283326.n4.nabble.com/the-best-possible-c-properties-implementation-tt2626498.html
0358デフォルトの名無しさん2016/09/02(金) 09:20:57.20ID:OksuLk+6
>>356
そうね、そういう感じ
0359デフォルトの名無しさん2016/09/02(金) 10:36:49.94ID:AFnhG1K/
それじゃ仮想関数にできないじゃん。やり直し。
無理やりオーバーライドできるようにしなくていいよ。
既にコードも必要以上に複雑化しててgetter/setterの方がマシなレベルだし。
0360デフォルトの名無しさん2016/09/02(金) 12:07:39.19ID:+CUdjKtm
>>359
NVIって知ってる?
0361デフォルトの名無しさん2016/09/02(金) 12:09:10.62ID:rUpx5Cs1
結局、プロパティは要らんわな。

タイプ量の問題ならマクロで解決出来るし。
0362デフォルトの名無しさん2016/09/02(金) 12:26:51.71ID:6Qab/oE8
これからのC++にプロパティーは必須だな。
これからもどんどん新しい機能を取り入れてどんどん
わけがわからなくなるといい。
0363デフォルトの名無しさん2016/09/02(金) 12:41:00.31ID:1fpVQ5H8
マクロは入力補完できないし衝突の可能性がある
0364デフォルトの名無しさん2016/09/02(金) 12:49:08.18ID:6Qab/oE8
C++はマクロで出来ることをどんどん機能として取り込んで来たのに
いまさら後戻りはできない。
0365デフォルトの名無しさん2016/09/02(金) 18:00:48.43ID:96M6CE+e
C#の「プロパティ」って機能がどんなのか知らないけど、
現在C++にないから不要な機能だ、と突っ張るのは危険かも知れないよ。

いつか「次の規格から『C#のプロパティ』と同様の機能が追加」と
発表されるかもしれない。これまでもそうやって肥大化してるじゃない。
0366デフォルトの名無しさん2016/09/02(金) 18:28:49.74ID:qjeLwgBZ
Javaでもそうだけどgetter/setterは言語的には単なるメソッドでしかないが
C#のプロパティは言語的にメソッドとは違うものとして認識出来るようになっている
そこから様々な便利さが出てきている
0367デフォルトの名無しさん2016/09/02(金) 19:27:06.33ID:nL/2u0CX
>>364
マクロで出来ることではなく、
マクロに頼っていたことを、
マクロを使わずに出来るようにしてきたんだよ。

スコープに従わないオブジェクト指向の敵との戦いだ
0368デフォルトの名無しさん2016/09/02(金) 19:37:33.13ID:XrGCfAOV
C++のテンプレートってポストプロセッサといっていいよね。
マクロみたいなもん。
0369デフォルトの名無しさん2016/09/02(金) 20:24:08.55ID:8Rlh5aGL
↓テンプレートとマクロは全く違うもの
0370デフォルトの名無しさん2016/09/02(金) 20:41:05.83ID:Wj/juS31
ソースコードの書き換えという点では同じ。
0371デフォルトの名無しさん2016/09/02(金) 20:49:32.19ID:W5XwdQxs
テンプレートはテキスト置換じゃないよ。
あれはコンパイルタイムに計算してるんだよ。
0372デフォルトの名無しさん2016/09/02(金) 20:49:47.52ID:1fpVQ5H8
テンプレートが単なる置き換えだと思ってるのか
0373デフォルトの名無しさん2016/09/02(金) 20:50:16.78ID:BGbCtBYN
マクロの親玉だ
0374デフォルトの名無しさん2016/09/02(金) 20:52:42.81ID:W5XwdQxs
テンプレートもconstexprもある種の計算機のサブセットだからなぁ。
0375デフォルトの名無しさん2016/09/02(金) 22:57:15.93ID:Q3H4IaZb
コンパイル時に計算できることなんてたかが知れてるし、使い道ないんだよな
0376デフォルトの名無しさん2016/09/02(金) 22:59:57.14ID:3Xz3H/8a
いやいや…型チェックとかのなくすべき実行時オーバーヘッドがなくせるってだけで意味大有りだろ
0377デフォルトの名無しさん2016/09/02(金) 23:04:13.81ID:W5XwdQxs
PURE関数が入ったら、constexprなんかは関数がハッシュに置き換わってそこから値置換になるかも。
コードを全部どけて数字一個になる日も近い。
0378デフォルトの名無しさん2016/09/02(金) 23:12:20.33ID:1fpVQ5H8
まともにC++使ってて使い道無いとかどうやったらそう解釈できるんだ
0379デフォルトの名無しさん2016/09/02(金) 23:30:26.24ID:Q3H4IaZb
コンパイル時に決まってるなら計算する必要ないじゃん
0380デフォルトの名無しさん2016/09/02(金) 23:32:54.48ID:1fpVQ5H8
手動で計算してくれ
0381デフォルトの名無しさん2016/09/02(金) 23:35:19.44ID:W5XwdQxs
そしてたどり着くのだ。42に。
0382デフォルトの名無しさん2016/09/03(土) 00:45:41.77ID:WTZrMZ5J
テンプレートなしだとマクロとvoid*でやりくりすることになるのかな
<algorithm>の中身がおそろしいことになりそう
0383デフォルトの名無しさん2016/09/03(土) 02:05:00.69ID:VnUB3qPQ
>>381
43ですが
0384デフォルトの名無しさん2016/09/03(土) 02:08:56.14ID:VnUB3qPQ
templateなんてデブなブタに過ぎんからな
0385デフォルトの名無しさん2016/09/03(土) 02:12:17.57ID:qWYFFL/S
>>383
なんすかそれ。
0386デフォルトの名無しさん2016/09/03(土) 07:03:39.80ID:ZkDRxv2v
>>375
最適化を否定するのか?
0387デフォルトの名無しさん2016/09/03(土) 07:04:51.23ID:ZkDRxv2v
>>382
bsearchみたいにな
0388デフォルトの名無しさん2016/09/03(土) 09:55:01.98ID:MIqeGybs
templateなんて実際に使えるレベルものを書ける人なんてほとんどいないだろ
使うことはあっても、書くことはないだろ
0389デフォルトの名無しさん2016/09/03(土) 10:03:25.99ID:2vnq4BB3
ライブラリを作っていれば嫌でも使うが
0390デフォルトの名無しさん2016/09/03(土) 11:15:11.07ID:NvcWw3DB
>>388
キミの周りではそうかもしれないけど、templateみたいな便利なものを使えないようじゃ現代のプログラマとしては失格だと思います
てかテンプレートってそんなに難しいか?
0391デフォルトの名無しさん2016/09/03(土) 11:47:23.77ID:KpYZ86nt
標準コンテナくらいバカでも使える。
それだけでテンプレートのメリットは十分に享受できる。
0392デフォルトの名無しさん2016/09/03(土) 11:48:35.81ID:2vnq4BB3
boost並みの実装ができないと書けていることにならないらしい
0393デフォルトの名無しさん2016/09/03(土) 12:11:48.21ID:NXr2sGOM
>>388
汎用性があって他人も実際に使えるレベルとなると難しいかもしれんが、自分が使う範囲内では普通に書くだろう。
はじめからtemplateを書くんじゃなくて自分用のユーティリティとかをtemplate化することも含めればけっこうある。
0394デフォルトの名無しさん2016/09/03(土) 12:23:53.61ID:ZkDRxv2v
>>390
ほんこれ
0395デフォルトの名無しさん2016/09/03(土) 12:35:37.51ID:UwaIhkeW
くだらねえな
もっと為になる話をしろやカス
0396デフォルトの名無しさん2016/09/03(土) 12:54:22.03ID:e++gk4lZ
Boost並に使いこなせるか?って聞かれたら
謝るしか無いわ、ホントごめん
0397デフォルトの名無しさん2016/09/03(土) 12:56:30.19ID:2vnq4BB3
為になる本ならたくさんある
0398デフォルトの名無しさん2016/09/03(土) 13:22:16.46ID:xlYZjvy0
メソッドA->B->C->D->Eと呼ばれる階層が深い構造のシステムがあって、
Eの計算結果をAで取りたい要望が新しくでてきたときってみんなならどう実装する?

条件としては、
・AはwhileループでBを呼び出し続ける
・Eの最新の計算結果はループで毎回使う
・CがDをnewしてるから、単純なgetterとかじゃ取れない

1. 引数が増えるのは仕方ないが、A~Eに全て引数を追加する
2. Eでstaticなグローバル変数を作る。Aからはgetterで取得する

一応思いつくのはこのあたりなんだけど、もっとスマートなやり方ってあるかな?
0399デフォルトの名無しさん2016/09/03(土) 13:25:09.63ID:WhBzeO8K
>>398
メソッドDをCがnewする?なんか説明が胡散臭いんだけど、普通に戻り値で返すのはダメなん?
0400デフォルトの名無しさん2016/09/03(土) 13:31:49.96ID:ftE9LPfh
そんなことしてたら「この計算結果もほしいんだけど」ってなった時に
また困ることになる。

Contextクラスを追加して、計算に必要な情報はそこに集約させろ。
そうすればどの階層からでも必要な情報を取れる。
0401デフォルトの名無しさん2016/09/03(土) 13:34:05.21ID:xlYZjvy0
>>399
すまん、説明が適当だった
CはDメソッドがあるクラスをnewしてるってこと
DClass dClass = new DClass()

C() {
dClass->d();
0402デフォルトの名無しさん2016/09/03(土) 13:36:43.61ID:xlYZjvy0
>>399
ごめん、途中で送信しちゃった、

CはDメソッドがあるクラスをnewしてるってこと

C() {
DClass dClass = new DClass()
dClass->d();
}

戻り値はEから外部システムに送信が成功したかどうかを表すbool値がすでに返されてるんだ

>>400
Contextクラスか・・自分は使ったことないし、よく理解できてないからググってみるわ
ありがとう
0403デフォルトの名無しさん2016/09/03(土) 13:40:54.20ID:2vnq4BB3
説明の意味が全く分からない
hoge B::get_E(){
  D *d = c.create_D();
0404デフォルトの名無しさん2016/09/03(土) 13:47:29.68ID:e++gk4lZ
今後パラメータが増える可能性があるようなら、それらをクラスなり構造体なりにまとめて、
何らかの方法で渡すようにすれば、最小限のコード修正で済むよってことじゃない?
0405デフォルトの名無しさん2016/09/03(土) 13:51:40.11ID:2vnq4BB3
>>402
そのCの戻り値にDの戻り値のEを入れてBが受ければいいんじゃないのか
0406デフォルトの名無しさん2016/09/03(土) 13:58:09.73ID:Px0qkqVR
>>398
引数を追加する方法を取るとして、楽するならば
一旦引数を構造体にして、後で追加したい場合構造体のメンバーを追加する形にする
全部の関数はその構造体を引数にしていれば、好きな構造体メンバーを追加しても形は変わらない
0407デフォルトの名無しさん2016/09/03(土) 13:58:29.96ID:Px0qkqVR
>>404
おれはや
0408デフォルトの名無しさん2016/09/03(土) 13:59:56.32ID:e++gk4lZ
>>405
既に戻り値は他で使われてるらしいし
そのやり方だと、参照渡しなんかが現実的じゃない?
0409デフォルトの名無しさん2016/09/03(土) 14:00:12.38ID:WhBzeO8K
>>402
「全て引数を追加する」がContextかなんかの参照引数を渡してまわる方法だと思ったんだけど、違ったんかな?
戻り値を変えたくないならそうするしかないと思うよ。
0410デフォルトの名無しさん2016/09/03(土) 14:01:01.19ID:ZkDRxv2v
>>395
気がついたやつがやれ
指図すんなクレクレ厨め
0411デフォルトの名無しさん2016/09/03(土) 14:05:10.90ID:2vnq4BB3
>>408
戻り値なんてpairなりtupleなりでいくらでも増やせばいいじゃん
周囲に影響を出したくないならそこから特定の値だけを取り出す関数でも噛ませればいい
0412デフォルトの名無しさん2016/09/03(土) 14:14:55.80ID:4FUmxt1N
コンポジションじゃ駄目なん?
0413 ◆SEdFBOkLSw 2016/09/03(土) 14:20:00.21ID:WfmCkwdk
Eの結果がどう欲しいかによるとは思うな。
Aだけが知りたいなら素直にEがログ残せば良いと思う。
中間層が知りたいなら返してやらなきゃならんだろうけど、B→Eが他の部分で使われてたら関連するのビルドし直しだしテストし直しだし、出し直さないといかんのでは?
0414デフォルトの名無しさん2016/09/03(土) 15:45:28.04ID:KoWGZcqO
はいはい池沼は去れ
0415デフォルトの名無しさん2016/09/04(日) 06:52:12.75ID:5SDmlLW2
https://www.embarcadero.com/jp/products/delphi/downloads
現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能ですよ
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます。
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
0416デフォルトの名無しさん2016/09/04(日) 06:58:26.93ID:5SDmlLW2
すいません、C++Builderはこっちです
https://www.embarcadero.com/jp/products/cbuilder/downloads
現在、C++Builderが無料でダウンロード可能
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

DelphiとC++Buiderは別個にダウンロードが必要な模様

(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
0417デフォルトの名無しさん2016/09/04(日) 07:03:58.75ID:5SDmlLW2
>>415はDelphiのみでした
0418デフォルトの名無しさん2016/09/04(日) 07:28:40.73ID:uvifPYcj
リンク先ページを見たけど、これでダウンロードできるのは
「30日間だけ無料で使えます」バージョンじゃないのかな。

"Try C++Builder FREE for 30 days" って
ダウンロードできる期間が30日間、じゃないよね。
>>415-416 に出てる期間は30日には足りないし。
0419デフォルトの名無しさん2016/09/04(日) 09:09:03.52ID:xp6EP8jq
スターターエディションの方じゃね?

C++ Builder
https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download

Delphi
https://www.embarcadero.com/jp/products/delphi/starter/promotional-download
0420デフォルトの名無しさん2016/09/04(日) 09:17:51.17ID:ZU1xzEkS
>>390
簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから
テンプレートは嫌いなんだよ。
STLで十分。
0421デフォルトの名無しさん2016/09/04(日) 09:56:16.37ID:ZZxj7Xyl
無能の言い訳にしか聞こえないな
0422デフォルトの名無しさん2016/09/04(日) 10:13:47.98ID:xp6EP8jq
>>420
> 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから

理由になってなくて笑た
0423デフォルトの名無しさん2016/09/04(日) 10:22:29.27ID:GcCwBDUy
>>420
特定の人間でなく周りに多いのなら受けるお前の方に問題があるんじゃないか?
0424デフォルトの名無しさん2016/09/04(日) 10:39:20.02ID:GZCXAM8t
類友なのに自分は違うって思ってるパティーン
最も傑作でおめでたい人種
0425デフォルトの名無しさん2016/09/04(日) 12:40:13.35ID:+mIHXAwk
昔のオブジェクト指向と似たような議論だな。
別にフルに使いこなせなくても恩恵は受けられるだろうにw
0426デフォルトの名無しさん2016/09/04(日) 13:31:30.85ID:u29z8UDZ
難しいから使うなって一生使えるようにならないよね
そういう進歩を捨てた人間は技術者とは認めてないわ
0427デフォルトの名無しさん2016/09/04(日) 13:58:48.62ID:6rO3xNqX
>>420
最後の2行は2016年度最強の名言だな
0428デフォルトの名無しさん2016/09/04(日) 14:05:26.02ID:VQnaPYaY
>>427
テンプラ屋でもやれば?
0429デフォルトの名無しさん2016/09/04(日) 14:05:45.23ID:X6kuqpOw
べつに嫌いな機能が有ってもおかしくはないな。
プリプロセッサーが嫌いな人とか、iostreamが嫌いな人とか人それぞれ
0430デフォルトの名無しさん2016/09/04(日) 14:06:53.24ID:6rO3xNqX
オブジェクト指向www
久しぶりに聞いたな
0431デフォルトの名無しさん2016/09/04(日) 14:07:38.02ID:OnzMHuuE
>>420
まずはSTLが何の略語なのか調べてみよう!
0432デフォルトの名無しさん2016/09/04(日) 14:17:00.28ID:xp6EP8jq
>>429
嫌いな機能はあってもいいけどその理由が >>420 とかなのはねぇ
0433デフォルトの名無しさん2016/09/04(日) 14:45:42.58ID:bYyi8Nkm
C++を使う理由の90%がテンプレートでしょう
使わないならCでもやっててください
0434デフォルトの名無しさん2016/09/04(日) 14:52:46.08ID:VQnaPYaY
C言語しか出来ない50代くらいのジジイたくさん居る
で、なぜかえばっている
0435デフォルトの名無しさん2016/09/04(日) 14:54:45.23ID:Zvr3allz
便利だと言い張って可読性の低い醜悪なもん作ってよこす奴が多いからCPPは嫌いなんだよ。
テンプレートは最高。
0436デフォルトの名無しさん2016/09/04(日) 15:16:44.85ID:9+LtAjSl
stlっていっても、実装見たら初学者でも書けるようなものがほとんどでしょ。
forで回して、比較してるだけとかwww
積極的に使う理由がない
0437デフォルトの名無しさん2016/09/04(日) 15:23:23.36ID:u29z8UDZ
コピペすんな
0438デフォルトの名無しさん2016/09/04(日) 15:58:19.56ID:dwel9f30
おいら最近はC#のほうが多くてC++はご無沙汰になってるんだけど
C++のテンプレートが使えたらなあって思うことはたまにある
0439デフォルトの名無しさん2016/09/04(日) 16:51:50.12ID:1H4SDZ6a
は? C#にも名前は違うけどあるだろボケ
0440デフォルトの名無しさん2016/09/04(日) 17:03:58.61ID:u29z8UDZ
ねえよ
0441デフォルトの名無しさん2016/09/04(日) 17:05:46.48ID:dwel9f30
>>439
似たようなのはあるし、大体はそれで問題ないんだけど
テンプレートとは根本的な仕組みが違うので、特殊化とか微妙に出来ることに差があるのよね
0442デフォルトの名無しさん2016/09/04(日) 17:12:09.12ID:UDXdUcTk
C#のジェネリックはCLIを一個しか生成せずに、型の違うオブジェクトが与えられたら
JITコンパイル時に生成してるもんな
だからサイズは小さいけどC++のtemplateとは根本的に考え方が異なる

おまけにオブジェクト同士を演算しようとするとコンパイルエラーになるので
dynamic、つまりリフレクションを使うしかないという
0443デフォルトの名無しさん2016/09/04(日) 18:39:26.39ID:c++wF4a4
IDがC++だー
0444デフォルトの名無しさん2016/09/04(日) 18:54:35.76ID:ZZxj7Xyl
>>443
おおすげーおめでとう
0445デフォルトの名無しさん2016/09/04(日) 19:14:14.87ID:1H4SDZ6a
>>442
言語機構が違うから実装も異なるのは当たり前。
それがどう実用上影響するのかを書けよ。

当たり前だが、俺はC#のジェネリックと
C++のテンプレートの機能上の様々な相違点(例えばintを引数に取れないとか)は知った上で、
おまえさんの教育のために質問してるからな?
勘違いするなよ。
0446デフォルトの名無しさん2016/09/04(日) 19:16:44.51ID:1H4SDZ6a
intを取れないってのは_
C++でできるtemplate<int N>
みたいなのがC#ではできないって意味な。

馬鹿が勘違いするといけないから。
0447デフォルトの名無しさん2016/09/04(日) 19:25:27.22ID:OnzMHuuE
>>443
おおっ!
0448デフォルトの名無しさん2016/09/04(日) 21:25:33.06ID:pHvOGCAw
>>439
> は? C#にも名前は違うけどあるだろボケ
ジェネリックとテンプレートが同じだといいたいのかな?
ガチなアフォ登場したなwww
0449デフォルトの名無しさん2016/09/04(日) 21:27:10.35ID:dwel9f30
>>448
C++分かる人に使い方の説明しろと言われたら間違いなく
真っ先に「テンプレートです」って言うけどな
0450デフォルトの名無しさん2016/09/04(日) 21:37:35.91ID:ZdgSZwYz
テンプレートはコンパイルタイム、ジェネリックはランタイムだ。
0451デフォルトの名無しさん2016/09/04(日) 21:37:38.20ID:xp6EP8jq
>>443
スゲー、なんか羨ましいぜ
0452デフォルトの名無しさん2016/09/04(日) 21:48:56.88ID:I3Tx/JDs
コンパイルタイムのくせにいちいち
typenameをつけまくらないといけない
クソ言語。
テンプレートパラメーターごとに特殊化が作られるんだから
その辺テキトーでもいいはずなのに。
0453デフォルトの名無しさん2016/09/04(日) 21:54:49.52ID:LHkeQq2D
つか、型なんてコンパイル時なんて遅すぎだろ
普通は設計終わった段階で全て決定してるし。
0454デフォルトの名無しさん2016/09/04(日) 21:58:44.17ID:I3Tx/JDs
まじかよ
俺今日vector<int>って書いたけど
vectorの設計後にインスタンス化しちゃったぜよ
0455デフォルトの名無しさん2016/09/04(日) 22:00:39.11ID:+mIHXAwk
細かい違いはあれどジェネリックはC#版のテンプレートだろ
0456デフォルトの名無しさん2016/09/04(日) 22:16:41.22ID:LHkeQq2D
ジェネリックはC#版のテンプレート
名言頂きました
0457デフォルトの名無しさん2016/09/04(日) 22:18:59.30ID:ItsH+W+6
ジェネリクスは汎化で、テンプレートはコンパイルタイムで、全くの別物じゃないの?
0458デフォルトの名無しさん2016/09/04(日) 22:23:32.00ID:r5JTAWNt
言語機能の目的は似ているな
目的を理解せず仕組みを語りたがる中学生には違うらしいけど
0459デフォルトの名無しさん2016/09/04(日) 22:24:22.75ID:u29z8UDZ
ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな
インターフェイスを定義してようやく特定の型のみ対応できる
0460デフォルトの名無しさん2016/09/04(日) 22:27:35.01ID:+mIHXAwk
>>457
それは相違点の1つだろ。
テンプレートにせよジェネリックにせよ一番の本質は
「型引数を受け取って特化型を生成すること」だからな。
0461デフォルトの名無しさん2016/09/04(日) 22:52:01.38ID:r5JTAWNt
>ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな
へー、初耳だ
0462デフォルトの名無しさん2016/09/04(日) 23:38:59.65ID:c++wF4a4
>>444,447,451
ありがとう
これを機にC++erになります
0463デフォルトの名無しさん2016/09/05(月) 01:54:37.65ID:Zffp85C6
>>461
おい、お前試してみてから言ってるんだろうな?
0464デフォルトの名無しさん2016/09/05(月) 10:51:16.59ID:ece9l1SB
>>458
目的が同じなら方法の違いは関係ないとでも?
0465デフォルトの名無しさん2016/09/05(月) 13:56:45.07ID:4eC9RGW3
>>433
それは60代から上のCOBOL世代
50代はC++バリバリ使うぞ
TCPL初版当時の若燕をなめんな
0466デフォルトの名無しさん2016/09/05(月) 14:43:22.97ID:5jAupIQr
「COBOLerがテンプレート目的でC++を使う」
「」
0467デフォルトの名無しさん2016/09/05(月) 15:38:04.05ID:4eC9RGW3
TCPL初版を見たこともないやつが
煽るつもりで自分の無知を晒しているなあw
0468デフォルトの名無しさん2016/09/05(月) 16:00:17.35ID:NFX2QcZC
C++(ベターC)
0469デフォルトの名無しさん2016/09/05(月) 16:25:11.01ID:M0OvRWnI
TCPL?
素直にターボCのこと?
0470デフォルトの名無しさん2016/09/05(月) 16:35:11.86ID:4eC9RGW3
the C programming languageのことじゃね
いいよ、そう思ってろ
0471デフォルトの名無しさん2016/09/05(月) 16:42:54.97ID:/PewDBDd
老害
0472デフォルトの名無しさん2016/09/05(月) 16:50:33.58ID:S/r0zM88
>>464
関係無いな
>>454に対する>>457のレスは話のすり替えに他ならない
0473デフォルトの名無しさん2016/09/05(月) 16:51:54.71ID:S/r0zM88
番号ずれた
誤 >>454に対する>>457のレスは
正 >>455に対する>>457のレスは
0474デフォルトの名無しさん2016/09/05(月) 19:14:07.88ID:5F1Hp9JO
TCPL なんて初めてみたわ
0475デフォルトの名無しさん2016/09/05(月) 19:40:32.27ID:ZL7Oa3Lb
きかんな
0476デフォルトの名無しさん2016/09/05(月) 19:46:24.46ID:Oj+RV/HM
>>467
東京コンテンツプロデューサーズ・ラボとか出てきたんだけどw
検索ですぐヒットしないような用語使うのは止めてくれよ
0477デフォルトの名無しさん2016/09/05(月) 19:56:37.92ID:NFX2QcZC
Effective C++3冊を読んでいないやつは老害
0478デフォルトの名無しさん2016/09/05(月) 20:36:14.34ID:1ue4xWo4
三冊もあんの?一冊にしてくれよ
0479デフォルトの名無しさん2016/09/05(月) 20:38:07.50ID:MPm038QF
>>470
普通K&Rって言わね?
何処の田舎モンよ?
0480デフォルトの名無しさん2016/09/05(月) 20:46:21.19ID:32FGf11f
>>478
Effective STLを含めれば4冊もあるぞ
0481デフォルトの名無しさん2016/09/05(月) 20:48:51.10ID:1ue4xWo4
STL何それうまいの?
0482デフォルトの名無しさん2016/09/05(月) 20:51:36.83ID:IQvMB0/c
仮に TCPL が『プログラミング言語C』(K&R)のことだとしても、
いきなりC++のスレッドで出てくると違和感があるのだが。
0483デフォルトの名無しさん2016/09/05(月) 20:56:18.25ID:zRA0QsUX
53ページを暗記する奴?
0484デフォルトの名無しさん2016/09/05(月) 21:02:31.55ID:1ue4xWo4
蟹チャーハン何それうまいの?
読んだことはないけど20世紀に信者がウザかった記憶だけはあるな
ANSIで標準化されたことを自分のレーゾンデートルを奪われたと勘違いして幻覚を見たかのような必死さが伺えた
0485デフォルトの名無しさん2016/09/05(月) 22:01:52.55ID:4eC9RGW3
>>479
よう、真性カッペw
0486デフォルトの名無しさん2016/09/05(月) 22:02:46.08ID:4eC9RGW3
あ、アンカー打ち忘れた
>>482も真性カッペな
0487デフォルトの名無しさん2016/09/05(月) 22:06:39.74ID:32FGf11f
おじさんくやしがりすぎやろ…
0488デフォルトの名無しさん2016/09/05(月) 22:18:16.67ID:zRA0QsUX
TCPLなんて検索しても全くヒットしないじゃん
SICPくらいヒットするように頑張ってからドヤ顔するんだな
0489デフォルトの名無しさん2016/09/05(月) 23:01:37.47ID:4eC9RGW3
かつて通用してて曖昧性が指摘されて後に死語化したものがヒットするわけねーだろ
こういうのは検索だけがソースなやつにはわかるわけがない
0490デフォルトの名無しさん2016/09/05(月) 23:03:21.14ID:4eC9RGW3
禿が、言語はそいつが何を考えることが出来るかを決めてしまう、
というのと同様、検索によって何を知ることが出来るかを決められてしまってるやつw
0491デフォルトの名無しさん2016/09/05(月) 23:04:11.29ID:g7jOSJ0B
the c++ program language
0492デフォルトの名無しさん2016/09/05(月) 23:05:08.72ID:9BGJMvFR
真っ赤になって弁明、無意味な連投、あとは草大量に生やせばパーフェクト
0493デフォルトの名無しさん2016/09/06(火) 00:08:40.53ID:F5fS/nn6
おいおい、自分で老害認定してるジジイをあんまりいじめるなよw
0494デフォルトの名無しさん2016/09/06(火) 02:59:46.82ID:bgQCWsty
死語をドヤ顔で使う老害なんて早く死ねば良いのに
0495デフォルトの名無しさん2016/09/06(火) 06:24:00.28ID:AN+xYaOm
TCPL って "The C++ Programming Language" のことなのかな?
++ がない方の書名(K&R)と紛らわしいわね。
…すると >>467 と >>470 はID被りの別人だったのか。

"Learning Standard C++ as a New Language"「標準C++を新しい言語として学ぶ」や
『プログラミング言語C++』(TCPL?)第4版の中で、ハゲ先生は
「新しい規格で便利な機能を使え」と言ってたはずで、
そこからすると「古い参考書を読んだことがある方が偉い」って
主張はなかなか賛成しにくいなぁ。
0496デフォルトの名無しさん2016/09/06(火) 07:12:19.22ID:JRdVpVwV
祝 void_t 標準入り
0497デフォルトの名無しさん2016/09/06(火) 08:22:00.35ID:7VUHkvW+
そういうのは規格化されてから言え
お前の脳内の標準などどうでもいい
0498デフォルトの名無しさん2016/09/06(火) 08:40:04.46ID:0OEY122r
void_tは決まったんじゃないのか
0499デフォルトの名無しさん2016/09/06(火) 08:50:04.45ID:ewg0kDeB
>>497
「次期C++1zでの標準化がほぼ確定したので・・・」
と細々と書かないと通じないのか?
0500デフォルトの名無しさん2016/09/06(火) 10:05:09.80ID:ScDQQjzO
>>495
偉いとか言ってねえぜ
相対評価ではなく絶対評価で
シッタカはクソ以下だつってるだけだ
0501デフォルトの名無しさん2016/09/06(火) 10:11:45.27ID:F5fS/nn6
The C++ Programming Language なら"TC++PL"な
http://www.stroustrup.com/glossary.html#GTC++PL#
用語がデタラメなジジイは話が通じなくて疎まれるだろ?
0502デフォルトの名無しさん2016/09/06(火) 10:42:23.06ID:yUThNKeL
TPPみたいになんでも略し杉w
0503デフォルトの名無しさん2016/09/06(火) 10:44:47.41ID:ScDQQjzO
あとからそうなったんだよ
ガキが知らないのは仕方ない
知らねーなら知らねーなりにしとくぶんには可愛げあるんだよ
それを尻が青いくせにジジイのふりをするからバカにしか見えないってだけさ
0504デフォルトの名無しさん2016/09/06(火) 11:17:08.98ID:F5fS/nn6
>>503
>>494
0505デフォルトの名無しさん2016/09/06(火) 11:20:23.27ID:ScDQQjzO
>>504
おまえが死ね
今からダンプに轢かれに出かけろ
0506デフォルトの名無しさん2016/09/06(火) 11:37:06.01ID:ewg0kDeB
略語ってどこまで通じるのか不安になるな。
sfineaやRAIIは大丈夫としても、TMPとかCPPとかって一般的なんだろうか?
0507デフォルトの名無しさん2016/09/06(火) 12:39:46.48ID:bgQCWsty
>>504
死語って言うより死産だよな
TCPL w
0508デフォルトの名無しさん2016/09/06(火) 12:58:22.50ID:ScDQQjzO
あー、禿のWebページでしばらく使ってたのも知らないわけね
そういうのはいくら検索しても出るわきゃねえしガキにゃ厳しいな
0509デフォルトの名無しさん2016/09/06(火) 13:49:15.29ID:IyJPjQ2g
必死で検索したようだが出てこなかったのかw
残念だったなw
0510デフォルトの名無しさん2016/09/06(火) 13:56:51.77ID:ScDQQjzO
おまえがな
0511デフォルトの名無しさん2016/09/06(火) 15:01:29.03ID:sQOv13Gi
くだらなすぎて俺にとってはどうでもいいけど
「"TCPL" "the C++"」でググると結構出てくるけどな例えば
https://www.allacronyms.com/TCPL/The_C%2B%2B_Programming_Language
0512デフォルトの名無しさん2016/09/06(火) 15:55:19.22ID:ScDQQjzO
デタラメとかぬかしてたクソガキ、息してるか?
0513デフォルトの名無しさん2016/09/06(火) 18:43:34.22ID:R7REkw4z
ハゲが自分のホムペで紹介した俺用語をさも普遍的な用語であるかのように語られても困るな
0514デフォルトの名無しさん2016/09/06(火) 19:48:01.80ID:1XSUlqoQ
>>508
で、使ってたと言う証拠は?
脳内にしかないとか言わないよな w
0515デフォルトの名無しさん2016/09/06(火) 19:54:58.70ID:YAp6qqUR
ここ相談室なんだけどみんな何の相談してるの
0516デフォルトの名無しさん2016/09/06(火) 19:59:18.61ID:lMZiI53V
自分の病気の症状についての相談
0517デフォルトの名無しさん2016/09/06(火) 20:18:59.06ID:PHkuODAN
void_t は何に使うの
0518デフォルトの名無しさん2016/09/06(火) 21:50:12.78ID:ScDQQjzO
>>514
あー、すまんな
俺んとこでは魚拓は脳内だけだ
だからお前は未来永劫見ることができない
いやーすまんすまん
0519デフォルトの名無しさん2016/09/06(火) 21:57:58.50ID:VCItaBw6
>>515
ここ見るとC++に関わる奴はどこか頭おかしいってわかるだろ?
つまりそういうことだ
0520デフォルトの名無しさん2016/09/06(火) 22:51:35.93ID:EdXevder
頭がおかしい(髪が変)
0521デフォルトの名無しさん2016/09/06(火) 23:12:54.88ID:JRdVpVwV
>>517
知ってるでしょ
0522デフォルトの名無しさん2016/09/06(火) 23:26:52.58ID:sQOv13Gi
void_tはSFINAEの定番パターンを標準化しただけ
0523デフォルトの名無しさん2016/09/07(水) 05:00:10.45ID:MZvlar21
>>518
要するに、単なる妄想だったってことかよ w
0524デフォルトの名無しさん2016/09/07(水) 08:16:26.88ID:4YmObOwP
いや現実だよ
おまえが物心つく前か生まれる前か知らんが
歴史上そういう事実があった

過ぎてしまった歴史がぎゃんぎゃん吠えることで変わるとでも思っているなら
それは隣国のメンタリティだね
0525デフォルトの名無しさん2016/09/07(水) 08:27:48.44ID:W2drX/qt
で、その歴史的事実が共有できる資料は?
0526デフォルトの名無しさん2016/09/07(水) 08:34:32.44ID:uFAnWK01
ただの事実と歴史とじゃ重要性が違う。
要するに記憶に留めるべき事実が歴史というわけだ。
逆に「そんなもん知らん」と一蹴されてしまう事実もありうる。
0527デフォルトの名無しさん2016/09/07(水) 09:00:25.57ID:4YmObOwP
>>525
保存してねえって言っただろ鳥アタマめ
0528デフォルトの名無しさん2016/09/07(水) 09:05:41.79ID:WoQJVoSd
いや、資料がないのに歴史だって主張して
それを共有できないって言うと歴史修正主義だって言う姿が
それこそおとなりさんぽいなあって思ってw
0529デフォルトの名無しさん2016/09/07(水) 09:06:18.84ID:zaGYBHu2
それはどこの国の歴史なんだろう?
tcpl "the c programming language"
でググると、中国系、朝鮮系では使われてるらしい
0530デフォルトの名無しさん2016/09/07(水) 09:40:41.09ID:4YmObOwP
>>528
別に主張なんかしてねえよ
事実を偽りなく述べているだけだ
魚拓の有無で変わったりしねえことだ

自分が見られないからってヤダジタすんなガキ
0531デフォルトの名無しさん2016/09/07(水) 10:32:53.78ID:P2AyoRLU
自分より年下と思われる人間をガキ呼ばわりしてるけど、年上が偉いという考え?
それって儒教っぽいな

儒教といえばお隣の国…あっ(察し
0532デフォルトの名無しさん2016/09/07(水) 10:39:46.68ID:/D7wbjXh
ここの住人がスルー力0なのは間違いないな
0533デフォルトの名無しさん2016/09/07(水) 11:24:34.86ID:prfLhh2R
ソースは脳内
そんな恥ずかしい主張ができちゃうなんてもしかして教育を受けてないのかな?
0534デフォルトの名無しさん2016/09/07(水) 11:50:26.76ID:G0adIbkV
暇つぶしが目的だから、スルーしたらつまらないんだろ
0535デフォルトの名無しさん2016/09/07(水) 12:09:49.06ID:Z3ZB/oVu
煽る暇人は2chだからどうしようもないが煽られて何日も踊っているのはさすがにバカだな
0536デフォルトの名無しさん2016/09/07(水) 12:41:12.31ID:pAK1tPG0
暇つぶしなのではなくお互い必死なんだよ
クールを装ってさもどうでもいいように演じてるけどお互い顔真っ赤だよ
0537デフォルトの名無しさん2016/09/07(水) 12:54:37.05ID:4YmObOwP
>>531
なんだおまえ、ガキって書いてあるのを見るたびに自分が卑しく思うのかw

>>533
記録を俺んとこでは残していないってだけだ
誰かが証拠を持ってきたときにもボロが出ないように言ってるぞ

そんときゃおまえが恥ずかしくて出てこれないわけだが
0538デフォルトの名無しさん2016/09/07(水) 12:55:16.53ID:Ur9IZRDe
なんかスレ伸びてると思ったらまーたゴミどうしの罵り合いかよ
くだらないことで熱くなる奴は脳みそ壊れていくんだというのが如実に分かるよ
0539デフォルトの名無しさん2016/09/07(水) 13:08:27.65ID:prfLhh2R
>>537
俺になんか恥ずかしい要素あったか?
スレ違いの書き込みしたことくらいかな
0540デフォルトの名無しさん2016/09/07(水) 13:11:15.34ID:v93B1UIW
誰かが証拠を持ってきたときw
自分の無能を示しておいてなんとも思わんのだな
0541デフォルトの名無しさん2016/09/07(水) 13:58:33.58ID:LPRQdItN
バーカ
0542デフォルトの名無しさん2016/09/07(水) 15:57:42.39ID:4YmObOwP
>>540
禿のWebページの魚拓をログ化していなかったのを無能と言ってくれるのか
さぞかし有能なおまえさんなら持ってるだろうからさっさと出せ
0543デフォルトの名無しさん2016/09/07(水) 19:25:39.09ID:OYvFv6+r
ソースは脳内というのは日常会話の殆どだな。
だから「アナタは私と異なる認識をお持ちなんですね」でしかない。
それを「アナタは証明できないからそれは嘘です」にすり替えるのは詭弁
0544デフォルトの名無しさん2016/09/07(水) 20:06:01.39ID:1kliuuT7
>>542
俺超有能だけどそんな資料なかったよ
つまり君の言ってたことは全部君の妄想ね
はい終了
0545デフォルトの名無しさん2016/09/07(水) 20:12:54.95ID:2w88FCBz
>>508
> あー、禿のWebページでしばらく使ってたのも知らないわけね

が正しいとしてもここにいる人が知らないような略語をどや顔で出すのは頭おかしい
まあどうみても >>511 辺りを間違えて出しちゃって引っ込みつかなくなってるだけだろ w
0546デフォルトの名無しさん2016/09/07(水) 20:34:12.89ID:4YmObOwP
>>545
では、つかってよいりゃくごをあんたはどうやってはんだんしてるんだ?
あたまおかしいとまでおおきくでるならそれなりのきじゅんはあるんだろうな?
さいじゅうどのていのうにあわせるのがぴーじーのしめいとでもかんがえているなら
あふぉだなくそだなだんぷにひかれてしねばいい
0547デフォルトの名無しさん2016/09/07(水) 22:13:15.14ID:Ur9IZRDe
何日続ければ気が済むんだよこのゴミどもは
0548デフォルトの名無しさん2016/09/07(水) 22:37:17.77ID:YLqxd+vc
自己反映なメタ表現とは高度な技を
0549デフォルトの名無しさん2016/09/07(水) 22:47:20.81ID:Mf7TDnfn
そんなことよりvoid_tの話をしようぜ。
SFINAEの話だけど。
SFINAEってconcept的な使い方以外にどんな使い方があるの?
0550デフォルトの名無しさん2016/09/07(水) 23:19:03.95ID:LPRQdItN
知らねえよバーカ
0551デフォルトの名無しさん2016/09/07(水) 23:20:48.09ID:YLqxd+vc
ワードサラダにマジレス
0552デフォルトの名無しさん2016/09/07(水) 23:29:54.18ID:yR890zwI
>>549
concept的な使い方ってどんなの?
漠然とパターンマッチ的なものをイメージすればいいのかな
0553デフォルトの名無しさん2016/09/08(木) 00:02:15.19ID:w601usbW
良くあるのがメンバーの有無で処理を変えるパターンかな。
俺も良くわからんが。
0554デフォルトの名無しさん2016/09/08(木) 00:12:42.51ID:sU4tW1UK
enable_ifと組み合わせて使うんじゃない?
0555デフォルトの名無しさん2016/09/08(木) 01:13:18.16ID:NYidnx0p
int と longの違いって何ですか?
0556デフォルトの名無しさん2016/09/08(木) 01:15:30.19ID:p3dWf/BM
歴史?
0557デフォルトの名無しさん2016/09/08(木) 02:02:44.82ID:NonfcYWK
>>555
データモデルによりサイズが異なる(かもしれない)
0558デフォルトの名無しさん2016/09/08(木) 04:16:44.74ID:6JK6uF4x
>>546
正論を言われて反論できなくなったら子供じみた態度でひねくれる
ガキだなw
0559デフォルトの名無しさん2016/09/08(木) 04:47:35.75ID:rBeNUfmR
アルツハイマーの症状の一つの幼児化だね
0560デフォルトの名無しさん2016/09/08(木) 05:23:55.94ID:vt8xUZJ5
酢を飲め
0561デフォルトの名無しさん2016/09/08(木) 06:23:15.75ID:siaRBrBq
>>546
つかってみてだれもしらなさそうならおとなしくひっこめろ、ばーか
0562デフォルトの名無しさん2016/09/08(木) 07:39:36.05ID:TmgW3MRN
>>561
やだね
C++スレでC++関連の用語を知らない無知野郎に合わせる必要はない
0563デフォルトの名無しさん2016/09/08(木) 07:54:49.83ID:P8D+cYPH
まじかよ
お前ひとりでつらいだろ?
0564デフォルトの名無しさん2016/09/08(木) 08:11:01.20ID:cE384uJ3
ガイジ
0565デフォルトの名無しさん2016/09/08(木) 08:36:52.70ID:QwMnHPC3
用語とか言い出しちゃったよ、この人 w
0566デフォルトの名無しさん2016/09/08(木) 09:31:44.41ID:y1qiR/+w
[[deprecated]]
0567デフォルトの名無しさん2016/09/08(木) 11:11:48.25ID:BaIwaWl+
このスレ的にはK&R初版でC学んだことを自慢してる奴より AT&T cfont のレファレンスでC++学んだ俺の方が偉いはず
0568デフォルトの名無しさん2016/09/08(木) 11:25:42.94ID:ik/GfLoL
なんでその程度でエラぶれるの?w
0569デフォルトの名無しさん2016/09/08(木) 12:08:58.27ID:TmgW3MRN
cfrontは俺も使っていたが
cfontて何だ? Courier Newか何かか?
0570デフォルトの名無しさん2016/09/08(木) 12:28:42.58ID:NCg12FAS
古ければ古いほど劣っているからな?
古参が全く自慢にならない世界だぞ
0571デフォルトの名無しさん2016/09/08(木) 12:44:06.52ID:TmgW3MRN
プログラムのバージョンと
プログラマの経験年数を
一緒にするのかよ
0572デフォルトの名無しさん2016/09/08(木) 12:47:14.04ID:P8D+cYPH
経験年数と優秀さを一緒にしてはいけない
経験年数10年と20年では10年の方が優秀なことが多い
0573デフォルトの名無しさん2016/09/08(木) 12:48:47.71ID:NCg12FAS
>>571
経験のバージョンが古い
0574デフォルトの名無しさん2016/09/08(木) 12:53:20.28ID:TmgW3MRN
>>572
ソースplz
0575デフォルトの名無しさん2016/09/08(木) 14:10:36.68ID:P8D+cYPH
ソースは俺の観察
0576デフォルトの名無しさん2016/09/08(木) 14:11:54.76ID:p2bVgJ9p
自分のソースは脳内だけど人にはソースを求める白痴
0577デフォルトの名無しさん2016/09/08(木) 15:27:51.19ID:TmgW3MRN
>>576
脳内じゃない
ここは誰が何と言おうとおまえが間違っている

おまえそもそも事実を知らないんだろ
だから俺の言うことのどこがどう間違っているのか具体的な指摘ができない
もっとも知ってたら指摘するところがないはずなんだが
0578デフォルトの名無しさん2016/09/08(木) 16:46:16.67ID:vI60taJg
経験十年積めば大抵のことはできるし対応できるだろうが
経験二十年にはかなわないだろう
0579デフォルトの名無しさん2016/09/08(木) 16:59:40.04ID:rBeNUfmR
archiveから探してこいよ、認知症のジジイ
0580デフォルトの名無しさん2016/09/08(木) 17:00:00.79ID:y1qiR/+w
んなこたあない
0581デフォルトの名無しさん2016/09/08(木) 17:59:18.64ID:P8D+cYPH
>ここは誰が何と言おうとおまえが間違っている

真実を知っているのがこの世で自分だけだなんて
もう生きててつらいだろうな
0582デフォルトの名無しさん2016/09/08(木) 18:09:20.62ID:Ig68v84V
プログラムの経験年数なんて関係ない。
重要なのはどれだけトラブルの経験を積んだかだ。

女性経験が豊富なのと同じだ プw
0583デフォルトの名無しさん2016/09/08(木) 18:15:13.55ID:TmgW3MRN
>>581
逆だ
知らないのがおまえくらいなんだよ
当時を知っている人が身近にいたら聞いてみろ

>>582
童貞乙
0584デフォルトの名無しさん2016/09/08(木) 18:21:23.76ID:p2bVgJ9p
>>583
当時を知ってる人が身近にいたから聞いてみたけどそんなことはなかったってみんな言ってる。
つまり嘘つきはお前。はい論破。
0585デフォルトの名無しさん2016/09/08(木) 18:23:14.02ID:Ou19mRgF
何日も平日の昼間にくだらんいい争いしなきゃならないとか仕事かよ
0586デフォルトの名無しさん2016/09/08(木) 18:25:06.25ID:Ig68v84V
プログラミングを半年もやらなかったら、けっこうな部分を忘れる世界だし、
進化も激しい世界だから、経験を引き継いで発揮できるのはせいぜい五年くらいだろう。
0587デフォルトの名無しさん2016/09/08(木) 18:30:38.43ID:P8D+cYPH
年を取ると物忘れが激しくなる。
「誰が何と言おうと」と自覚しておきながら3時間後に
「知らないのがおまえくらい」と言い出しちゃうぐらい
だから>>584はもう責めないでw
0588デフォルトの名無しさん2016/09/08(木) 19:01:10.30ID:aq+STl42
相談室っていうか病室だな・・・
0589デフォルトの名無しさん2016/09/08(木) 19:09:24.56ID:69NbtRcU
大抵、経験20年とかになってくると老眼とかで大量の情報を高速に見るとかが出来なくなってそう
経験10年なのに目が悪くなってきて辛いです
0590デフォルトの名無しさん2016/09/08(木) 19:34:58.14ID:y1qiR/+w
void_tの話を聞くほうが建設的だ。
0591デフォルトの名無しさん2016/09/08(木) 19:40:42.54ID:ik/GfLoL
だからさ、型名に_t付けるなよ
システムハンガリアンかよ
0592デフォルトの名無しさん2016/09/08(木) 19:48:21.97ID:y1qiR/+w
>>591
using ***_t = ***::type;
ってパターンもダメ?
0593デフォルトの名無しさん2016/09/08(木) 19:56:47.42ID:ZGDN5kDf
>>577
もう楽になりなよ...
0594デフォルトの名無しさん2016/09/08(木) 20:17:46.69ID:rBeNUfmR
頑固になるのもアルツハイマーの症状の一つだね
0595デフォルトの名無しさん2016/09/08(木) 20:50:28.56ID:TmgW3MRN
>>593
は? 苦しい屁理屈でへとへとなのはおまえだろ
0596デフォルトの名無しさん2016/09/08(木) 20:58:33.03ID:p3dWf/BM
同じ穴のムジナが楽しく荒らしてるなぁ。
ただ一言いいたい。

カエレ!
0597デフォルトの名無しさん2016/09/08(木) 22:14:31.27ID:A7Pb5oFv
うそ
かえらないで
0598デフォルトの名無しさん2016/09/08(木) 22:36:18.32ID:siaRBrBq
苦しい屁理屈 ⇒ >>577
そりゃお前の脳内の事実なんて誰も指摘できんわな w
0599デフォルトの名無しさん2016/09/09(金) 00:55:13.72ID:6Bh01W2V
頑固になるとautoや{}の初期化や->の戻り値が許せなくなります
auto b = new auto(true);
char *p{};
auto main() -> int {}
0600デフォルトの名無しさん2016/09/09(金) 01:02:58.35ID:4oqKijqb
>auto main() -> int {}
頑固じゃないけどこれやる奴は何がしたいんだろう
0601デフォルトの名無しさん2016/09/09(金) 01:07:56.60ID:6Bh01W2V
これは頑固の良い例ですね
スタイルの統一とかそういうことを考えられず、変化を拒絶するようになります
0602デフォルトの名無しさん2016/09/09(金) 01:10:09.08ID:kBQSHV64
new auto();
なんて出来ないしな…
0603デフォルトの名無しさん2016/09/09(金) 01:18:20.19ID:kBQSHV64
>>601
じゃあ規格のexampleのスタイル統一から初めてくれよ。
何の意味があるのかしらんが、意味があるなら賛同者出てくるでしょ?
0604デフォルトの名無しさん2016/09/09(金) 01:21:30.28ID:Wiz5/g3s
new auto(10)みたいに推論できる場合ならちゃんとできるみたいだけど
https://ideone.com/zPeSla

ただauto main() -> int {}を書くやつは正直、俺知ってるんだぜ自慢したい厨房にしかみえない
タイプ数長くなってんじゃん、何のために導入された書き方か分かってんのかね
0605デフォルトの名無しさん2016/09/09(金) 01:23:35.62ID:6Bh01W2V
これも頑固の良い例ですね
「言語仕様に複数のスタイルが存在してもせめて自分のコード内は統一しよう」
みたいな考えを示唆しているのに、感情的になって関係無いことを言い出すのが特長です
0606デフォルトの名無しさん2016/09/09(金) 01:27:12.55ID:6Bh01W2V
auto main() ->int{}についてはハンをおしたように
「文字数が多い」と言い出すのも特長です
今まで同じレスを見たこともある人も多いのではないでしょうか
「スタイルの統一という観点からはあってもおかしくない」と説明されても
他人が使うことすら許せず否定に躍起になるのが特長です
0607デフォルトの名無しさん2016/09/09(金) 01:35:22.25ID:6Bh01W2V
もちろん新しい記法が良いことばかりではありません
auto b{true};は書けてもnew auto{true}は書けないなど一貫性に乏しい所も有ります
0608デフォルトの名無しさん2016/09/09(金) 01:36:37.09ID:Wiz5/g3s
別に他人がそう書くのを許せないわけじゃないよ
ただ俺はそう書くやつに対してはおかしなやつとかネガティブな印象を持つというだけ
今まで多くの同じようなレスがあったということは俺と同じ印象を持つ人が多いということだと思うよ
0609デフォルトの名無しさん2016/09/09(金) 01:40:41.63ID:kBQSHV64
>>605
言語仕様に複数のスタイルとかいう話ではなく規格のコード例ですらそんな書き方必要でなければしてねえよという話
どっちが頑固なんだかね
0610デフォルトの名無しさん2016/09/09(金) 01:40:48.56ID:6Bh01W2V
これも頑固の良い例ですね
とに新しいスタイルを見ると相手を非難しないと気が済まないのが特長です
>>608のレスにも「おかしなやつ」という攻撃的な単語が見られますが、これも一例と捉えてよいでしょう
0611デフォルトの名無しさん2016/09/09(金) 01:41:50.71ID:uFCjw0pQ
autoつかわなくても書ける場所でこれ期バカしにauto使うヤツはバカなんだと思う
0612デフォルトの名無しさん2016/09/09(金) 01:44:15.73ID:uFCjw0pQ
あとで型名明記するとかなんの為にauto使っているのかバカなんだと思う
0613デフォルトの名無しさん2016/09/09(金) 01:52:18.15ID:6Bh01W2V
これも頑固の良い例ですね
型推論のautoとtraining-return-typeの先頭のautoは違うのですが
とにかく理解以前で拒絶してしまっているのが特長です

でも確かにauto f() -> auto {}みたいな書き方はかなり変人かも知れませんね
0614デフォルトの名無しさん2016/09/09(金) 01:53:27.43ID:4oqKijqb
結局auro main() -> int{}はお遊びなのか?
0615デフォルトの名無しさん2016/09/09(金) 02:00:06.38ID:uFCjw0pQ
>>613
本末転倒だってんだよバカ
0616デフォルトの名無しさん2016/09/09(金) 02:00:54.91ID:p4LGwUo/
ぶっちゃけID:6Bh01W2Vってまじであの書き方がスタイルの統一のという理由が第一で導入されたと思ってそうなんだけどそうでもない?
>>612の言わんとしてることが理解できてない気がする
0617デフォルトの名無しさん2016/09/09(金) 02:09:08.65ID:6Bh01W2V
そうですね
テンプレート関数の戻り値のために導入されたことは良いとして、
「>>612の言わんといていることはplaceholder typeとtrailing-return-typeの混同による不適切な見解ではないか」と述べているのに
「理解できていない気がする」とあやふやなのは不思議ですね

これらも頑固なことによる反射的な拒絶の一面なのかも知れません
0618デフォルトの名無しさん2016/09/09(金) 02:16:06.31ID:6Bh01W2V
また「導入の目的とは別にスタイルの統一の観点からはあっても良いのではないか」
という説明を受けても「目的が違う」と思考停止して否定ありきで考えてしまうのも特長です

本日は600から続く一連の自演レスでその片鱗が伺えたと思います
0619デフォルトの名無しさん2016/09/09(金) 07:33:30.80ID:H3RR5zb8
そもそもスタイルの統一にこだわる必然性はない。
タブとインデントの話と同じで混在したってかまわない。
0620デフォルトの名無しさん2016/09/09(金) 07:36:21.12ID:SVVRFbIW
タブとインデントを混同するやつは見つけ次第殺せ
0621デフォルトの名無しさん2016/09/09(金) 08:00:45.68ID:z8Otf9Pu
どうしてこんな釣り耐性よわいの。
A派とB派の対立じゃなくて
Bスタイルを否定すんな派とBスタイル否定派
は主観の押しつけあいで論破できるわけねーし。
0622デフォルトの名無しさん2016/09/09(金) 08:09:04.86ID:H3RR5zb8
>>620
そういうのってなんか自閉症ぎみなんじゃないの?
0623デフォルトの名無しさん2016/09/09(金) 08:35:47.51ID:G0RBn0pa
trailing-return-typeを、4文字以下では使わない
なんてやってると
int abs(int);
auto abs(float) -> float;
てな具合になるよなあ

ぎりぎりアウトな
char* begin(); を
auto begin() -> char*; にしながら、
俺なにやってんだろって気になることがある
0624デフォルトの名無しさん2016/09/09(金) 08:42:02.98ID:oGuibT0g
>>620
同意する
そういう奴はたいてい他でもいいかげんだからプログラマーには向いてないことを自覚してほしい
0625デフォルトの名無しさん2016/09/09(金) 08:55:13.21ID:H3RR5zb8
んなこたーない
0626デフォルトの名無しさん2016/09/09(金) 11:10:43.31ID:kBQSHV64
>>623
>trailing-return-typeを、4文字以下では使わない
なんで?
0627デフォルトの名無しさん2016/09/09(金) 11:25:30.49ID:G0RBn0pa
int abs(int); を
auto abs(int) -> int; にするメリットは?
autまでタイプした時点でやんなってくるぜ俺は
auto exit(int) -> void; とかナメとんかくらって気ぃしね?
0628デフォルトの名無しさん2016/09/09(金) 11:50:52.32ID:xpG9Ka1d
スタイルの統一という意味では、新しいC++では
普通の関数とメンバ関数を
obj.func();
func(obj);
のどちらのスタイルでも相互に呼び出せるようにするかもしれない
って話だけど・・・
メタプログラミングの観点から見ればどちらの表記でも呼び出せたほうが
便利なのは火を見るよりも明らかだが

それはそうとして
スタイルを統一したいって言ってる頑固な約一名は
これも統一するつもり?
つまり普通の関数やメンバ関数の呼び出しを全部
obj.func(); もしくは func(obj); に統一するつもりなのかって話
で、世の中には引数を取らない関数、例えばabort()などもあるし
fgetsみたいにFILE構造体が引数の最後に来るような変態関数もあるので
統一するならCスタイルの func(obj); になると思うわけだけど
そうすると、全部 method(obj) の形式で書くつもりか?
この書き方だとエディタの補完が効かないので激しく作業効率が悪いわけだが
0629デフォルトの名無しさん2016/09/09(金) 11:50:58.44ID:CsE6YZtW
>>627
メリットはないだろうね
0630デフォルトの名無しさん2016/09/09(金) 11:52:48.11ID:kBQSHV64
>>627
4文字って何って話だよ
0631デフォルトの名無しさん2016/09/09(金) 11:57:16.30ID:CsE6YZtW
スタイルの統一ってメタプロのためでしょ?
普通に書く場合はどっちだっていいし、見た目の統一なんてさらに気にするポイントじゃないし。
0632デフォルトの名無しさん2016/09/09(金) 12:01:21.07ID:xpG9Ka1d
というかそもそも、
統一しなくてもよいように、そのために
どちらの表記でもよいようになっている
もしくはそうする予定なのに
統一する意味あんの?
0633デフォルトの名無しさん2016/09/09(金) 12:08:44.98ID:G0RBn0pa
>>629
autoが4文字だろ?
これより長いstd::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりするが、
4文字より短い例えばintをautoにしてもそういう効果がないばかりか
厳密には1文字損してるだろって話だよ
0634デフォルトの名無しさん2016/09/09(金) 12:09:29.33ID:G0RBn0pa
アンカー間違えた
s/>>629/>>630/gっと
0635デフォルトの名無しさん2016/09/09(金) 12:12:46.72ID:kBQSHV64
>>633
float f();
を
auto f() ->float;
って書いたら一文字損してるって思うの?
どういう計算???
0636デフォルトの名無しさん2016/09/09(金) 12:21:26.23ID:G0RBn0pa
>>635
逆だよ
それは1文字得してる
0637デフォルトの名無しさん2016/09/09(金) 12:26:40.05ID:kBQSHV64
何言ってるのかわかんねー
文字の数を数えれないのかな…
0638デフォルトの名無しさん2016/09/09(金) 12:27:41.92ID:G0RBn0pa
std::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりする
↑
これの意味わかる?
0639デフォルトの名無しさん2016/09/09(金) 12:36:32.00ID:kBQSHV64
>>638
戻り値の型がそれだったとして
trailing-return-typeを使うと文字数は6文字(autoと ->)増える事に変わりないだろ?何言ってるんだ?
0640デフォルトの名無しさん2016/09/09(金) 12:40:28.34ID:G0RBn0pa
>>639
まさかと思ったが、やはりそういうことか
よし、おまえはtrailing-return-typeを使うな

これにて一件落着
0641デフォルトの名無しさん2016/09/09(金) 12:49:10.42ID:tc9dXmwp
引数に依存しないならどっちだって同じさ。
->以下を省略するのは別な話
0642デフォルトの名無しさん2016/09/09(金) 12:51:16.50ID:4oqKijqb
聞きたいんだけど引数無しのコンストラクタが無いクラスってあり?
絶対にコンストラクタで引数を入れないといけない
0643デフォルトの名無しさん2016/09/09(金) 12:51:31.27ID:CB2F3RXF
autoが本当に役に立つのはこういうケースだな

http://okns.webcrow.jp/text/CPP0xFAQ.html.ja#auto

変数の型が template 引数に強く依存している場合は、auto なしにコードを書くのは本当に難しくなるだろう。 例えば:


template<class T, class U> void multiply(const vector<T>& vt, const vector<U>& vu)
{
// ...
auto tmp = vt[i]*vu[i];
// ...
}
tmp の型は T と U の乗算結果になるが、それが正確に何型であるか人間の読み手が見出すのは難しい。 しかし、もちろんコンパイラは、自身が扱っている適切な
T と U が何型であるかを知っている。
0644デフォルトの名無しさん2016/09/09(金) 12:52:12.20ID:CB2F3RXF
ageたスマン
0645デフォルトの名無しさん2016/09/09(金) 13:05:31.22ID:kBQSHV64
>>643
autoではなくautoキーワードを使った機能の一つであるtrailing-return-typeの話してたんだけど

お前の例を借りるなら
template<class T, class U> auto multiply(const vector<T>& vt, const vector<U>& vu) ->decltype(vt*vu)
こんな感じで引数の名前を返り値の型の決定に使いたい時の為に導入された。あとはlambda
0646デフォルトの名無しさん2016/09/09(金) 13:23:41.38ID:EcclX7iE
>>642
「デフォルトコンストラクタが存在しないクラスを作ってもよいか?」
あるいは「クラスは必ずデフォルトコンストラクタを持つべきか?」
という質問かな。

外部から何かの値を指定しないと正常な状態にならないって対象なら
デフォルトコンストラクタなしの方が、間違った使い方をされなくて済む。
具体的には…今すぐ思いつくのは、
「ファイル名を指定、コンストラクタ中でファイルを開くクラス。
デストラクタでファイルを閉じる」とか(そもそも良い設計か分からんけど)。
この場合はデフォルトコンストラクタじゃ意味ないよね。
0647デフォルトの名無しさん2016/09/09(金) 13:28:11.41ID:kBQSHV64
>>642
普通にある。
例えばstd::lock_guard
0648デフォルトの名無しさん2016/09/09(金) 14:32:40.92ID:QrmkumON
>>642
あり?といういか引数無しがデフォルト
0649デフォルトの名無しさん2016/09/09(金) 14:54:03.88ID:aqM9pKJ0
>>648
コンストラクタで絶対に引数をとらなければならないクラス設計はありかなしかという話だろう。
0650デフォルトの名無しさん2016/09/09(金) 15:04:50.30ID:QrmkumON
>>649
あっそうかwちゃんと読んでなかった
ありかなしかで言えば「あり」としか言えない
0651デフォルトの名無しさん2016/09/09(金) 15:05:33.87ID:G0RBn0pa
ビルトインにだって初期値必須のものがあるくらいでねえ
そもそもなぜ初期値を指定するのかという目的論をすっ飛ばしたべき論に価値はあるのか
0652デフォルトの名無しさん2016/09/09(金) 16:15:29.42ID:iGJJBn3T
最近、生のconstructorは晒さずに、面倒でもfactoryかbuilder用意したほうが良い気がしてきた。
0653デフォルトの名無しさん2016/09/09(金) 18:00:44.85ID:6P7ccOtX
>>651
そんなのあったっけ?
0654デフォルトの名無しさん2016/09/09(金) 18:52:54.42ID:Sz+zzzeN
>>653
参照
0655デフォルトの名無しさん2016/09/09(金) 19:28:06.08ID:xbXKfh8v
複合型をビルトイン型と称すとは
頭の悪さに恐れ入る
0656デフォルトの名無しさん2016/09/09(金) 19:54:51.32ID:2SLUNITP
ビルトインをビルトイン型と見間違うとは
目の悪さに恐れ入る
0657デフォルトの名無しさん2016/09/09(金) 20:18:37.35ID:Sz+zzzeN
>>655
ビルトイン型って知らないけど Fundamental Types のことを言ってる?
0658デフォルトの名無しさん2016/09/09(金) 20:24:24.90ID:G0RBn0pa
N3797でbuilt-inを検索すると...
oeratorsが必ずついてくるな
そりゃ悪かった

class宣言せずに使える型、そう言いたかっただけだ
0659デフォルトの名無しさん2016/09/09(金) 21:49:08.07ID:Hwi6cA5k
const int i{100}; // 初期値必須
0660デフォルトの名無しさん2016/09/10(土) 13:58:51.44ID:qsgFq9Gu
関数の引数と戻り値はstd::stringとかではなくconst char*を使うべきというのを見つけたんだけど正しいのか?
0661デフォルトの名無しさん2016/09/10(土) 14:05:38.05ID:fEVz11Vc
C++で作られたdll(関数が色々定義されてるやつ)をC++の別プログラムAに読み込ませる
プログラムAに対してjavascriptで使用する関数を指定してってのをやりたいけどできるのかな

プログラムAはただjavascriptを指定するだけと結果出力
javascriptはどの関数をどんな引数で実行するかを指定する
スクリプトってのをよく理解してないからアドバイスほしい
0662デフォルトの名無しさん2016/09/10(土) 14:15:01.34ID:TwDosbdA
>>660
ソイツはバカ
0663デフォルトの名無しさん2016/09/10(土) 14:26:38.33ID:pUoIS14d
>>660
fstreamをstringに依存させないために
C++98ではopenの引数がconst char*だが
C++11ではstringを渡せるようになったので
fs.open((string(
0664デフォルトの名無しさん2016/09/10(土) 14:27:46.41ID:pUoIS14d
fs.open((string("filename") + ".ext").c_str(), ios_base::in)が
fs.open( string("filename") + ".ext , ios_base::in)で
済むようになり結構便利だね
stdの作者じゃない一般ユーザな俺らにとって、
std同士での相互依存は別に構わんのに無駄に不便だったのがC++98

独善的な「正しさ」を誰も喜ばない例だと思うぜ
0665デフォルトの名無しさん2016/09/10(土) 14:28:54.01ID:pUoIS14d
あ、引用符が閉じてない・・・ 許せ
0666デフォルトの名無しさん2016/09/10(土) 20:03:47.79ID:fxMjDbn4
右辺値参照が使えるようになったし、クラスオブジェクトをそのまま返してもオーバーヘッドにはならんでしょ
0667デフォルトの名無しさん2016/09/10(土) 20:40:19.15ID:LBKbagU5
typedef enum
{
kOne = 1,
kTwo,
kN
}e;

const int n[kN]={0,100,200};

template <int N> class A
{
public:
int a[N];
};

int main()
{
A<n[kOne]> a;
return 0;
}

こんな感じのやりたんだけどnが非constだって怒られる
なにか代案ありません?
0668デフォルトの名無しさん2016/09/10(土) 20:45:26.68ID:QhorBMPI
>>667
constexpr int n[kN]={0,100,200};
06696672016/09/10(土) 20:51:12.77ID:fvQgZoM4
うちのVS2010ちゃんがそんなもの知らないと言っております
0670デフォルトの名無しさん2016/09/10(土) 20:57:30.16ID:QhorBMPI
>>669
template<int N> struct constant { static const int value = N; };
template<int N> struct n;
template<> struct n<kOne> : constant<100> {};
template<> struct n<kTwo> : constant<200> {};

A<n<kOne>::value> a;
06716672016/09/10(土) 21:00:17.01ID:fvQgZoM4
>>670
よさそう
ありがとうございます
0672デフォルトの名無しさん2016/09/10(土) 23:13:18.30ID:LzJTocys
>>660
それはその言葉の真意を理解すれば正しくもあり正しくもなし
0673デフォルトの名無しさん2016/09/11(日) 00:28:13.04ID:bDOLl/8E
引数はともかく、戻り値を常にconst char*にするのはつらい
メンバ変数で持ってるものだったらconst char*で返せるけど
関数内でジェネレートした文字列だったらどうするんだ?
0674デフォルトの名無しさん2016/09/11(日) 00:32:24.15ID:bDOLl/8E
void func( char *output, int max_buffer )
↑こんなインターフェースもあり得るけど
呼び出すときに一体バッファサイズをどのぐらい用意すれば良いんだ?
という問題が出る
関数内でmallocして返す方法もあるけど
呼び出しもとで開放しなきゃならないから嫌だ
std::string使いましょうよ
0675デフォルトの名無しさん2016/09/11(日) 00:44:49.84ID:T7xxiiqM
うちの会社にいるレガシープログラマもクラスを引数にするのを嫌うな
0676デフォルトの名無しさん2016/09/11(日) 01:12:15.86ID:NvSd/4YA
税金泥棒は、RMPについて何も理解できていない
分からないくせに、ひたすらコピペを繰り返す
突っ込んだ話を始めると、チンプンカンプンで付いて来れなくなる
0677デフォルトの名無しさん2016/09/11(日) 01:30:52.05ID:Y3qTK8mc
gccはC++11のmoveとかつかわんでも、呼出側がスタックに用意したところに
せっせと返値を書き込んでるのでクラスを返値にしたところでcopyとか余計なことはしないな。
0678デフォルトの名無しさん2016/09/11(日) 06:19:48.63ID:Cz5G8II8
コピーする必要がなかったかも知れないのにコピーしておいて余計なことはしていないとな
0679デフォルトの名無しさん2016/09/11(日) 08:52:00.54ID:uFO7Kr12
返り血にmove使うと事態は悪化
0680デフォルトの名無しさん2016/09/11(日) 10:11:38.91ID:5FDuUIWg
拭き取ろうと擦れば擦るほど赤く血塗られた範囲が広がって…。
0681デフォルトの名無しさん2016/09/11(日) 13:09:13.01ID:QVUfpLVG
特定の関数があるなしで呼び出す関数をわけたいのですけど方法はありますか

template<typename T> void hoge(T val)
{
val.hage(0);
}

template<typename T> void hoge(T val)
{
val.husa(100);
}
0682デフォルトの名無しさん2016/09/11(日) 13:55:18.24ID:KOEkGnWi
SFINAE使えばできる
0683デフォルトの名無しさん2016/09/11(日) 14:53:31.90ID:h0ayt47M
コードではSSE命令をまったく使わず、コンパイラ最適化でSSE使ってもらいやすくする方法って
どこかに書いてありますか?
0684デフォルトの名無しさん2016/09/11(日) 15:31:44.83ID:9/O5tJ2a
type_traitsのテストクラスばかり使っていたらSFINAEの書き方忘れた
0685デフォルトの名無しさん2016/09/11(日) 15:50:46.32ID:hGR6Mbre
>>683
https://msdn.microsoft.com/ja-jp/library/7t5yh4fd.aspx
0686デフォルトの名無しさん2016/09/11(日) 22:14:42.57ID:OIs9p1U8
void func( char *output, int max_buffer )

これはさ、max_bufferで指定した範囲で対応出来るようにするための引数だろ
呼び出す側でintの範囲なら自由に決められるに決まってるだろ
0687デフォルトの名無しさん2016/09/11(日) 22:19:35.02ID:m0F7Ld2f
↑アスペ
0688デフォルトの名無しさん2016/09/11(日) 22:20:45.93ID:OIs9p1U8
いやいや、outputの最大値を一緒に渡すのは常識だろう
0689デフォルトの名無しさん2016/09/11(日) 22:25:57.81ID:2EFm3ZKd
要するに、
char b[128];
func(&b[16],128-16);
ってやって、特定の範囲で処理できるのも利点だろうといってるんだと。
あんまりやらないけど。
0690デフォルトの名無しさん2016/09/11(日) 22:34:43.72ID:T7xxiiqM
文字列クラスでもできるけど
0691デフォルトの名無しさん2016/09/11(日) 22:37:36.83ID:2EFm3ZKd
substrだっけか?
0692デフォルトの名無しさん2016/09/11(日) 22:38:54.98ID:m0F7Ld2f
『要するに』
超能力者>>689のオツムが心配だ
0693デフォルトの名無しさん2016/09/11(日) 22:40:38.21ID:2EFm3ZKd
チガッテマスカ?
0694デフォルトの名無しさん2016/09/11(日) 22:43:30.84ID:m0F7Ld2f
>>693
>>689の解釈は
『max_bufferで指定した範囲』
『intの範囲なら自由に』
という表現と整合しない。
0695デフォルトの名無しさん2016/09/11(日) 22:45:10.47ID:2EFm3ZKd
オーバーフローを指定するような間抜けなことをわざわざするんかいな。
0696デフォルトの名無しさん2016/09/11(日) 22:46:59.51ID:m0F7Ld2f
>>695
>>688は「intの最大」でなく「outputの最大」と言っているのだが
0697デフォルトの名無しさん2016/09/11(日) 22:48:58.46ID:2EFm3ZKd
>>686の頭にはなんか特殊用途でもよぎったんじゃね?
俺が懇意すぎたかな・・・。Orz
0698デフォルトの名無しさん2016/09/11(日) 22:51:16.46ID:m0F7Ld2f
深い意味はない
単に>>674を見て並んでいた単語に連想した自分の知識を反射的に書き込んだだけ
0699デフォルトの名無しさん2016/09/11(日) 22:54:31.75ID:2EFm3ZKd
俺は>>686ではない。それはそうかもな。
俺はC++ではstd::まで書くStl派なので、このところ生配列は使ったことがない。
というか、オーバーフロー怖くて使いたくない。
0700デフォルトの名無しさん2016/09/11(日) 23:01:21.72ID:67F7MmNh
生配列を使ったことないってことはないだろ
インターフェースにstlのコンテナとかを露出したらコンパイラ依存になっちゃうじゃん
てか高速に処理したくてスタックに配列を積みたいときとかどうするわけ?
0701デフォルトの名無しさん2016/09/11(日) 23:04:52.03ID:2EFm3ZKd
競プロ解いてるだけだから問題にならん。
まぁ、しばらく黙るわ。
0702デフォルトの名無しさん2016/09/11(日) 23:09:47.79ID:OIs9p1U8
俺が言いたかったのはだね、

void func( char *output, int max_buffer )

のようにchar *outputを渡すような時は、
バッファオーバーフローを防ぐために一緒にサイズも渡すってのが、
C言語での使い方では常識化してるって事だ。
0703デフォルトの名無しさん2016/09/11(日) 23:12:11.14ID:m0F7Ld2f
わざわざ補足しなくても
そんなことはみんな知ってるから
0704デフォルトの名無しさん2016/09/11(日) 23:14:19.23ID:OIs9p1U8
>>674 が変な事言ってたからだ
0705デフォルトの名無しさん2016/09/11(日) 23:17:06.20ID:67F7MmNh
競プロでSTLコンテナなんて使うか??
アルゴリズムとかはそのまま使えるけどコンテナは普通生配列か必要に応じて自前の使うだろ?
0706デフォルトの名無しさん2016/09/11(日) 23:19:39.01ID:2EFm3ZKd
ガチ勢じゃないからね。
最近ではリングバッファほしい位で満足してるよ。
STLコンテナで解けないなら、アルゴリズムが悪い事が多い。
0707デフォルトの名無しさん2016/09/11(日) 23:20:05.58ID:m0F7Ld2f
>>704
>674の懸念は別に変じゃないぞ
変なのは>>674を理解できなかったお前だ
0708デフォルトの名無しさん2016/09/11(日) 23:20:10.89ID:T7xxiiqM
>>700
規格準拠度が低いクソみたいなコンパイラを使わない
0709デフォルトの名無しさん2016/09/11(日) 23:22:00.72ID:m0F7Ld2f
どうしたいきなり
>>700も関係無いことを言いだして
0710デフォルトの名無しさん2016/09/11(日) 23:22:32.77ID:m0F7Ld2f
誤 700も
正 700と
0711デフォルトの名無しさん2016/09/11(日) 23:23:32.91ID:OIs9p1U8
>>707
いやいや、おかしいよ。
void func( char *output, int max_buffer )
を使うのにバッファを意識しないプログラムとかありえないだろ

バッファがどのくらいか分からんのに
void func( char *output, int max_buffer )
とか間違ってるだろ。

これCの使い方だぞ
0712デフォルトの名無しさん2016/09/11(日) 23:28:22.83ID:T7xxiiqM
>>705
競プロなんていうマイナー分野の話なんかしてないし
実行時間のほとんどはアルゴリズム依存なんだから1%未満のオーバーヘッドが影響するわけが無い
固定長配列はarrayを使うべきだし、動的にサイズを変えないといけない場合vectorでまとめて確保して普通のnewした配列として使えばいい
他人の競プロのコード見たら使いまくってるしな
0713デフォルトの名無しさん2016/09/11(日) 23:39:10.29ID:m0F7Ld2f
>>711
よくわかった
>>674の『バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る』
を単語レベルに近い連想で文を捉えるから珍妙な解釈になる
レスを100回読み直せ
0714デフォルトの名無しさん2016/09/11(日) 23:46:15.15ID:M5lO5IQC
ID:2EFm3ZKdの背伸びが痛々しい。
このスレで一番出来ない子が何をいっちょまえにレスしてんだか…。
なぁーにが「競プロ解いてるだけ」だよド素人が。
0715デフォルトの名無しさん2016/09/11(日) 23:48:48.59ID:OIs9p1U8
>>713
だからよ、
>バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る
って言うような疑問がおかしいんであって、

void func( char *output, int max_buffer)

はサイズを指定して使うもんだ。それ以外にあるかよ。
パターンもパターンやんけ。

バッファサイズがわからん状態で、、
void func( char *output, int max_buffer)ってのはあり得ないんだよ
0716デフォルトの名無しさん2016/09/11(日) 23:49:06.36ID:2EFm3ZKd
>>714
はっはー。おだいじんさまぁ〜。
0717デフォルトの名無しさん2016/09/11(日) 23:54:09.86ID:IuKZJB78
>>715
別の関数で必要なサイズを返すのか?
変更が別スレッドだったら、さらにロック、アンロックの関数がそれぞれ必要になるな。
0718デフォルトの名無しさん2016/09/12(月) 00:00:05.72ID:JmiC7f4k
じゃー背伸びついでに言っとくわ。
その関数voidだから失敗したかどうかわからんから、バッファ入力サイズを推定できない。
ドキュメント読め。
0719デフォルトの名無しさん2016/09/12(月) 00:03:56.69ID:JmiC7f4k
チッ間に合わなかった。
0720デフォルトの名無しさん2016/09/12(月) 00:04:01.94ID:GwVwE6OL
いやいや、
void func( char *output, int max_buffer)
ってのは

char *output に結果を返すんだよ。
そんなのもわからんのか。

max_bufferはオーバーフローを防ぐための物だ。
何を言ってんだ一体
0721デフォルトの名無しさん2016/09/12(月) 00:04:29.54ID:hz43BbCS
例外使わないのか
初心者なのかレガシープログラマなのか
0722デフォルトの名無しさん2016/09/12(月) 00:04:37.05ID:Tu0jZEI4
>>715
その部分の日本語の理解が間違っているとわざわざ教えてやっているのに
他にどういう理解があり得るのかも考えずゴミレスを繰り返すとは
アスペなだけでなくて荒らしのつもりなのか?
0723デフォルトの名無しさん2016/09/12(月) 00:05:58.76ID:JmiC7f4k
>>720
そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。
0724デフォルトの名無しさん2016/09/12(月) 00:07:03.07ID:GwVwE6OL
Cやってたらvoid func(char *output, int max_buffer)なんてパターンだろ。
基本中の基本だろ。
0725デフォルトの名無しさん2016/09/12(月) 00:08:06.86ID:JmiC7f4k
染まってるのか。
まぁいいや。
黙るって言ったから黙る。
0726デフォルトの名無しさん2016/09/12(月) 00:08:07.10ID:WISOHly2
723 : デフォルトの名無しさん 2016/09/12(月) 00:05:58.76 ID:JmiC7f4k
>>720
そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。
0727デフォルトの名無しさん2016/09/12(月) 00:09:36.24ID:Tu0jZEI4
バッファサイズ指定の関数で溢れた時に例外をスローするのは珍しいな
Visual C++の_s関数の配列オーバーロードはそんな仕様だった気もするが
0728デフォルトの名無しさん2016/09/12(月) 00:09:38.22ID:WIrRwO5G
>>715
https://msdn.microsoft.com/ja-jp/library/cc429127.aspx
バッファサイズを指定できても、結果を正しく格納するのに必要なバッファサイズはわからない
ってことはあるんだよ。
0729デフォルトの名無しさん2016/09/12(月) 00:11:17.09ID:GwVwE6OL
void func( char *output, int max_buffer)
これはさ、max_buffer以内で絶対に納めるって前提があるんだよ。
その為のmax_bufferだぞ。

max_bufferの指定が間違ったらエラーなんだよ。
他にどういう使い方あるんだよ
0730デフォルトの名無しさん2016/09/12(月) 00:11:25.69ID:XcxNhSoL
>>728
マクロでパスの最大規定されてる
0731デフォルトの名無しさん2016/09/12(月) 00:13:42.09ID:GwVwE6OL
結果を正しく格納するのに必要なバッファサイズが、max_bufferだろ。
char *outputのサイズがmax_buffeなんだよ

char *outputがオーバーフローしないように、max_bufferを上限に処理をして、
char *outputで返せばオーバーフローしないって仕組みなんだよ。
0732デフォルトの名無しさん2016/09/12(月) 00:14:04.49ID:Tu0jZEI4
まさか>>728のやさしいレスを見てもまだ世迷い言が続くとは
これはホンモノだ
0733デフォルトの名無しさん2016/09/12(月) 00:18:26.76ID:GwVwE6OL
おまえなにもわかってないだろ。
何ひとつ自分で説明してないだろ。
0734デフォルトの名無しさん2016/09/12(月) 00:21:57.49ID:U6Ajls88
>>732
老害プログラマによくいる切り捨てられても気にしない、切り捨てによって発生したバグが確認されて初めてバッファーサイズをプログラム内の定数値で変更する人なんでしょ。

C++使ってるなら正しく処理する為には多大な面倒が発生する手法なんて使うなって事なんだけど老害にはそれが理解出来ないらしい。
0735デフォルトの名無しさん2016/09/12(月) 00:22:27.92ID:/3fOrQXc
max_bufferがあるからバッファオーバーフローを防ぐことが出来る
逆にmax_bufferが効果を発揮する状況というのは
結果を正しく格納するのに必要なバッファサイズがmax_bufferを越える時だ
従って>>731の最初の行は間違っている
0736デフォルトの名無しさん2016/09/12(月) 00:23:39.94ID:XcxNhSoL
最大値をどうすればいいのかって話でしょ
728の例だと別の場所で最大値は決まってる
でもバッファサイズ3とか小さすぎると欲しい情報は帰ってこない
当然オーバーフローはしないけど
0737デフォルトの名無しさん2016/09/12(月) 00:27:04.07ID:feiUf+9B
バッファっていう概念がちょっとズレてんのかもな
Cやってる人はコップでプールの水をすくうとき
コップがバッファだ
コップの大きさで回数を重ねてすくう
コップを最大まで大きくしなきゃいけないとか
必要なコップサイズは、などとは考えない
それがバッファ
0738デフォルトの名無しさん2016/09/12(月) 00:28:34.40ID:Tu0jZEI4
>>730
文脈を理解できない低能は去れ

>>733
健常者なら『レスを100回読み直せ』で理解できると思ったので敢えて説明しなかった失礼
では説明してやろう
<呼び出し側>
 vector<char> result(★);
 func ( &result[0], result.size() );
>>674はこの★をどう決定するかが
呼び出し側コードを書く者の負担になると言っている
0739デフォルトの名無しさん2016/09/12(月) 00:28:41.75ID:GwVwE6OL
だからよ、C++の使い方で
void func( char *output, int max_buffer)
を使おうとすれば、Cのバッファを意識する使い方以外に無いだろ。

それをストリングクラスの代わりに
void func( char *output, int max_buffer) を使う手ももあるが、
バッファのサイズをどうするかが問題、とか言ってるから、

そういう使い方はしないし間違ってるって言ってんだろがよ
0740デフォルトの名無しさん2016/09/12(月) 00:30:38.58ID:GwVwE6OL
void func( char *output, int max_buffer)
これはよ、char *outputのサイズを意識しない限り、動かせないプログラムだよ

このサイズが分からない時に、
void func( char *output, int max_buffer) を使うってのは無いんだよ
それをあるって言うから、無いって言ってんだよ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0741デフォルトの名無しさん2016/09/12(月) 00:35:45.75ID:XBLhc0H+
>>740
一旦これだけは言っておくが
おまいの言っていることは正常でしかもごくあたりまえのこと
おそらくその点を繰り返す必要はもうないし
そのことはみんな分かってる

読み込む前にサイズ分からないものがあるよね?
そのときは固定サイズじゃ読み込めないよね、
的なことをおまいの相手は繰り返し言ってるんじゃないか?
配列に対するベクタの利点みたいな部分を言いたがってる気がする
0742デフォルトの名無しさん2016/09/12(月) 00:40:53.14ID:XcxNhSoL
最大値がどっかで決まってるか、outputにヌルいれると必要なサイズ返るとかが普通じゃね
その関数だけじゃ必要なサイズがわからんというお話
パスが欲しいのにバッファ小さすぎてドライブレターだけ返ってきても意味無いわけで
0743デフォルトの名無しさん2016/09/12(月) 00:43:58.37ID:GwVwE6OL
void func( char *output, int max_buffer)
を使う前にはサイズを把握してないと駄目ってだけだよ。

それが把握できんのにこういうCライクな使い方は間違ってるって俺は言ってるだけだよ
0744デフォルトの名無しさん2016/09/12(月) 00:47:09.50ID:hz43BbCS
C言語的なインターフェイスは不便だからC++らしく書きましょう
0745デフォルトの名無しさん2016/09/12(月) 00:47:23.61ID:U6Ajls88
>>743
格納サイズを把握してたらmax_bufferなんて要らなくね?
0746デフォルトの名無しさん2016/09/12(月) 00:51:26.47ID:GwVwE6OL
>>745
いやオーバーフロー対策の最大値だから
引数で明示的にサイズを渡しましょうって取り決めだ
0747デフォルトの名無しさん2016/09/12(月) 01:02:10.22ID:Tu0jZEI4
>>743の達した結論が
>>674とほぼ同じに思えてならない
0748デフォルトの名無しさん2016/09/12(月) 01:10:30.26ID:hz43BbCS
いまさらそんな40年前からある常識を言われも困る
0749デフォルトの名無しさん2016/09/12(月) 01:13:36.21ID:WIrRwO5G
>>730
>728 で挙げた MSDN のページにそんな規定は見当たらないんだけど、どこ見て言ってるの?
MAX_PATH の類のことを言ってるなら、よくある勘違いだろうと思うんだ。
https://www.google.com/search?q=GetModuleFileName+MAX_PATH
http://d.hatena.ne.jp/satosystems/20100807/1281152224
0750デフォルトの名無しさん2016/09/12(月) 06:52:52.36ID:y21Asc3i
MAXPATH があてにならんのは確かだが
サイズ取得せずにリトライするのもダメ臭が
0751デフォルトの名無しさん2016/09/12(月) 08:08:53.69ID:46mLPt5D
書き込んだサイズを返すくせに必要なサイズを
調べる機能が規格に無いstd::mbstowcsはクソ
0752デフォルトの名無しさん2016/09/12(月) 09:10:27.05ID:HZgwCDH3
プログラミングのコードを書く時のタブvsスペース戦争がついに決着
http://www.gizmodo.jp/2016/09/tab-vs-space.html
http://www.gizmodo.jp/images/2016/09/160901coding2.jpg
http://www.gizmodo.jp/images/2016/09/160901coding3.jpg
0753デフォルトの名無しさん2016/09/12(月) 09:38:06.48ID:y21Asc3i
優れたデータから生まれるクソ同然な解説
0754デフォルトの名無しさん2016/09/12(月) 10:27:38.72ID:CKtP/5ek
おまえTAB派かw
0755デフォルトの名無しさん2016/09/12(月) 11:33:25.20ID:+YsVO5lS
タブスペース混在で起きる問題とは?
0756デフォルトの名無しさん2016/09/12(月) 12:31:33.38ID:ZblQazo2
タブ幅が決まってないのが一番の問題だな。2,3,4,8みんなバラバラ。
0757デフォルトの名無しさん2016/09/12(月) 13:20:51.17ID:s5J5+4ba
pythonが致命傷を負う
0758デフォルトの名無しさん2016/09/12(月) 13:57:05.61ID:x7GAwvaf
>outputにヌルいれると必要なサイズ返るとかが普通じゃね

必ずしもそれが有効かどうかわからないから困る
必要なバッファサイズを取得してから実際に文字列を取得するまで
関数を二回呼び出す必要があり、ここに時間差があるのが問題
マルチスレッドで問題になる
取得したバッファサイズは既に古い情報になっている可能性がある
これを解決するにはLockするしかない
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( outputr.data(), output.size() );
obj->unlock();
こんなコードはまさに糞であるということ
しかも、lock、unlockをし忘れても、たまたまのタイミングの物で、そこそこ動きそうというのが怖い
つまり、ほんの短い期間の間に、文字列が更新されて取得したバッファサイズが無効になるほうが珍しいだろう
しかし、ありえないことではない
1000回に1回だけ失敗するというのが一番怖い

これに比べれば、関数内でnew char[]して返すほうが、まだいくらかマシに思えるぐらい
しかしこれをやると、帰ってきた文字列は自分で開放しなければならないのか
あるいは開放してはダメなのか、解放関数はdelete[]なのかfreeなのかあるいは別の専用関数なのか
ということが関数ごとにマチマチになり、非常に煩雑になる

std::string output = obj->func();
のほうが断然良い、誰の目にも明らか、短い、シンプル
lock、unlockを呼び出し元が保証しなければならないのは良くない
必要な処理が一発の関数呼び出しでキマるように設計すれば、同期処理はobj内に隠蔽できる
こちらのほうが良い
単に文字列取得するだけでlock、unlockが必要というのは狂気の沙汰
>>700のような特殊な場合を除いては、ね
0759デフォルトの名無しさん2016/09/12(月) 15:42:12.58ID:tjH2oYJX
ってか

void func( char *output, int max_buffer)

なんてI/Fを書いちゃってることが問題なんじゃねーの?
これでなんとかしようって考えたって生産性ないし
0760デフォルトの名無しさん2016/09/12(月) 16:16:50.47ID:ZblQazo2
cのIFだから古臭いのはしょうがない。

効率悪くなってもstd::string吐くようにラップして二度と触らないのが吉。
0761デフォルトの名無しさん2016/09/12(月) 16:45:03.11ID:+C5a7cGR
void func( char *output, int max_buffer)
これ、ニワカが作ったダメな見本

普通
size_t func( char *output, size_t max_buffer)
0762デフォルトの名無しさん2016/09/12(月) 17:01:45.51ID:2Vwoh4uN
ゴミが得意気に難癖つけてて笑える
0763デフォルトの名無しさん2016/09/12(月) 17:58:57.32ID:KCLSxXC3
同じ意味じゃんw
0764デフォルトの名無しさん2016/09/12(月) 18:06:15.51ID:5/ctHFsj
マルチスレッドのリテラシーも無いのにクソみたいな長文をドヤ顔で貼り付ける>>758が哀れで仕方ない
2回のfnucの呼び出しの間にバッファーが変更される状況では単独の呼び出しすら破綻していることが理解できないらしい
0765デフォルトの名無しさん2016/09/12(月) 18:13:03.76ID:Brz5tLm8
彼に限らず何らかの問題意識を訴える子が
なぜか突然マルチスレッドを絡めてくるのはもはや伝統芸
そして一通り話を聞いてみると
「そうだね、排他だね」としか言いようがないことも毎度
0766デフォルトの名無しさん2016/09/12(月) 18:27:11.87ID:x7GAwvaf
std::string output = obj->func();
の場合、funcの中で排他処理をしていれば、呼び出し元は排他処理について気にしなくてよい
アトミックな操作ということになる
文字列の取得にかかわらず、アトミックが期待される処理は
分解せずに一つの関数で実現すべきである
personオブジェクトの取得なら、person = obj->get_person(); とすべきであり
person.set_name( obj->get_persion_name() );
person.set_age( obj->get_persion_age() );
のように分解してしまうとアトミックでなくなるから、やはりロックが必要になる
外からオブジェクトをロックする、そういうI/Fをobjに用意するということは
何時でも何処でも好き勝手にロックできるというわけで
使い方を誤るとデッドロックを引き起こす可能性がある
ロックの順番はクラス設計者が明確に管理し、隠蔽すべき

さて、文字列取得を二つの関数に分けて行うとアトミックな操作でなくなるから
呼び出し元で排他処理をしなければならなくなる
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( output.data(), output.size() );
obj->unlock();
これは非常に面倒なので君らは直ぐにでもstd::stringを返すラッパーを書く
そうすれば結局同じことになるので、初めからstd::stringを返せばよい
もとより文字列の取得はアトミックであることが期待されるわけだから
一回の関数呼び出しで行うのが筋である
0767デフォルトの名無しさん2016/09/12(月) 18:43:38.31ID:5/ctHFsj
一生懸命考えた結果がコレか?
呼び出し側が自らコンカレントな使い方する前提でロック必須と言われてもねぇ
その内vectorのremove&eraseイディオムにも排他が必要で狂気の沙汰とか言い出しそうだな
0768デフォルトの名無しさん2016/09/12(月) 18:44:31.77ID:x7GAwvaf
どれだけの処理を一つの関数で行うべきかは
どこまでの処理がアトミックと期待されるか、による
文字列の取得はアトミックであることが期待されるので
一つの関数でアトミックに実行すべき、となる
場合によればアトミックの範囲がもっと広がることもある
例えばpersonの情報が欲しいとき、名前と年齢を別々に取得するのはよくない
名前の取得と年齢の取得のそれぞれが独立して排他処理してあって正しく動いたとしても
全体として名前と年齢のペアが一致しなくなる可能性があるから
だからこの場合、personの情報は一つの関数呼び出しで行い、アトミックである必要がある

なので、一つの関数で実行すべきこと、アトミックに実行すべきこと、は
文字列の取得なんかよりは大きな範囲、粒度になることはある
大きくなることはあり得るということ

が、間違っても、文字列の取得などというプリミティブな処理を
バッファサイズの取得と文字の取得の二つに分割したほうが良い
とはならない
0769デフォルトの名無しさん2016/09/12(月) 18:50:01.82ID:x7GAwvaf
>>767

>必ずしもそれが有効かどうかわからないから困る

と書いた通り、すべての場合とは言っていない
困る場合があるといっている
そして、困る場合での話である
0770デフォルトの名無しさん2016/09/12(月) 19:40:26.75ID:5/ctHFsj
なるほどつまりは>>765だな
この論法は非constメンバー関数を使ったイディオムに広く使えそうだ

「〜って普通だろ?」
 ↓
「必ずしもそれが有効かどうかわからないから困る(長文略)」
0771デフォルトの名無しさん2016/09/12(月) 21:04:54.81ID:U6Ajls88
>>767
呼び出し側だけとは限らんでしょ。
非同期でデータメンバーを更新しつつ、更新通知をだすクラスとか
0772デフォルトの名無しさん2016/09/12(月) 22:29:31.42ID:2Vwoh4uN
一発でstringやらvectorで返すなら常識的に言ってロックは必要ないわな
何話してるのか分かってない奴が力んでるな
0773デフォルトの名無しさん2016/09/12(月) 23:29:00.60ID:3LkOVCr7
タブ幅は8である。但し、一度タブキーを叩くと4つのスペースが入る
但しそれで8つのスペースとなるときはそれを一つのタブに換える
0774デフォルトの名無しさん2016/09/13(火) 00:03:18.93ID:ZWXE0Cz9
いやタブとスペース混ぜるのは論外でしょ
0775デフォルトの名無しさん2016/09/13(火) 00:39:27.54ID:UjtLBJZw
混ぜると誰かがコード整形したときに全部差分に出るから邪魔
0776デフォルトの名無しさん2016/09/13(火) 00:51:46.06ID:nTkG/AQ9
>>772
そんな事でロックが必要かどうか決まらないと思うが何を言ってるんだ?
0777デフォルトの名無しさん2016/09/13(火) 01:06:54.89ID:TGJSQl0M
VZエディターとか混ぜてたな
0778デフォルトの名無しさん2016/09/13(火) 01:20:10.44ID:7Uxx8QPD
基本的にインデントが何段階も必要な入れ子はよくない
許容範囲は2つまでだな
0779デフォルトの名無しさん2016/09/13(火) 02:29:06.46ID:qRIDBJHy
論点がずれてんじゃんw
0780デフォルトの名無しさん2016/09/13(火) 04:10:18.62ID:ifCWTkZq
>>775
差分取るときホワイトスペース無視すればいいだろ
0781デフォルトの名無しさん2016/09/13(火) 05:08:48.43ID:E9px3zRx
std::get_temporary_buffer ってなんであんなクソ仕様で作ったの
0782デフォルトの名無しさん2016/09/13(火) 05:14:57.49ID:ifCWTkZq
それ知らんかったけどクソだからC++17でdeprecatedになるのか
0783デフォルトの名無しさん2016/09/13(火) 07:08:31.21ID:fa0Yw14i
引数の異なる関数を関数テーブルにまとめる方法ヘルプミー
0784デフォルトの名無しさん2016/09/13(火) 07:11:36.75ID:jvr3tDVu
型が違うから難しくね?同名でオーバーロードするんじゃだめなんかい。
0785デフォルトの名無しさん2016/09/13(火) 07:21:28.20ID:6YUjJJm0
テーブルの別の要素で引数と返り値の型を記憶しておき、任意の関数ポインタ型にreinterpretして保存
呼び出し時は記憶した引数と返り値のの型に対応する関数ポインタ型にreinterpretしてから呼び出す。
0786デフォルトの名無しさん2016/09/13(火) 07:56:45.02ID:BC6G6r/f
>>783
それどうやって使うつもりなの?
0787デフォルトの名無しさん2016/09/13(火) 08:09:28.64ID:LgTr6ZxA
>>785
やはり別物で統一して記憶させるしかないか…
要は入れてから後にキャストだよね

>>786
関数群30ぐらいあるからそれを管理しやすくしたい
別にenumで関数名入れておくのと
関数名に対応したインデックス拾ってくる関数を用意しておいて
後に使いやすく
0788デフォルトの名無しさん2016/09/13(火) 08:11:50.46ID:jvr3tDVu
酷い設計って言っていい?
0789デフォルトの名無しさん2016/09/13(火) 08:20:36.44ID:BC6G6r/f
>>787
> 後に使いやすく

ごめん、全然使いやすくなるイメージがないんだが...
単にまとめときたいだけならクラス作って静的メンバ関数でいいような気がするし
0790デフォルトの名無しさん2016/09/13(火) 08:29:56.17ID:LgTr6ZxA
>>789
関数名を別ファイルから取り出して動的に動かすためにはこれしかなかった
まとめておいてプログラム内で処理ならそれで良いけど
今のところそうなってるからそれに会わせるしかないんだ
0791デフォルトの名無しさん2016/09/13(火) 08:32:38.69ID:jvr3tDVu
可変長引数取る関数内でスイッチするのと大差なさそう。
0792デフォルトの名無しさん2016/09/13(火) 08:33:59.57ID:Dh1MHapU
>>791
はぁ??
0793デフォルトの名無しさん2016/09/13(火) 08:39:26.37ID:LgTr6ZxA
>>791
結局どこかで分岐処理によるキャストするからほぼ変わらん気もする
これに関連する話だけど

int (*func)(void*)みたいな関数ポインタがあって
引数二つにするにはどうやってキャストしたら良いんだろうか
0794デフォルトの名無しさん2016/09/13(火) 08:43:25.81ID:kwiFGb/T
まず関数の型をtypedefしようぜ。
0795デフォルトの名無しさん2016/09/13(火) 08:47:38.13ID:GD/RUd4Y
windows のマクロまみれのメッセージディスパッチと同じようなことじゃろ
0796デフォルトの名無しさん2016/09/13(火) 08:57:44.86ID:jvr3tDVu
http://ideone.com/BWJoEi
こういう感じのこと思いついたけど、できんかった。テヘペロ。
関数複製するんだから通ってほしいなぁ。
なんかテンプレマジックで通らんかなぁ。
0797デフォルトの名無しさん2016/09/13(火) 09:02:38.95ID:jvr3tDVu
これができたら、ファクトリーメソッドがパラダイス。
0798デフォルトの名無しさん2016/09/13(火) 09:51:20.93ID:jvr3tDVu
特定の型のパラメータパックってできなかったっけ?
Anyのパラメータパック食わせれば解決するんだけどなぁ・・・。
0799デフォルトの名無しさん2016/09/13(火) 11:14:43.16ID:nTkG/AQ9
やりたいことにたいして少し大仰だが、Boost.Pythonのようなものでインタプリタからどうやって型安全に関数を実行してるか見たら少しは参考になるんじゃない?
0800デフォルトの名無しさん2016/09/13(火) 12:49:03.21ID:BC6G6r/f
>>790
> 関数名を別ファイルから取り出して動的に動かす
なら初めからそう書いてよ
使いやすさ云々じゃないじゃん
関数名を特定するのはいいけど引数は関数毎にバラバラなんでしょ?
結局どこかで分岐が必要な気がする
それとも引数は Variant みたいななんでも入れられる変数の配列にしてしまうとか
0801デフォルトの名無しさん2016/09/13(火) 17:00:07.27ID:dUelqKgA
>>783
#include <functional>

double foo(double x) { return x; }
int bar(int x) { return x; }

int main()
{
std::function<double(double)> table[2];
table[0] = foo;
table[1] = bar;
}
0802デフォルトの名無しさん2016/09/13(火) 18:18:50.00ID:LmZnag12
>>801
コードサンクス
ただこれはintとdouble型に対してだからできるんじゃないのだろうか

>>800
そういうことだね
だからどこかでキャストし直す必要がある…はず
あらかじめどこかにパターンを定義しておいてそれはもうスイッチ文に頼るしかないかなって考えてる
0803デフォルトの名無しさん2016/09/13(火) 18:20:35.88ID:LmZnag12
>>797
俺もパラダイスを目指している
Cならエラー出ずにできるみたいなんだよね
C++でxmlをjsonにパースしたり
jsonを簡単に読み込む方法ってあったっけ?
ないならC#も考えないとな…
0804デフォルトの名無しさん2016/09/13(火) 19:01:39.86ID:bDDPvjQm
実行時に文字列を比較して分岐することのどこにパラダイスを見いだせるんだよ
0805デフォルトの名無しさん2016/09/13(火) 20:22:41.37ID:BC6G6r/f
>>803
調べてないけどライブラリぐらいあるんじゃね?
0806片山博文MZ ◆T6xkBnTXz7B0 2016/09/13(火) 21:57:21.43ID:7T7m5n2i
質問です。

placement newの関数の宣言と定義はどこに書くのが正解ですか? よろしくお願いします。
0807デフォルトの名無しさん2016/09/13(火) 22:04:54.99ID:6F1+hrdF
>>805
picojsonとやらを使ってみた
便利なんだけど配列二つあると積む現象が起きてしまった…
0808デフォルトの名無しさん2016/09/13(火) 22:23:58.73ID:eOd6ZBDo
jscriptで読めるから
WSHでアプリで実行
0809片山博文MZ ◆T6xkBnTXz7B0 2016/09/13(火) 22:34:06.63ID:7T7m5n2i
ReactOSというOSの開発をしています。
ヘッダー<new>と<crtdbg.h>のnewの宣言が衝突していて、<new>が使えません。
どうしたら正しく配置newが使えますか?
0810デフォルトの名無しさん2016/09/13(火) 22:52:09.89ID:7Uxx8QPD
自分のソフトの販売権がカシオが取得とかねつ造してたやつだ
0811片山博文MZ ◆T6xkBnTXz7B0 2016/09/13(火) 22:59:05.82ID:7T7m5n2i
わかりました。ReactOSのSTLかCRTのコードが間違っているということですね。
配置newは<new>をインクルードしたら使えなければおかしい。
0812デフォルトの名無しさん2016/09/13(火) 23:06:52.68ID:7T7m5n2i
自分の商品の販売権をどう決めようが勝手でしょう。会社名を出したのは悪かったが。
0813デフォルトの名無しさん2016/09/13(火) 23:08:15.35ID:jz2gr8q/
ライバル会社かなにか?
0814デフォルトの名無しさん2016/09/13(火) 23:15:36.33ID:7Uxx8QPD
>>812
おまえカシオが権利を所有とか書いてたんだろ
カシオと専売契約交わしたみたいに書いてたろ

カシオが知らんと思うてか 
0815デフォルトの名無しさん2016/09/13(火) 23:21:08.73ID:7T7m5n2i
>>814
誤解です。メールで交渉中でした。
0816デフォルトの名無しさん2016/09/13(火) 23:29:04.40ID:7Uxx8QPD
>>815
うそつけこら。おまえがメール送ってただけやろが。
往生際が悪い。全部バレとんねん 

狭い業界でごまかせるとおもうなよ
0817デフォルトの名無しさん2016/09/13(火) 23:33:01.44ID:7T7m5n2i
すみません
0818デフォルトの名無しさん2016/09/14(水) 00:03:18.61ID:3NkcLiKm
反省してます
0819デフォルトの名無しさん2016/09/14(水) 01:01:49.61ID:QlIAHX1m
なんやなんや
0820デフォルトの名無しさん2016/09/14(水) 02:49:36.41ID:Xhtlj9Sh
マトラボスレ勢いなさすぎ。
誰かイコライザのコーディング教えてくれや
0821デフォルトの名無しさん2016/09/14(水) 03:15:05.48ID:Pl2/S2ti
イコライザってなに?
0822デフォルトの名無しさん2016/09/14(水) 03:18:25.05ID:EjX8GKMV
信号処理
0823デフォルトの名無しさん2016/09/14(水) 03:53:21.14ID:qczVS6OA
FFTか。言葉しかしらん。
0824デフォルトの名無しさん2016/09/14(水) 04:57:26.35ID:8Y7m8SBN
高速フーリエ変換か
0825デフォルトの名無しさん2016/09/14(水) 08:16:10.34ID:58JMlqKS
placement newの関数を自分で書く素振りを見せながら
newをインクルードとか、何言ってんだか。
標準ヘッダーが衝突するなら処理系作った奴に聞け
0826片山博文MZ ◆T6xkBnTXz7B0 2016/09/14(水) 11:33:48.49ID:3NkcLiKm
>>825
ありがとうございます。
0827デフォルトの名無しさん2016/09/14(水) 18:34:08.81ID:O92aoqkR
CppUnitによるテストって登録件数が多くなった場合…なんとかならんもんかね
1000を越えるとかマジで嫌なんだが
0828デフォルトの名無しさん2016/09/14(水) 18:59:00.04ID:EjX8GKMV
何が嫌なんだ
時間がかかるってことなら分割したらいいじゃないか
0829デフォルトの名無しさん2016/09/14(水) 19:15:10.96ID:O92aoqkR
>>828
コードがめっっっちゃ汚くならね?
1000個テストするなら1000行似たこと連続で書くんでしょ?
0830デフォルトの名無しさん2016/09/14(水) 19:27:01.68ID:EjX8GKMV
>>829
テストコードも名前を付けてモジュール化すればすれなりに見やすくはなるんじゃないか
どこで何のテストをしているか見つけやすくなるし
0831デフォルトの名無しさん2016/09/14(水) 19:57:41.83ID:C1VR7bWr
>>830
ファイル分割するってことだろうか?
0832デフォルトの名無しさん2016/09/15(木) 00:14:31.25ID:SldeaLfO
別にそれCppUnit 固有の問題じゃねーじゃん。
お前のテストコード作成全般の問題だろ。
0833デフォルトの名無しさん2016/09/15(木) 01:28:50.14ID:NSWALpAD
>>829
「似たこと連続で」ならマクロでも何でも使ってまとめりゃいいだろ。
0834デフォルトの名無しさん2016/09/15(木) 06:31:33.82ID:eCorjc8D
http://ideone.com/VtKz07

http://nonbiri-tereka.hatenablog.com/entry/2014/06/25/093327を見て勉強中なのだが、
なぜ、test_addでaddをラップしてるのかがわからない
addに引数を持たすことが出来ないのか。
また、addの足し算が引数をaが1-100だった場合、今の俺では100個記述することになる
マクロを使用とかすれば解決できそうだけど、適切に使う方法が思いつかないんだ…
外部ファイルとかからの読み込みでも良いので何かしらヘルプ・・・・

void FunctionTest::test_add(){

CPPUNIT_ASSERT_EQUAL(3+2,func->add(3,2));
}

この部分を何個も書いて
CPPUNIT_TEST(test_add);//メンバ関数の登録ってのを

CPPUNIT_TEST(test_add);//メンバ関数の登録
CPPUNIT_TEST(test_add1);//メンバ関数の登録
CPPUNIT_TEST(test_add2);//メンバ関数の登録
.....となってしまう
0835デフォルトの名無しさん2016/09/15(木) 08:43:36.54ID:wjxOqoMl
コンパイル時と実行時の違いがあるから直接指定はできないよ。
lambdaとかbindでいけんじゃね?試してないけど。
0836デフォルトの名無しさん2016/09/15(木) 09:20:50.32ID:Dfv6m4lx
凝ったことをした挙句テスター自体にバグ仕込んでテスト無効とか馬鹿らしいから
1回きりと割りきってシンプルに書くという考えもある
0837デフォルトの名無しさん2016/09/15(木) 10:13:14.67ID:dJJn2WBE
template<typename...Args> void hoge(Args...args){}
hoge({1,2,3});
としたら
hoge(std::initializer_list<int>)
のように推論して欲しいのですが何故できないのですか
0838デフォルトの名無しさん2016/09/15(木) 10:40:36.62ID:krf6YZ+h
http://ideone.com/zJhotB
0839デフォルトの名無しさん2016/09/15(木) 10:41:24.48ID:krf6YZ+h
投稿を暴発してしまった。
自動では推論してくれないみたいだねぇ。なんでだろう・・・。
0840デフォルトの名無しさん2016/09/15(木) 14:05:17.34ID:OOrl8bCH
勝手に変換されても困るべ
0841デフォルトの名無しさん2016/09/15(木) 16:06:02.66ID:qnepHcI/
C++PRIMER 5TH KINDLE版でシコシコするのはどう思いますか。
尼ではさっぱり人気がないようですが。
0842デフォルトの名無しさん2016/09/15(木) 16:40:29.83ID:gyul79OX
あの手の本は意味がないよ
どんだけ、言語の仕様に詳しくなっても何の得にもならんからな
0843デフォルトの名無しさん2016/09/15(木) 19:22:13.92ID:BBoNUH+R
熱い江添批判
0844デフォルトの名無しさん2016/09/15(木) 20:07:39.04ID:axqGMSjf
おっと江添の悪口はそこまでだ
0845デフォルトの名無しさん2016/09/15(木) 20:59:53.90ID:XkA1sBZN
少なくとも言語仕様を把握してない奴にライブラリは作って欲しくない
0846デフォルトの名無しさん2016/09/15(木) 21:49:37.24ID:7lTxlp13
つまりハゲはライブラリ作るな
0847デフォルトの名無しさん2016/09/15(木) 21:50:15.59ID:umQizf+V
言語仕様が
げんこつ塩ラーメン
に見えた

ちょっと夜食食ってくる
0848デフォルトの名無しさん2016/09/16(金) 06:27:51.21ID:nhdK38ZD
「言語仕様」→「げんごしよー」→「げんこつしおらーめん」
漢字の視覚情報として入力されたパターンを、
脳内でいったん音声情報に変換してから似た言葉に錯誤したのね。

俺の認識手順と違うみたいなので理解するのに手間取った。
0849デフォルトの名無しさん2016/09/16(金) 07:23:14.79ID:1ml378Vd
>>848
言語仕様の後にライブラリのラだけ見えたからさらに連想を促進した
0850デフォルトの名無しさん2016/09/16(金) 09:43:39.74ID:wscqtQV8
おまえらハゲを敬え
0851デフォルトの名無しさん2016/09/16(金) 10:02:58.29ID:q1C1+fLl
http://dnaimg.com/2011/06/07/personal-rocket/img_001.jpg
0852デフォルトの名無しさん2016/09/17(土) 19:36:33.08ID:/lrAuukn
ハゲ(笑)
0853デフォルトの名無しさん2016/09/17(土) 20:17:46.81ID:n9MPs/HW
ハゲが世界の技術を支えてる
0854デフォルトの名無しさん2016/09/18(日) 00:04:19.65ID:5e40+2Z7
VSのリードプログラマもハゲだな
0855デフォルトの名無しさん2016/09/18(日) 00:05:00.62ID:+iC0HZAY
ハゲが好きだなお前ら
0856デフォルトの名無しさん2016/09/18(日) 00:23:27.97ID:+IdphFbB
ハゲは絶倫!
0857デフォルトの名無しさん2016/09/18(日) 00:45:36.25ID:5e40+2Z7
質問なんだけどnewするとき例外処理する人はvectorとかでpush_backする時も毎回tryしてんの?
0858デフォルトの名無しさん2016/09/18(日) 02:44:35.25ID:9+5kS6ok
してると言えばしてるけど、多分君の思ってる感じではしてない。
0859デフォルトの名無しさん2016/09/18(日) 02:48:48.02ID:9+5kS6ok
例外は例外的にしか発生しないので、層の上の方の集約するポイントでcatchしてる。
あんまり細かくやっても意味ないしハゲる。
0860デフォルトの名無しさん2016/09/18(日) 03:18:08.82ID:+iC0HZAY
つーか、例外発生する可能性のある箇所でcatchしないとかないでしょ
0861デフォルトの名無しさん2016/09/18(日) 03:29:47.07ID:L03d0R0a
あまり細かい事気にしてるとハゲるよw
0862デフォルトの名無しさん2016/09/18(日) 03:43:50.19ID:1yHXSEjx
問い1「newするとき毎回try catchするバカはvectorのpush_backもtry catchするのか?」
答え「している可能性あり」

問い2「newするとき毎回try catchするバカは非noexcept関数の呼び出しも毎回try catchするのか?」
答え「バカの行動は一貫性が無いのでしていないだろう」
0863デフォルトの名無しさん2016/09/18(日) 04:12:03.01ID:CEGgaeCy
// Aをnewしてveにpush_back
// push_backは落ちないようcatchのおまじない必須
try { ve . push_back( new A( new R(), new S() ) ); }
catch ( ... ) {}
0864デフォルトの名無しさん2016/09/18(日) 04:50:42.33ID:EIh/dcA1
そんな基本的なコンテナのエラーを、catchしても、
プログラマーが回復させることは出来ない

強制終了されるままにしておいた方がいい

下手すれば、エラーログに書き込む際、さらにエラーが起きるかも
0865デフォルトの名無しさん2016/09/18(日) 05:42:12.02ID:+IdphFbB
クラスの型が一致しなくてcatch出来なかった例外は一体何処へ吹っ飛んでいくのだろうか…
0866デフォルトの名無しさん2016/09/18(日) 06:02:09.25ID:+jQZdVYD
NULLチェックしろよとチェックツール使った品質チームが指摘してくるんだが、そもそもnew失敗したら例外になるからNULLチェックまで来ねーだろ、お前のチェックチーム馬鹿すぎだろって突っ込みを誰もしないで数年
0867デフォルトの名無しさん2016/09/18(日) 06:29:33.73ID:CQAObZ4Q
バカってなんでnewしたがるんだろう
0868デフォルトの名無しさん2016/09/18(日) 06:44:28.23ID:xYSNtktv
>>866
チェックツールが古い仕様向けに作られているのだろうか。
newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ。

指摘を聞き流すだけでなく、チェックする部署の人に
ツールのバージョンだか設定だかを現状に合うように改めてもらったら?
0869デフォルトの名無しさん2016/09/18(日) 08:41:57.71ID:TydQpzdL
pimpl = new impl;
if(pimpl == nullptr) []()[[maybe_unused]]{throw std::bad_alloc();}();
0870デフォルトの名無しさん2016/09/18(日) 08:48:34.25ID:2blUzsBI
c++ は最新仕様だけ覚えていればいいってもんではない。
0871デフォルトの名無しさん2016/09/18(日) 09:21:00.65ID:/1FlYzFJ
>>867
make_uniqueはコンストラクター引数の補完が働かないので使いづらい
0872デフォルトの名無しさん2016/09/18(日) 09:22:05.47ID:6SQSBv8I
仕様だけは詳しいが、実務は全くできない奴いるなw
正直最新の仕様なんかについてうんちく垂れるより、古い仕様でもきちんと動くほうがいい。

中には、よくわからずに使って、はまって納期遅れさせるバカもいるwwww
0873デフォルトの名無しさん2016/09/18(日) 09:33:08.57ID:1yHXSEjx
日本語が理解できずに話をすり替えてしまう>>870みたいな低能や
例外処理の基本も理解できていない>>864みたいな低能が
その品質チームとやらにいるんだろう
0874デフォルトの名無しさん2016/09/18(日) 10:19:05.24ID:EIh/dcA1
new にも、NULLを返すバージョンと、例外にするバージョンなど、色々あるんじゃね?
0875デフォルトの名無しさん2016/09/18(日) 11:18:56.17ID:WPlu++Kc
例外処理って目的によって異なる
素直にシステムがエラー吐いて終了で問題ない場合
特定のエラーを検出して改善の為のログを残したい場合
止まると困るシステムの場合十分なリカバリー手段を用意して例外検出と復旧処理を行う

通常のアプリケーションにnew なんて使わないって書いてあったけど
プログラムの目的とエラーに対する必要な強度を仕分けして
全体としてどの様に例外処理を組み込むかって事だよね
0876デフォルトの名無しさん2016/09/18(日) 14:08:31.95ID:5e40+2Z7
やっぱりC++って集団で使うのには向いてないんだよね
どのC++の話してるか分からないか
0877デフォルトの名無しさん2016/09/18(日) 14:09:15.23ID:EIh/dcA1
ゲームエンジンの本には、自分でメモリプールを作っている例が、よく載っている

newをその都度呼ぶと遅いから、まとめて何十個分のメモリを確保する。
そしてその中から、今使う分だけを使う

でも、それぐらいの機能、既に誰かが、ライブラリを作っていそうなもんだが
0878デフォルトの名無しさん2016/09/18(日) 14:14:46.13ID:/A9gXhFE
boost.pool
0879デフォルトの名無しさん2016/09/18(日) 14:42:48.66ID:5e40+2Z7
もちろんメモリプールなんてたくさん出回ってるし今度標準にも入る
でもそれらの性能が十分とは限らない
0880デフォルトの名無しさん2016/09/18(日) 14:43:41.47ID:Qq7O8IvU
昔、lokiとかあったやん?
使ったこと無いからしらんけど
あれにもメモリプールなかったっけ
0881デフォルトの名無しさん2016/09/18(日) 15:03:20.15ID:vvzKkhQt
>>868
えええええええ

いつからそんなクソ仕様になったん…
例外じゃないのか
0882デフォルトの名無しさん2016/09/18(日) 15:26:11.91ID:vvzKkhQt
と思ったけどC++て全部チェック例外だっけ
newのたびにtryさせられるよりsegmentation faultのほうがマシだな
08838682016/09/18(日) 16:16:16.34ID:xYSNtktv
>>881
勘違いさせたならすまん。>>868 で書いた
「newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ」
っていう方が古いC++でのnewの動作ね。
古いチェックツールがそんなエラーを返してるんじゃないの? という意図。

現在はnewの失敗は例外が返るのがデフォルト動作だよな。
nothrowで例外を出さないように指示したら今でもnullptrが返るけど。
0884デフォルトの名無しさん2016/09/18(日) 16:24:41.60ID:ygUqx6Ix
>>882
C++は全てjavaでいう非チェック例外じゃないの?
0885デフォルトの名無しさん2016/09/18(日) 16:45:14.01ID:/VzCUPpk
お前らの例外話は何故いつもnewなのか
0886デフォルトの名無しさん2016/09/18(日) 17:36:57.68ID:5e40+2Z7
newにおける例外の扱いのベストプラクティスが示されていないから
0887デフォルトの名無しさん2016/09/18(日) 17:37:48.57ID:+iC0HZAY
ないものは自分で見つけんだよ
0888デフォルトの名無しさん2016/09/18(日) 18:15:15.56ID:sUrpOA8l
ひょえー
0889デフォルトの名無しさん2016/09/18(日) 18:28:35.89ID:L03d0R0a
うはー
0890デフォルトの名無しさん2016/09/18(日) 19:43:10.68ID:1yHXSEjx
>>885
newを見るとすぐtry catchで囲わないといけないと妄想してる882みたいな低能が多いからでは?
catchを見ると「近くにnewが有るはず」と脊髄反射したに相違ない
0891デフォルトの名無しさん2016/09/18(日) 19:45:44.60ID:XW30Cfu8
それよりもnullチェックってどうやるのがスマートなんだ?
使ってるvector全部をif文にぶち込んでるコード見かけて驚愕したんだが
0892デフォルトの名無しさん2016/09/18(日) 20:00:16.67ID:aEHfUxVO
vectorに挿入する前にチェックすればいい
0893デフォルトの名無しさん2016/09/18(日) 20:06:12.23ID:5e40+2Z7
一部の用途を除いてnewが失敗する可能性は考えなくていい
0894デフォルトの名無しさん2016/09/18(日) 21:15:21.06ID:sUrpOA8l
説明願います
0895デフォルトの名無しさん2016/09/18(日) 21:23:31.21ID:ORSLx8xU
VBのCSV出力が遅いんだけど
Cで書いたら速くなんの?
0896デフォルトの名無しさん2016/09/19(月) 01:02:18.86ID:aveOgqLD
むしろその手の処理はVBの方が速い
0897デフォルトの名無しさん2016/09/19(月) 01:04:42.68ID:aveOgqLD
>>884
んなこたーない
0898デフォルトの名無しさん2016/09/19(月) 12:39:37.38ID:d/dsjAXw
>>895
文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの
0899デフォルトの名無しさん2016/09/19(月) 12:39:37.43ID:d/dsjAXw
>>895
文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの
0900デフォルトの名無しさん2016/09/19(月) 12:51:32.58ID:0BKQBe6K
かなり大事な事ですねw
VBとかC#で遅いからといってCやC++にしたところで劇的に速くなる保証なんかないのにな
何の言語にしようがどうしようもないか自分の組み方がおかしいかどちらか
0901デフォルトの名無しさん2016/09/19(月) 13:10:11.98ID:fA1B/38Y
>>895
ファイル出力が遅いのかテキストの組み立てが遅いのか
0902デフォルトの名無しさん2016/09/19(月) 13:15:05.33ID:3VQNeREi
VBのCSVライブラリ使ってるなら、
規格(?)に準拠するようにいろんな処理してるから
かなり遅いっぽいぞ

エスケープが要らないとかダブルクォーテーションが要らないとか
条件を限定できるなら高速化の余地もあるんでないかい
0903デフォルトの名無しさん2016/09/19(月) 13:17:08.06ID:MZBT2IFS
>>898>>901>>902
おまえらこのスレで面倒見るつもりなのw?
0904デフォルトの名無しさん2016/09/19(月) 19:50:10.96ID:urF+pqo3
むしろ同じロジックでコードを書いて比較してほしい。
0905デフォルトの名無しさん2016/09/19(月) 19:55:07.34ID:80/BHnqI
アルゴリズムの選択を誤ればJavaにすら負ける
大事なのはアルゴリズム
0906デフォルトの名無しさん2016/09/19(月) 20:12:40.99ID:sZXP+7ot
Javaで適切なアルゴリズムを使うPGと同一人物が
C++で不適切なアルゴリズムをわざわざやるかよ
同一人物が使ってどっちが優れた結果を出せるかだろ
0907デフォルトの名無しさん2016/09/19(月) 21:10:21.81ID:urF+pqo3
ここではアルゴリズムってよりライブラリ依存だな。
CSVのパースは真面目にROC準拠でやろうとすると頭が禿げるぐらい面倒くさい。
現実に扱うCSVはもっと前提条件を少なくできるだろうから、
自分で簡易版のパーサーを実装した方がいいかも。
0908デフォルトの名無しさん2016/09/19(月) 22:22:17.19ID:aveOgqLD
ROCってのが何なのかわからんが
RFC 4180なら所詮ワンパスなのでそんなに難しくない。
C#で自作したものをブビライブラリと比較したら10倍程度の速さだった。
どうせTextFieldParser使ったんだろ
0909デフォルトの名無しさん2016/09/19(月) 22:40:37.56ID:Kz778z8P
CSVなんかただの記号区切りのテキストファイルだろ。
区切ってテキスト出力すりゃええだけじゃろ
0910デフォルトの名無しさん2016/09/19(月) 22:50:33.73ID:w3ljrVli
質問者は出力について悩んでいる人に
パーサーの自作をすすめる
これがクソスレのクオリティ
0911デフォルトの名無しさん2016/09/19(月) 23:03:23.99ID:eTcqfU0K
パーサー次第で出力に差が出るだろう、そんなことも分からんのか???
0912デフォルトの名無しさん2016/09/19(月) 23:41:33.03ID:byZSyyWN
テキトーな仕様のオレオレCSVの自作を勧める奴がいまだに存在するとは。
0913デフォルトの名無しさん2016/09/19(月) 23:45:11.41ID:r/G6SK9c
1行ずつ読んでいくんじゃないのか
0914デフォルトの名無しさん2016/09/19(月) 23:47:22.25ID:pyTHmoe6
オレオレ仕様のcsvが氾濫してるから今更どうしようもない
それが問題になるようなら保存形式にcsvを用いる事自体が間違い
0915デフォルトの名無しさん2016/09/19(月) 23:49:18.87ID:r/G6SK9c
csvってカンマ区切りということ以外の仕様ってあるのか?
0916デフォルトの名無しさん2016/09/20(火) 00:09:05.24ID:Em9B638f
無い
オレオレの中でもメジャーなのに後付けでRFCが出来ただけ
0917デフォルトの名無しさん2016/09/20(火) 00:30:40.31ID:o1tJ3Pdk
>>906
普通に見たことあるけど
vectorじゃなくlist使って遅いとか
>>910
質問読めてない糞民が何言ってんだか
0918デフォルトの名無しさん2016/09/20(火) 02:23:46.55ID:E+J9y3sP
ポインタの無いC++を誰か作ってくれないかな…。
0919デフォルトの名無しさん2016/09/20(火) 03:38:57.96ID:MJf3DPDB
>>918
C++なら、あんまりポインタ意識しなくてもできるでしょ。
ライブラリが吸収してくれるんだし。
0920デフォルトの名無しさん2016/09/20(火) 06:57:10.89ID:83nQEiQC
> vectorじゃなくlist使って遅いとか

Javaしか使えないやつの付け焼き刃か
0921デフォルトの名無しさん2016/09/20(火) 07:29:03.31ID:l/rjpK7G
>>915
区切り文字(カンマと改行)をデータとして含む場合にどうするかについての仕様がある。
それが面倒くさいなら最初からタブ区切りテキストにしておけと思うが。
0922デフォルトの名無しさん2016/09/20(火) 07:41:11.11ID:h/QlA5En
ここで休んでいくか
http://o.8ch.net/fg0j.png
0923デフォルトの名無しさん2016/09/20(火) 08:17:39.33ID:yT+pR0RD
CSVは汎用性とか規格準拠とか考え始めると面倒らしいね。
カーニハンとパイクの有名な『プログラミング作法』第4章でも
素朴なプロトタイプから汎用ライブラリに磨き上げていくネタに使われてる。

引用符でくくられた文字列フィールドに含まれるカンマを読み飛ばすとか、
文字列に引用符文字を含ませる場合のエスケープ処理、
フィールド先頭以外にいきなり出てきた引用符文字はどう扱うべきか、
そういった問題。

結局、仕様のあいまいな部分は、データをExcelに処理させて
どう解釈するかを観察し、それに動作を合わせるという妥協策とか。
面白いけど奥深い(面倒くさい)話が載ってる。
0924デフォルトの名無しさん2016/09/20(火) 08:23:33.04ID:pi/Zyw6M
面倒くさがりの俺はカンマのあとのスペースの扱いをどうするか考えるのをやめた
0925デフォルトの名無しさん2016/09/20(火) 08:30:50.00ID:nnGYYj6O
実際問題、業務で扱うCSVがRFCにそってた試しがない
データ中に,とダブルクォーテーションがないこと前提で全フィールド囲みなしとか
データの改行かどうかはフィールド数から判断しろとか
0926デフォルトの名無しさん2016/09/20(火) 08:34:47.14ID:9l0NUqqb
空白は有効な値として取り込みマズければ前処理でなんとかしてくれというのがかんたん
0927デフォルトの名無しさん2016/09/20(火) 08:49:26.68ID:pi/Zyw6M
>>926
空白のあとの引用符出現とか考えると面倒
0928デフォルトの名無しさん2016/09/20(火) 15:15:36.96ID:sn1HJBVo
裏でExcel立ち上げてそいつにCSV読み込ませる
ってのがスマートなやり方かもしれん。
0929デフォルトの名無しさん2016/09/20(火) 16:11:59.45ID:83nQEiQC
手作業でか? COM使えよ
0930デフォルトの名無しさん2016/09/20(火) 16:34:35.12ID:83nQEiQC
ところでさ
bitsetって複数ビットへのアクセスってできたっけか?
00001111 から
0001 のprvalueを得たり、
00000000 を
00011100 にするのに
bs(4,2) = 0b111; みたいなこと
0931デフォルトの名無しさん2016/09/20(火) 18:42:56.25ID:yRlSWmtK
今すぐN4606をダウンロードして20.9を読め
0932デフォルトの名無しさん2016/09/20(火) 19:03:07.64ID:ChLW8Xs7
C++標準についてですが
よく言われる「ゼロオーバーヘッド原則」はどのように守られているのでしょうか?
たとえば委員会はこの原則を明文化して守っていますか?
または原則が委員の思想や感情だけによって守られていますか?
今後のアップデートにより破られることはありますか?
D&Eには「思想も進化する」というような文が見られますが設計思想の変更プロセスはマニュアル化されているのでしょうか?
0933デフォルトの名無しさん2016/09/20(火) 20:52:23.19ID:DFwXwRkO
ゼロオーバーヘッドの意味するところはなんなのか知らんが、
仮想関数使った時点で間接参照になって現代のキャッシュマシンには厳しいオーバーヘッドになっていると思いますけどね。
0934デフォルトの名無しさん2016/09/20(火) 20:54:50.75ID:ChLW8Xs7
たぶんあなたは「ゼロオーバーヘッド原則」を何かわかっていないですね。
とにかく標準規格の委員会の設計方針のルールをしりたいのです
0935デフォルトの名無しさん2016/09/20(火) 20:58:56.89ID:k+TyjvZt
キタ━━━━(゚∀゚)━━━━!!
0936デフォルトの名無しさん2016/09/20(火) 21:04:19.73ID:obZzfy4A
そりゃ原則なんだから、原則守られるだろう。
原則Goto文が使われる事は絶対無いのと同じだ。
0937デフォルトの名無しさん2016/09/20(火) 21:10:11.42ID:3ENBAG3F
てかここで聞く質問じゃないだろ。直接委員会にメール送れよ。
0938デフォルトの名無しさん2016/09/20(火) 21:12:30.36ID:DFwXwRkO
>>937
知らないなら答えないでください
とかいいだすぞwwwwwww
0939デフォルトの名無しさん2016/09/20(火) 21:16:42.79ID:tBN6CcRw
よし教えてやろう
その言語機能を使わない人にとって(マシン語レベルで)余分な命令が生成されないこと
ただしそれは書いたコードに対する局所的なもので
スタートアップ時の処理のオーバーヘッドやワーキングセットの肥大化によるキャッシュヒット率低下ついては触れないのが常
0940デフォルトの名無しさん2016/09/20(火) 21:17:17.91ID:5hgqMPTY
あかんやつか
0941デフォルトの名無しさん2016/09/20(火) 21:57:22.02ID:83nQEiQC
>>931
それはともかく、おまえは氏ね
0942デフォルトの名無しさん2016/09/20(火) 21:59:44.26ID:26fGody7
>>932
明文化されたルールはないんじゃない?ルールにするメリットないからやらないだろうし。
0943デフォルトの名無しさん2016/09/20(火) 22:01:25.46ID:83nQEiQC
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと通信系が故障してしまい、現在位置を把握することができなくなってしまった。
機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と書いて答えてきた。機長はにっこりと笑って手を振り、副操縦士に言った。
「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港があるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか寄こさないからさ」
0944デフォルトの名無しさん2016/09/20(火) 22:15:01.88ID:ChLW8Xs7
>>942
そうですか。ありがとうございます。
0945デフォルトの名無しさん2016/09/20(火) 22:16:07.34ID:Em9B638f
>>932
そんな自縄自縛ルールを明示したらjavaみたいになってしまうだろ。
0946デフォルトの名無しさん2016/09/20(火) 22:26:54.29ID:A2psZARz
>>911
えっ
0947デフォルトの名無しさん2016/09/20(火) 22:51:13.68ID:9l0NUqqb
>>939
そんな機種依存の最適化を気にするのも広い意味でオーバーヘッドや
0948デフォルトの名無しさん2016/09/20(火) 22:54:34.83ID:wtHZC2ze
>>930
bitsetは改良したらもっと使われると思うんだけどなあ
boostみたいにサイズを動的に変えられるようにするのとバイト列として取り出せるようにして欲しい
0949デフォルトの名無しさん2016/09/20(火) 23:04:57.83ID:2u6BtGm8
>>946
バカにふれるな
0950デフォルトの名無しさん2016/09/20(火) 23:45:29.10ID:g6KAU3qV
ゼロヘア・アラウンド・オーバーヘッドの略
0951デフォルトの名無しさん2016/09/21(水) 01:01:45.84ID:vGo10QGu
>>932
江添に訊け
0952デフォルトの名無しさん2016/09/21(水) 06:53:20.55ID:t4AsfpX5
>>948
サイズを動的に変えるとなるとメモリーアロケーションが必要になるからなぁ
上限を 32bit/64bit に制限する手もあるけど中途半端感が拭えないし...
そもそも普通にビット演算で事足りるし
0953デフォルトの名無しさん2016/09/21(水) 09:03:47.17ID:K2D2Rq8+
>>932 は例の人物の再来って感じだなぁ。
前スレッド終盤から、このスレッド序盤で活動した人の口調(文体)に似ている。

自分が理解しているレベルにぴったり適合し、自分が理解できる説明をされないと
「そんなことは聞いていません」「もっと実のある回答をお願いします」などと
慇懃無礼な態度で読み手の神経を逆撫でする質問者がいたんだよ。


ちなみに >>932 の質問には答えられません。
0954デフォルトの名無しさん2016/09/21(水) 10:48:52.21ID:7D4j/v4w
シュトラウプ(うろ覚え)さんに直接メールすれば答えてくれそう。
そんな英語力は無いんだろうけど。
0955デフォルトの名無しさん2016/09/21(水) 14:04:05.66ID:6wq1WTZb
>>948 >>952
thx
なさそうってことはわかった
0956デフォルトの名無しさん2016/09/21(水) 20:33:55.57ID:mzpKxj3U
>>953
神経を逆撫でをしたレスには見えたが
回答者がアスペな回答をしたからだったと記憶しているが。
お前、その時の回答者か?
0957デフォルトの名無しさん2016/09/21(水) 20:59:57.83ID:6wq1WTZb
スルー検定中
0958デフォルトの名無しさん2016/09/21(水) 21:04:36.22ID:49I69gX0
ここもワッチョイ入れた方がいいと思うよ
C#の初心者スレとか酷かったのが大分良くなったし
0959デフォルトの名無しさん2016/09/21(水) 23:57:14.58ID:juClqO0A
>>951
メールしてみゆ
0960デフォルトの名無しさん2016/09/22(木) 00:08:42.02ID:G5ENlyOZ
諸事情と成り行きでコンストラクタがこんな風になったんだけど糞コードですか?
hoge(bool type) : base(type ? static_cast<base>(new a) : static_cast<base>(new b)){}
0961デフォルトの名無しさん2016/09/22(木) 00:19:01.74ID:RtaHiGLM
>>960
ポインタがstatic_cast<base>できるのか?
0962デフォルトの名無しさん2016/09/22(木) 00:21:49.80ID:G5ENlyOZ
>>961
ミス
正しくはstatic_cast<base*>
0963デフォルトの名無しさん2016/09/22(木) 00:46:02.45ID:Pt+3vwTk
実装はどうでもいいが
boolを取ってそれによってインスタンスの性質が(大きく?)変わるコンストラクタというのが
利用者視点からの一般論では糞っぽい設計だな
0964デフォルトの名無しさん2016/09/22(木) 00:54:34.74ID:6AgJgQbd
static_castしてる意味が解らん
0965デフォルトの名無しさん2016/09/22(木) 01:00:01.33ID:G5ENlyOZ
>>964
三項演算子だから型を合わせないといけない
0966デフォルトの名無しさん2016/09/22(木) 01:44:09.82ID:eab4XCGG
hogeにcreate_aとcreate_bみたいなstaticメソッド作って、ユーザーコード側で参考演算子書かせりゃいいのに
馬鹿すぎてそんなことも思いつかないなら、今すぐコプログラマーやめろ(´;ω;`)
0967デフォルトの名無しさん2016/09/22(木) 01:59:14.64ID:sh3eyHdy
きっと何かのテンプレートか何かに渡すとかで
コンストラクタがあの形じゃなきゃダメな制約が云々でしょ
0968デフォルトの名無しさん2016/09/22(木) 02:01:04.64ID:G5ENlyOZ
>>966
これが全く良くないのは分かってるがやりたくなさすぎる仕事だったから横着しすぎた感はある
0969デフォルトの名無しさん2016/09/22(木) 03:01:20.41ID:7BuONNwf
>>145
S只
ST只
STL只

貞子
0970デフォルトの名無しさん2016/09/22(木) 04:45:30.88ID:uum3cLOt
new bって初心者っぽい
0971デフォルトの名無しさん2016/09/22(木) 05:28:33.71ID:gyLxLatL
>>966
参考にします
0972デフォルトの名無しさん2016/09/22(木) 07:30:27.01ID:RG/iP2c6
ファクトリーメソッドが要るとみんなは気付いているが
政治的問題でなし崩しになっていると見た
0973デフォルトの名無しさん2016/09/22(木) 07:40:14.43ID:vdVnk2cw
ファクトリーメソッドでいい引数の渡し方ってある?っていうか引数の設計?
パラメータばっか増えてうまくまとめられない。
0974デフォルトの名無しさん2016/09/22(木) 14:13:51.56ID:7wkfE+LH
>>973
条件がわからんけどbuilderパターン使うとか
0975デフォルトの名無しさん2016/09/22(木) 14:39:48.97ID:sh3eyHdy
俺も条件がわからんが
テンプレートのパーフェクトフォワードが使えるかもしれないね
0976デフォルトの名無しさん2016/09/22(木) 23:49:28.05ID:vdVnk2cw
サンキュー。
0977デフォルトの名無しさん2016/09/23(金) 02:38:31.47ID:FrbFFvPo
初めから読んでみたんですが、
このスレ恐い人もいますね。
0978デフォルトの名無しさん2016/09/23(金) 13:12:24.83ID:z2QCychJ
おっかない人が鉞持って茂みに潜んでることもあるので覚悟して臨んで
0979デフォルトの名無しさん2016/09/23(金) 13:37:45.42ID:ircl/elV
C++やる人は怖いのですね
0980デフォルトの名無しさん2016/09/23(金) 15:04:30.06ID:z2QCychJ
C++をやったから怖くなったのか、それとも怖い人はC++に魅入られるのか、それともその両方なのか、それはまだ判りません
0981デフォルトの名無しさん2016/09/23(金) 16:12:15.84ID:1AYxo37g
std::array<int,3> ia = {1,2,3};
なんでいちいちサイズをしていなきゃいけないの?
コンパイラは右式からサイズを知れるはずだよね
0982デフォルトの名無しさん2016/09/23(金) 16:43:56.15ID:DI5cYQNa
arrayがクラステンプレートだからだよ
テンプレート実引数を推定できるのは関数テンプレートだけ
0983デフォルトの名無しさん2016/09/23(金) 16:50:29.51ID:Z6rdhOh4
もともと生配列なんて狭いスコープ内に閉じた使い方しかしてなかったし、あえてstd::array に変える気が起こらん。
0984デフォルトの名無しさん2016/09/23(金) 16:56:36.61ID:SmlWzTAW
arrayってoparator[]が境界チェック無いとか困る〜
0985デフォルトの名無しさん2016/09/23(金) 17:02:31.08ID:1AYxo37g
>>982
そう・・・・
使い物にならんな、標準なんかにするなよw
0986デフォルトの名無しさん2016/09/23(金) 17:04:21.59ID:k0FhbiHl
サイズとか取れて便利じゃん。俺ベクタしか使ってないけど。
0987デフォルトの名無しさん2016/09/23(金) 18:19:30.71ID:z2QCychJ
"std::array<int> ia = {1,2,3}" という文字列を読んで、括弧内の要素数を数えて
std::array<int,3> ia = {1,2,3}として書き換えてくれるテンプレートメタプログラミングすればいんじゃね?
0988デフォルトの名無しさん2016/09/23(金) 18:28:49.47ID:Z6rdhOh4
template<std::size_t N> の文脈の中でだったら不要だしな
0989デフォルトの名無しさん2016/09/23(金) 18:41:44.36ID:jjS354wW
配列をstd::arrayに置き換えなくてはならなくなった。
と被害妄想してグチを2chで垂れるのは間違いなく人生負け組
0990デフォルトの名無しさん2016/09/23(金) 19:45:39.19ID:k/GEXWfz
新しいコンパイラならstd::experimental::make_arrayが使えるんでねぇの?

http://en.cppreference.com/w/cpp/experimental/make_array
0991デフォルトの名無しさん2016/09/23(金) 20:07:45.67ID:1AYxo37g
ベタに配列でよくね?
0992デフォルトの名無しさん2016/09/23(金) 20:08:53.66ID:1AYxo37g
>>989
2ちゃんに居る時点で負けだろw
0993デフォルトの名無しさん2016/09/23(金) 20:23:26.18ID:Z6rdhOh4
algorithmにbeginとendを渡すときでも生配列でいいしな
0994デフォルトの名無しさん2016/09/23(金) 20:26:55.96ID:x7wdola9
シンタックスシュガー
0995デフォルトの名無しさん2016/09/23(金) 21:01:07.45ID:FB5yu9xq
サイズ欲しい時に変数用意したり、演算したりするのが面倒だし、余分な処理になるからじゃないの?
std::arrayはサイズ変数を保持していないし、演算もしていないし
at()使えば範囲チェックしてくれるし、生配列にも直接アクセスできるし
凄く便利だと思うけどな
0996デフォルトの名無しさん2016/09/23(金) 21:20:41.97ID:kJ5RCJcw
超薄型コンドームがでて、感覚上生挿入と変わらないことが統計学的に証明されていても、気持ちの問題だからと生を求める人がいる
0997デフォルトの名無しさん2016/09/23(金) 21:39:11.65ID:nEqelPbM
はい
0998デフォルトの名無しさん2016/09/23(金) 21:39:50.82ID:tPpdE/S0
難しいなぁ
0999デフォルトの名無しさん2016/09/23(金) 21:49:35.34ID:pyQwxOFM
arrayのメリット:コピーができる
1000デフォルトの名無しさん2016/09/23(金) 21:59:45.45ID:x7wdola9
std::copy
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 41日 10時間 35分 0秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。