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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (オッペケ Src9-xdvH)2016/09/23(金) 22:11:31.54ID:jVnHsyF/r
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

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

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

このスレもよろしくね。
【初心者歓迎】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/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0002デフォルトの名無しさん (オッペケ Src9-xdvH)2016/09/23(金) 22:12:45.08ID:jVnHsyF/r
---- テンプレ ここまで ----
0003デフォルトの名無しさん (アウアウ Sa61-mh4Y)2016/09/24(土) 00:32:58.31ID:dvCdgRQpa
ここか
0004デフォルトの名無しさん (ワッチョイ 72a6-5q76)2016/09/24(土) 01:19:54.73ID:h95cfdWM0
STLつかうと一気にうむごくろう。
---- テンプレ ここまで ----
0005デフォルトの名無しさん (ワッチョイ 40d9-Uivz)2016/09/24(土) 05:54:27.86ID:zfTFd20o0
STLつかうと一気に実行ファイルサイズが10倍に?!

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

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

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

#include <stdafx.h>
後死ね。

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

---- テンプレ ここまで ----
0006デフォルトの名無しさん (ワッチョイ 40cf-xjL4)2016/09/24(土) 06:05:43.45ID:QKDw7Nj70
このテンプレもう要らなくね?いい加減に話が古過ぎんだろ。

---- テンプレ ここまで ----
0007デフォルトの名無しさん (JP 0Had-VERF)2016/09/24(土) 06:10:41.69ID:oYgGfkv1H
#include <stdio.h> はおまじないなので先頭に書きます

から全く進歩していない
0008デフォルトの名無しさん (ワッチョイ 8063-xdvH)2016/09/24(土) 08:44:42.44ID:a/wjW3kE0
ここまで俺の自演

---- テンプレ ここまで ----
0009デフォルトの名無しさん (ワッチョイ be23-xdvH)2016/09/24(土) 17:46:53.06ID:g/gfVTwZ0
乙
0010デフォルトの名無しさん (ワッチョイ 5902-5q76)2016/09/24(土) 22:42:37.52ID:ulkKW3Sf0
戻り値にpairとかtupleを使うのってありか?
0011デフォルトの名無しさん (ワッチョイ 351e-xdvH)2016/09/24(土) 23:48:35.89ID:BMxdtalH0
>>10
ありだけど、構造体にしたほうが可読性がよい場合が多い
std::getやsrd::tieで名前つきの変数に入れたくなったらその可能性が高い

自分の場合は、ソース上で2、3回しか出てこないような型で構造体の定義を書くのが面倒なときにだけ使ってる
0012デフォルトの名無しさん (ワッチョイ fcd5-e7L+)2016/09/25(日) 11:07:32.99ID:AOmkxWvr0
>>10
map::findの戻りなんか、pair*やん
0013デフォルトの名無しさん (アウアウ Sa61-mh4Y)2016/09/25(日) 11:56:20.06ID:HSyNyUuba
持続可能な開発
三ヶ月後に読んでウンザリしないコードを心掛けよう。君はいつまでも若くはない
0014デフォルトの名無しさん (ワッチョイ 1c41-UBrL)2016/09/26(月) 22:12:30.15ID:TukXLw2X0
struct A{};
void test(A a){}

test(A());

ってデフォルトコンストラクタの後、コピーコンストラクタでコピーされると思っていますが、
コピーコンストラクタが動いていないようです。

なぜですか?

A a;
test(a);
だとコピーコンストラクタは動くようです。
0015デフォルトの名無しさん (ワッチョイ d77b-FR2x)2016/09/26(月) 22:33:57.13ID:NFbeC3Xr0
コピーを省略されて困ることがないから
0016デフォルトの名無しさん (ワッチョイ 1c41-UBrL)2016/09/26(月) 22:46:56.23ID:TukXLw2X0
コピーが省略されたら、test内で期待するaではなくなりますよね
0017デフォルトの名無しさん (ワッチョイ d77b-FR2x)2016/09/26(月) 22:58:37.95ID:NFbeC3Xr0
>>16
なんで?
0018デフォルトの名無しさん (ワッチョイ fcd5-e7L+)2016/09/26(月) 23:05:59.19ID:KAVsvRr00
>>14
試しにコピコンをprivateかdeleteにしてみな
0019デフォルトの名無しさん (ワッチョイ 72a6-5q76)2016/09/26(月) 23:06:51.29ID:4atc1WGd0
どうせコピコンに変な副作用でも仕込んでるんだろ
0020デフォルトの名無しさん (ワッチョイ fc7b-5q76)2016/09/26(月) 23:18:48.42ID:mUCnv96s0
賢いコンパイラですね
0021デフォルトの名無しさん (ワッチョイ 1c41-UBrL)2016/09/26(月) 23:32:46.31ID:TukXLw2X0
質問を質問でかえす・・・
もう結構です。
そういうものなんですね
0022デフォルトの名無しさん (ワッチョイ 326c-OfTA)2016/09/26(月) 23:38:21.06ID:P16QaBn30
コピコンと2chの両方が知れて得したな
0023デフォルトの名無しさん (ワッチョイ d77b-FR2x)2016/09/26(月) 23:52:23.90ID:NFbeC3Xr0
質問に質問で返すのが悪いと思ってんのが子供っぽいな
0024デフォルトの名無しさん (ワッチョイ fc7b-g8+I)2016/09/27(火) 00:13:50.83ID:JUhPFI9j0
例のアカンやつだから
0025デフォルトの名無しさん (ワッチョイ 3d30-Q/JI)2016/09/27(火) 00:17:36.86ID:XrzlD1Yg0
先行実装されたc++17で導入(拡張)される予定のcopy elisionが働いて
実装上のコピーが省略されるから
0026デフォルトの名無しさん (ワッチョイ fcd5-e7L+)2016/09/27(火) 00:23:21.18ID:UPtD8FZz0
>>21
質問で返してねえだろ
バカかてめえ
0027デフォルトの名無しさん (ワッチョイ 51bf-xdvH)2016/09/27(火) 00:28:40.49ID:yUicpqcl0
みんなわかってきててワロタ
0028デフォルトの名無しさん (ワッチョイ 5902-5q76)2016/09/27(火) 00:50:13.97ID:e17Ws0RN0
副作用があってもコピコンとデストラクタは省略してもいいことになってる
0029デフォルトの名無しさん (ワッチョイ 1c41-UBrL)2016/09/27(火) 00:52:01.70ID:oDIuywIh0
>>26
キチガイ?
0030デフォルトの名無しさん (アウアウ Sa61-mh4Y)2016/09/27(火) 05:08:07.51ID:ebUMm1Nwa
>>21
テストなら0点だけど、ここは答案用紙ではないので(⌒,_ゝ⌒)
0031デフォルトの名無しさん (ワッチョイ 8063-xdvH)2016/09/27(火) 07:11:37.71ID:e9yfbY+O0
>>14
よし教えてやろう
コンパイラーが気分でコピーコンストラクトを省略して良いことに規格でなっているからだ。
例え実行結果が変わっても。
つまり「そういうものなんですね」という理解が正しい
0032デフォルトの名無しさん (スッップ Sdb8-xdvH)2016/09/27(火) 14:20:37.33ID:Gbo2EFB7d
認知の歪みが発生しています
0033デフォルトの名無しさん (アウアウ Sa61-mh4Y)2016/09/27(火) 15:00:23.95ID:nYSsADema
風が語りかけます
0034デフォルトの名無しさん (ワッチョイ fc7b-5q76)2016/09/27(火) 15:05:14.75ID:2KXCoLj+0
C++Primer5thにthreadの記述なし どうして?
0035デフォルトの名無しさん (アウアウ Sa61-mh4Y)2016/09/27(火) 15:36:00.31ID:nYSsADema
良かったprimer買わなくて
0036デフォルトの名無しさん (ワッチョイ 5902-5q76)2016/09/27(火) 18:52:19.68ID:e17Ws0RN0
これ以上重量を増やすとガチで人が死ぬから
0037デフォルトの名無しさん (ワッチョイ fc7b-5q76)2016/09/27(火) 20:29:28.05ID:2KXCoLj+0
そか boost thread 使えって事ですね
0038デフォルトの名無しさん (ワッチョイ 5f7b-xdvH)2016/09/28(水) 21:15:20.27ID:LXUmioOa0
Googleのgtestを使ったことある人いないかな?
テストケースで助けてほしい
0039デフォルトの名無しさん (ワッチョイ 1c42-xdvH)2016/09/28(水) 22:02:27.49ID:mDfkzpcf0
会社でも使いまくってますが
0040デフォルトの名無しさん (ワッチョイ 1cba-5q76)2016/09/28(水) 22:40:13.85ID:oUPJWNl30
Clangスレが無いのが不思議だな。誰も使ってないのかな?
LLVMスレも落ちちゃったし。
0041デフォルトの名無しさん (ワッチョイ 5902-5q76)2016/09/28(水) 23:03:10.82ID:dHT3BllA0
何でわざわざ2ちゃんで話さないといけないんだ
0042デフォルトの名無しさん (アウアウ Sa61-mh4Y)2016/09/28(水) 23:03:17.94ID:BVBInYIba
銀の弾丸は無かった
0043デフォルトの名無しさん (ワッチョイ 5f7b-xdvH)2016/09/28(水) 23:16:33.88ID:LXUmioOa0
>>39
助けてくれんか
testpで作ったテスト10個の内から指定した1個を行うとかどうやれば
あとあれってどういう順番で実行されるのかも知りたい
0044デフォルトの名無しさん (ワッチョイ 4742-rzru)2016/09/29(木) 07:05:45.69ID:aaMSPz5Y0
--helpで見れるだろ、てかチートシートに全部載ってる
0045デフォルトの名無しさん (スプッッ Sd0f-rzru)2016/09/29(木) 07:39:44.75ID:8neQie4yd
>>44
俺が使いこなせていないだけか
これだけ教えてほしいのだけど
ケースネームとテストネームの違いってなんなんですか
理解が追い付いていない
0046デフォルトの名無しさん (ワッチョイ 0300-GjIB)2016/09/29(木) 07:58:13.77ID:x3gAV2zd0
>>45
テストを複数まとめたものがケース。
0047デフォルトの名無しさん (オッペケ Srb7-rzru)2016/09/29(木) 12:10:58.08ID:J2jMuuFmr
まさに概念を理解せずに
形だけしか見れない奴の説明だな
0048デフォルトの名無しさん (ワッチョイ c7d5-9qEq)2016/09/29(木) 21:33:43.72ID:/oC7ulNx0
switch case
0049デフォルトの名無しさん (ドコグロ MMef-rzru)2016/09/29(木) 22:38:56.07ID:SDSapxWlM
>>47
概念もなにもそう言う定義だし

1つの テストケース には,1つまたは複数のテストが含まれます.テスト対象コードの構造を反映するように,テストをテストケースとしてグループ化してください.
http://opencv.jp/googletestdocs/primer.html
0050デフォルトの名無しさん (ドコグロ MM3f-rzru)2016/09/29(木) 22:47:24.58ID:CQ89TA0ZM
ファイル全体にnamespaceで名前空間を設定してるとき、
C言語風のstatic関数(ファイル内だけにスコープがあるやつ)を書いた場合、
そいつの名前空間って何になるんでしょうか?
具体的には、
namespace hoge
{
typedef struct aaa {
・
} AAA;

static void func1(AAA struct_aaa)
{
・
}

}
としたときに、func1の引数はhoge::AAAとしないとコンパイルエラーになった
なので名前空間が違うのかな?と思って
(実際には、structはincludeファイルで定義)

C++ではそういうstaticの使い方は非推奨、というのは調べてて知った
0051デフォルトの名無しさん (ドコグロ MM3f-rzru)2016/09/29(木) 22:53:49.08ID:CQ89TA0ZM
>>50

忘れてた
環境はGCCだったはず…
バージョンは会社いかないとわからん
0052デフォルトの名無しさん (ブーイモ MM8f-rzru)2016/09/29(木) 22:54:00.65ID:3CQv2ksnM
>>50
非推奨ってだれが言ってたの?
hogeが必要なのはusing namespaceがないか、同じ名前がどこかにいたのでは?
0053デフォルトの名無しさん (ワッチョイ 1b30-5C+Q)2016/09/30(金) 00:10:45.68ID:DBVF1aLW0
いくつかの意味でなにを言ってるんだ
その具体的な形ではエラーにはならないしstatic関連は何をどう調べたんだって話
ttp://ideone.com/Sa349E
0054デフォルトの名無しさん (ワッチョイ 437b-rzru)2016/09/30(金) 00:13:56.01ID:cPrmJt770
>>46
なんとなく理解できたよ
ありがとう

class A {
 int x
int y
A(int a, int b): x(a),y(b){}
}

A aaa[]= {
 A(1,3),
A(2,2),.....
}

こんな感じで格納したaaaの配列数ってどうやって取れるだろうか
配列数が無理でも配列の分だけ回せれば良いんだけども
005553 (ワッチョイ 1b30-5C+Q)2016/09/30(金) 00:21:59.98ID:DBVF1aLW0
ああstaticの方はunnamed namespace使えって話か?
0056デフォルトの名無しさん (ドコグロ MM3f-rzru)2016/09/30(金) 00:52:30.83ID:8iORTil3M
>>52-53

返答ありがとう
実際のコードちゃんと確認して書き直すわ
structは遠いところにいて、::がいくつもついているのを、
ヘッダーでtypedefして自分のモジュールの名前空間に持ってきてる感じだったわ
確か
typedef hoge::AAA zzz::yyy::xxx::AAA;
てな感じ

>>55

そういうこと
「非推奨」と書いてあったのは↓ここ
https://msdn.microsoft.com/ja-jp/library/cc440187(v=vs.71).aspx
0057デフォルトの名無しさん (ワッチョイ 4741-UP9f)2016/10/02(日) 10:13:42.30ID:Nn54wATW0
いまいちラクダ式のどこが楽なのか分からん。
関数にすればいいだけ
0058デフォルトの名無しさん (ワッチョイ a37b-T4vf)2016/10/02(日) 10:21:24.99ID:4LOtpf4Z0
関数定義オブジェクト書かない奴にとってはそうかもな
0059デフォルトの名無しさん (ワッチョイ 4741-UP9f)2016/10/02(日) 10:23:58.75ID:Nn54wATW0
その関数定義オブジェクトとやらも関数で間に合うでしょ
0060デフォルトの名無しさん (ワッチョイ 170b-rzru)2016/10/02(日) 10:28:30.32ID:jkLbSgMw0
まずただの関数じゃキャプチャできないし、ラムダのが可読性が上がることも多いと思うけど
関数として分離してコード内の物理的な距離が離れると見にくくなる場合も多いじゃん
0061デフォルトの名無しさん (ワッチョイ b7cb-RPp1)2016/10/02(日) 10:30:58.48ID:aylA7Dbn0
関数よりラムダ式にすればいいじゃん
0062デフォルトの名無しさん (ワッチョイ a37b-T4vf)2016/10/02(日) 10:33:41.59ID:4LOtpf4Z0
関数オブジェクト
定義は予測変換のミスで入っただけだから気にすんな

関数オブジェクトが関数で間に合うってそういう人にとってはそうだろうねとしか。
そうじゃない人にとってはコード量が全然違う
0063デフォルトの名無しさん (ワッチョイ 7fa6-RPp1)2016/10/02(日) 11:04:34.81ID:Dc4CSNN90
関数または関数オブジェクトとして名前がついていて欲しいかそうじゃないか。
そこでしか使わないものを離れた場所に書くのはいやだが、std::plus の類をラムダ式で書くのはかったるい、
0064デフォルトの名無しさん (ワッチョイ efcc-rzru)2016/10/02(日) 12:35:40.14ID:YnETcXXX0
おまいらはキャメル派?スネイク派?
0065デフォルトの名無しさん (ワッチョイ efcc-rzru)2016/10/02(日) 12:37:39.86ID:YnETcXXX0
>>57
君はスマートオブジェクトについてもう少し学習した方が良いようだね
0066デフォルトの名無しさん (ワッチョイ 4742-rzru)2016/10/02(日) 12:39:17.80ID:Ygmk41ku0
>>59
スネーク
キャメル使ってるやつなんかいるのか?
0067デフォルトの名無しさん (ワッチョイ c37b-w7Og)2016/10/02(日) 12:58:03.34ID:vJd4d8QB0
>>57はラクダ式(意味不明)のことを言ってるのであって。。。
0068デフォルトの名無しさん (アウアウ Sa3f-RPp1)2016/10/02(日) 13:07:17.85ID:xQIOOZGBa
ラクダは使い道がよくわかりません。
関数オブジェクトもそうなんですが。
0069デフォルトの名無しさん (ワッチョイ ef3c-rzru)2016/10/02(日) 13:18:43.49ID:I2UZY42b0
>>64
パスカル派(アッパーキャメルケース)
0070デフォルトの名無しさん (ワッチョイ 4b02-RPp1)2016/10/02(日) 14:09:21.31ID:qO/j016b0
読む速度はスネークが最速だという結論がでてるから、スネーク以外を使う奴はわざわざ低性能な記法を使っている
そもそも英文でスペースを無くすのは可読性を大きく損なわせている
0071デフォルトの名無しさん (ワッチョイ 4741-UP9f)2016/10/02(日) 15:13:25.88ID:Nn54wATW0
>>68
perlではよく使われてたよ
0072デフォルトの名無しさん (ワッチョイ c37b-w7Og)2016/10/02(日) 15:17:44.53ID:vJd4d8QB0
砂漠でラクダがどんだけ役に立つのか知らんのか?
IT業界は砂漠みたんなもんやで
0073デフォルトの名無しさん (ワッチョイ dbdc-6Qeh)2016/10/02(日) 16:41:25.04ID:U2lDH2Tz0
>>70
「読む速度はスネークが最速だという結論がでてる」
これの情報元を教えてくれないか。

俺も読みやすさなら下線での連結だと感じるけど
そもそも英語話者じゃないし、個人差もありそうだし、
ちゃんとした研究なら気兼ねなく人に勧められるからね。
0074デフォルトの名無しさん (スフッ Sd8f-7Sel)2016/10/02(日) 18:17:51.06ID:zSpppzAcd
Ocamlのラクダ式はなかなかいいよね
0075デフォルトの名無しさん (ワッチョイ 4fc0-iAeO)2016/10/02(日) 21:35:24.44ID:PS2+rgxk0
ラクダだけに議論が不毛の砂漠
0076デフォルトの名無しさん (アウアウ Sa77-kJmW)2016/10/02(日) 22:22:15.29ID:cZ7NCdZEa
ドヤ顔が透けて見えるぜ
0077デフォルトの名無しさん (ワッチョイ c77b-o1nZ)2016/10/02(日) 23:33:11.68ID:4jjlkY0X0
お客様の中に関西人の方、おりませんか
ツッコミが不足しています
0078デフォルトの名無しさん (ワッチョイ 1763-rzru)2016/10/02(日) 23:53:00.01ID:arJtaGW90
加齢臭漂うジョークは要らない
30歳以上はどうぞお帰りください
0079デフォルトの名無しさん (ワッチョイ 1763-rzru)2016/10/03(月) 00:00:14.90ID:eL0UbW2l0
いつから>>70はシンボル名が英語だけだと思いこんでいた
0080デフォルトの名無しさん (アウアウ Sa77-kJmW)2016/10/03(月) 00:23:40.98ID:mwBLg7E9a
>>78
差別的発言
0081デフォルトの名無しさん (ワッチョイ f35e-rzru)2016/10/03(月) 01:40:48.22ID:4zOL+ykU0
こっちもカオスやなー
0082デフォルトの名無しさん (ワッチョイ 7fa6-rzru)2016/10/03(月) 01:58:50.90ID:9ZADvxL50
クラスとかの構造体はキャメル、関数とかメソッドとかはスネーク。
キャメルもドイツ語的で嫌いじゃないし。
0083デフォルトの名無しさん (ドコグロ MM3f-rzru)2016/10/03(月) 06:57:55.20ID:K13Pj3xVM
>>79
漢字とかも使えるのは知ってるが C++ では使ったことないなぁ
DB の列名とか VBA ならあるけど
0084デフォルトの名無しさん (ワッチョイ db82-rzru)2016/10/03(月) 07:46:28.13ID:qX5/XbEo0
>>81
カオスってなんですか?
0085デフォルトの名無しさん (スプッッ Sd8f-rzru)2016/10/03(月) 09:14:43.11ID:laRAHHeRd
カオスの素顔
0086デフォルトの名無しさん (ササクッテロ Spb7-7Sel)2016/10/03(月) 12:26:47.89ID:T/ur11Zzp
1ファイル1クラスで実装するなら
クラスをModel、View、Controllerとして
Model.cpp View.cpp Controller.cpp <-ステキやん?
0087デフォルトの名無しさん (ワッチョイ a3dc-rzru)2016/10/03(月) 20:04:29.12ID:zP5qReyi0
>>84
柑橘類やで
醤油と混ぜて調味料にするとおいしいよ
0088デフォルトの名無しさん (ワッチョイ dbdc-6Qeh)2016/10/03(月) 22:17:01.30ID:PKp4Jig20
「ハッキング」から「今晩のカオス」までを手広くカバーする...
0089デフォルトの名無しさん (ワッチョイ c733-rzru)2016/10/03(月) 23:21:14.82ID:SoQw5BFw0
ノリのいいお前らって…好きやわー!!!
0090デフォルトの名無しさん (イモイモ Seaf-6DZd)2016/10/03(月) 23:43:48.90ID:ncoe/nrie
>>10

Go書いてたときpair多用してた自分思い出すわ
0091デフォルトの名無しさん (ワッチョイ 4741-UP9f)2016/10/04(火) 09:51:21.14ID:1CcgPSG20
>>86
しんすけ乙
0092デフォルトの名無しさん (アウアウ Sa77-kJmW)2016/10/04(火) 17:14:14.39ID:sc92s5qma
一文字目が大文字のファイル名ってなんかIQ低そうなイメージ
0093デフォルトの名無しさん (ワッチョイ 1763-rzru)2016/10/04(火) 17:16:24.32ID:PvvXDjpC0
IQ低そう
という発言が昭和時代の老人のアロマ漂う
0094デフォルトの名無しさん (ワッチョイ 4741-ETlQ)2016/10/04(火) 18:32:22.77ID:1CcgPSG20
昭和なんて年号使うところに老人のアロマ漂う
0095デフォルトの名無しさん (スプッッ Sd8f-rzru)2016/10/04(火) 19:02:11.42ID:3QsqaDAid
ファイル名なんて大文字だろうが漢字だろうがスペースが入ってようが
0096デフォルトの名無しさん (ワッチョイ 6f6c-9qEq)2016/10/04(火) 20:10:04.71ID:+AMRjpjj0
>>92
おまえ常人離れした連想力してるな
統合失調症か?
0097デフォルトの名無しさん (ワッチョイ 1763-rzru)2016/10/04(火) 22:08:34.98ID:PvvXDjpC0
>>86はクラス名との対比で話していたはずだが、
クラス名には半角スペースはもちろん、全角スペースの使用も禁止されている
0098デフォルトの名無しさん (ワッチョイ 4b02-RPp1)2016/10/04(火) 23:19:54.13ID:mNMPWjTA0
スペースのあるファイルはコマンド打ちづらいからちょっとな
0099デフォルトの名無しさん (ワッチョイ 4b4e-9qEq)2016/10/05(水) 10:18:35.93ID:iuMS4cCB0
long long
0100デフォルトの名無しさん (ドコグロ MMef-rzru)2016/10/05(水) 11:35:38.06ID:X1U9H2AAM
全角スペースも禁止とは初めて聞いたわ
クラスのファイル名を2バイト文字にしようと思ったことないけど
0101デフォルトの名無しさん (ワッチョイ 6f73-9qEq)2016/10/05(水) 17:05:06.67ID:xkY78QYw0
俺も初めて聞いたが
まあそうだろうな
妥当な決定だ
0102デフォルトの名無しさん (ワッチョイ 1763-rzru)2016/10/05(水) 21:46:51.69ID:SIzgJBAg0
2バイト文字
という言葉がカレーのアロマ漂う
0103デフォルトの名無しさん (スフッ Sd8f-rzru)2016/10/05(水) 22:27:35.09ID:rdzCPWMMd
旨そうじゃないか
カレー臭
0104デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/06(木) 01:00:43.56ID:90ftWcNZ0
デフォルトコンストラクタしか無いクラス型のメンバって初期化リストで初期化する意味ある?
0105デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/06(木) 02:58:56.07ID:q3HZYpQ2a
初期値が決まってるにしても、生成してから代入するより、初めからその値で生誕する方が僅かに速い
0106デフォルトの名無しさん (ワッチョイ 6b7b-xaNP)2016/10/06(木) 04:31:27.12ID:E7xolks70
クラス配列の要素数の取得はサイズオブ演算子では無理なのか?
0107デフォルトの名無しさん (ワッチョイ 97ca-TInN)2016/10/06(木) 07:02:14.56ID:oqhu9BgM0
なぜ、そう思ったんだ?
0108デフォルトの名無しさん (ワッチョイ 98cb-xaNP)2016/10/06(木) 07:04:47.63ID:i8I4ob7f0
>>104
デフォルト初期化か値初期化かの違いがでる
0109デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/06(木) 08:01:21.94ID:UZIumrjLr
>>104
そもそもC++の言語の文法上、不可能ではないのか
0110デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/06(木) 08:02:33.62ID:UZIumrjLr
>>107
>54に誰も答えなかったからだろ
0111デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/06(木) 08:22:23.27ID:gQ9THITDd
>>110
えっ、普通にbeginとendじゃダメなのか?
0112デフォルトの名無しさん (ワッチョイ 30cf-DaWR)2016/10/06(木) 10:51:54.15ID:y9Jl17e50
>>104
こういうことで合ってる?

class A { A(); }; // デフォルトコンストラクタしかない
class B {
A x; // クラス型のメンバ
B() : x() {} // って初期化リストで初期化する意味ある?
};
0113デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/06(木) 12:17:16.63ID:q/bNt0HMd
>>110
出来たわ

sleepするとメモリアクセス違反でプログラム終了するバグにあたったやついない?
0114デフォルトの名無しさん (ワッチョイ 97ca-TInN)2016/10/06(木) 13:02:02.16ID:oqhu9BgM0
>>110
ああsizeof aaaで要素数が取れないと騒ぐ>>54がスルーされた件ね
sizeof aaa / sizeof aaa[0]で取れるって言ってあげないとまだわからないのかな
0115デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/06(木) 13:09:08.77ID:gQ9THITDd
既にバッドノウハウであることもな
0116デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/06(木) 13:35:45.16ID:3YDJ1rTL0
C++ではテンプレートの自動推論使うよな
0117デフォルトの名無しさん (ワッチョイ 97ca-TInN)2016/10/06(木) 13:48:40.15ID:oqhu9BgM0
色々ある方法の1つ
それだけのことだ
0118デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/06(木) 14:09:45.33ID:3YDJ1rTL0
まあVCなら_countofマクロ使うし他の環境なら同等のものを実装だな
http://stackoverflow.com/questions/4415530/equivalents-to-msvcs-countof-in-other-compilers
0119デフォルトの名無しさん (ワッチョイ b1dc-lo/1)2016/10/06(木) 17:42:56.63ID:5ou6x1p80
現在のC++シーンにおける「配列の要素数の取得」って
どういう書き方がトレンディなの?

sizeof同士の割り算はほぼ確実に使える良い方法だと思うけど、
>>115 によると今では使うべきでない方法らしいし。
0120デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/06(木) 18:44:22.54ID:q3HZYpQ2a
C++は自由すぎて変な癖つきやすいから、標準的手法を学ぼう。我流は危ない(・ิω・ิ)
0121デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/06(木) 19:25:55.44ID:l7pGEQUF0
>>115
では貴様の手本を示せ
0122デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/06(木) 19:54:42.99ID:waO4BNXl0
どうせ出てくる案は決まっているのにそんなに息巻かなくても
0123デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/06(木) 20:57:44.09ID:90ftWcNZ0
>>112
そういうこと

classA{
  Hoge hoge;
  Hage hage;
  Hige hige;

  A() : hoge(), hage(), hige(){} ←こうすることに意味はあるのか
0124デフォルトの名無しさん (ワッチョイ 98cb-xaNP)2016/10/06(木) 21:03:29.31ID:i8I4ob7f0
誰がハゲやねん
0125デフォルトの名無しさん (ワッチョイ 9ec0-mVVp)2016/10/06(木) 21:13:25.48ID:WlcexWUS0
ヒゲは濃いで
0126デフォルトの名無しさん (ワッチョイ 0130-VrNr)2016/10/06(木) 21:29:14.07ID:exy+3OWQ0
>>119
std::size
0127デフォルトの名無しさん (ワッチョイ 97ca-TInN)2016/10/06(木) 21:38:39.25ID:oqhu9BgM0
>>119
sizeof aaa[0] != 0 が保証されているわけだが
0128デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/06(木) 21:55:30.61ID:waO4BNXl0
>>123
それは初期化リストとは呼ばない
>>126
規格に入ってから出直せ
>>127
いきなり関係無いことを言い出してどうした
0129デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/06(木) 22:33:24.53ID:q3HZYpQ2a
あ!この感じ…
0130デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/06(木) 22:45:34.28ID:3YDJ1rTL0
ハハハ
0131デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 08:52:23.24ID:xpO0i6Cz0
>>128
関係がわからないと正直に言え
0132デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/07(金) 08:56:22.27ID:SRvWi+CW0
>>131
関係ないよね?
0133デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 09:46:50.39ID:xpO0i6Cz0
関係ある
おまえがわからないだけだ
アフォ
0134デフォルトの名無しさん (ワッチョイ 065b-yd9a)2016/10/07(金) 12:55:06.67ID:o9A68G/U0
基本的にスネークタイプのが好きなんだけど、
アンダーバーの出し方が面倒だからキャメルにしてる。

キーボードの配列を考えたやつもアンダーバーが多用されるようになるとは
思ってなかっただろうな
0135デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/07(金) 13:14:15.48ID:2+nHb+w90
>>134
アンダーバー面倒か?変わったキーボード使ってるとか?
0136デフォルトの名無しさん (ドコグロ MM69-xaNP)2016/10/07(金) 13:16:20.93ID:wrU2odZCM
元々タイプライターの配列だからな
0137デフォルトの名無しさん (ワッチョイ 30cf-lsIp)2016/10/07(金) 13:47:06.30ID:X7obXiZe0
>>133
おれも関係がわからないのでおしえてください。
0138デフォルトの名無しさん (スップ Sdf8-xaNP)2016/10/07(金) 14:33:49.28ID:dGQ+oeUsd
シングルトン含めグローバル変数の類いを使わずに済ます方法って何がありますか?
立ち上げ時にマスタ系のデータを読んでオブジェクトのコレクションを構築。
日中はトランザクションデータを読んで計算してその結果を表示。
後者のデータはその都度使い捨てだけど、コレクションの方は日中の変化なしなのでずっと保持してます。
0139デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 17:27:51.76ID:xpO0i6Cz0
>>137
>>119の「ほぼ」に突っ込んだんだよ
あーあアフォの世話は疲れるぜ
0140デフォルトの名無しさん (スフッ Sda8-Nuoi)2016/10/07(金) 17:31:49.08ID:MKN+ciyyd
人に伝えるのがド下手なコミュ障ばっか
プログラマーの給料が低い原因がはっきりわかんだね
0141デフォルトの名無しさん (ワッチョイ b1dc-lo/1)2016/10/07(金) 17:51:04.56ID:Gt73vZpU0
sizeof a[0] が0にならないことが保証されているから
0による割り算が起きる心配はないよ、という話だったのか。

sizeof(ary) / sizeof(ary[0]) の使用を肯定する立場なのね。
0142デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/07(金) 18:13:16.91ID:2+nHb+w90
などと意味不明な供述をしております
0割など起きるはずもなく
0143デフォルトの名無しさん (ワッチョイ 065b-yd9a)2016/10/07(金) 19:01:52.78ID:o9A68G/U0
0にならない保証って言うか、
ary[0] は ary配列の記憶域の一つ目って意味だから、
aryが何型かは知らんが、0バイトになるわけが無いって事だろう

sizeof aaa / sizeof aaa[0] がバッドノウハウか否かは難しいね

個人的には何の問題もないような気がするが
0144デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/07(金) 19:03:48.08ID:O5pvv1CMd
ポインタ渡したとき駄目じゃね
0145デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/07(金) 19:13:50.88ID:2+nHb+w90
誤ってポインタ渡すと意図したようには計算されずコンパイルエラーにもならないんで
C++ではテンプレート使ったほうが良い
0146デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/07(金) 19:18:54.45ID:SRvWi+CW0
なんで >>119 が0で割ってしまう心配をしてると思ったのかさっぱり解らんのだが
0147デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/07(金) 19:22:19.40ID:SRvWi+CW0
常に他人がアホだと思ってるから0にならないという常識すら知らないだろうと思い込んでそんな発言したのかな?
0148デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 19:36:02.02ID:xpO0i6Cz0
>>144
おまえポインタでrange-based-forやろうとして
怒られた口だろ?w
0149デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 19:38:15.96ID:xpO0i6Cz0
>>140
わりいな
おまえみたいなパラサイトと違って
いちおー持ち家でクルマ持ちだよ
0150デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 19:40:21.06ID:xpO0i6Cz0
さて>>128の公開処刑はどういう風にやるべきか
0151デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/07(金) 19:41:05.63ID:2+nHb+w90
こいついつもズレたレスするな
>>119は
>sizeof同士の割り算はほぼ確実に使える良い方法だと思うけど
って書いてるのに>>127だからな
関係ないこと書くなって言われて当然だということが分からないらしい
0152デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 19:46:24.19ID:xpO0i6Cz0
>>151
119と127の関係性がまだ読めない
または読めたと認めることができない
いずれにしても超弩級のアフォ乙
0153デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/07(金) 19:49:12.96ID:SRvWi+CW0
>>152
はいはい、お前以外みんなアフォだよ。
お前ん中ではな。
0154デフォルトの名無しさん (スフッ Sda8-Nuoi)2016/10/07(金) 20:00:46.64ID:MKN+ciyyd
家もクルマも持ってるいい歳した大人なのに、これだけ叩かれてる状況で自分が間違ってるかもしれないと考えられないのはガチでヤバい
0155デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 20:17:00.38ID:xpO0i6Cz0
考えてはいるさ
その結果、間違ってないと結論したのが
どこぞのチビデブにはわからんというだけ
0156デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/07(金) 20:17:55.66ID:jSZrN4ywa
もう面倒臭いから江添に訊けよ
0157デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/07(金) 20:25:09.27ID:oPd3baNi0
>>146
ヒントをやろう
バギーなプログラムの動作に論理性を求めてはいけないのと同じ
0158デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 20:30:44.40ID:xpO0i6Cz0
てめーが論理性を読めないのをバグのせいにするだけのクルクルパー乙
0159デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/07(金) 20:33:51.10ID:oPd3baNi0
クルクルパー
何となく昭和のアロマがする言葉
走れメロスに出てきそうな
0160デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 20:36:25.84ID:xpO0i6Cz0
二回転五っていうんだよ
あと和親坂病院とかな
0161デフォルトの名無しさん (スップ Sdf8-xaNP)2016/10/07(金) 21:15:18.93ID:dGQ+oeUsd
ただのテクニカルなコミュ障だな
0162デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/07(金) 22:44:24.37ID:oPd3baNi0
さて「バグのせいにする」がどこから出てきたのか謎だ
糖質が見るという幻覚の仕業だろうか
0163デフォルトの名無しさん (ワッチョイ 300b-5Gb5)2016/10/07(金) 22:50:03.70ID:OTtITv/m0
結局配列の要素数取得はsizeof以外でどうやるの?
っと思い調べたらstd::extentっていうのがあるんだな
これからはこれを使うべきなのかな

https://ideone.com/7wsPV0
0164デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/07(金) 22:58:17.11ID:oPd3baNi0
sizeofはだめだけどextentならOK
と本気で考えるのなら判断能力を疑わざるを得ない
0165デフォルトの名無しさん (ワッチョイ eaa6-lsIp)2016/10/07(金) 23:23:41.44ID:Wml4/3CJ0
単にバッドノウハウと言われただけでしょう
0166デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/07(金) 23:24:45.66ID:xpO0i6Cz0
>>162=146
サル並みだなこいつw
0167デフォルトの名無しさん (ワッチョイ fc42-xaNP)2016/10/07(金) 23:25:42.06ID:PvsK5Ade0
そもそも連続領域って本質的には先頭ポインタ+サイズなんだからセットで持っとかなきゃだめだよね
0168デフォルトの名無しさん (ワッチョイ e663-TInN)2016/10/08(土) 01:28:13.47ID:afzYealp0
連続って言わなくても領域は連続する区間で
そうとは限らないのがリージョンだが
それはおいといて

本質的か?
RandomAccessIteratorのbeginとendで持つのが一般的になってるが
0169デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/08(土) 04:19:44.41ID:7eYGgeTO0
>>115
で、オマエのノウハウが一向に出て来ないんだが?
バカなの?死ぬの?
0170デフォルトの名無しさん (ワッチョイ b1dc-lo/1)2016/10/08(土) 05:46:43.07ID:9sabas780
>>145 の言う、配列名でなくポインタ変数を渡したときに
正しい結果が出ない上にエラーにもならない、というのは
sizeof a / sizeof a[0] の欠点として説得力があるな。

もちろん「今は配列の要素数の話でポインタは無関係」と言う人もいるだろうが、
ポインタを渡したときに指摘してくれるなら、より好ましいことには同意するだろう。
0171デフォルトの名無しさん (ワッチョイ fc42-xaNP)2016/10/08(土) 08:24:24.18ID:YyjS4FMP0
>>168
リストといってしまうと値と次の値を指すポインタのペアの集合で抽象化するでしょ?
配列と書くとリストと混同されるかなと思って意図的に連続という単語を含めた

そしてbeginとendで持つことと先頭とサイズで持つことは等価なのでどちらでもよい
beginから先頭ポインタ、end-beginからサイズがわかるし
先頭ポインタからbegin、先頭ポインタ+サイズからendがわかるでしょ
0172デフォルトの名無しさん (アウアウ Sad9-kPb+)2016/10/08(土) 10:41:11.83ID:uEHRjK0la
int *a;
*a=0;
ってやると、VisualC++で、「初期化されてない変数aがあります」
とか言われてエラーになるんですが、これって間違ってますか?
ポインタaを宣言して、aのアドレス番地の中身を0にしてるだけですよね?
0173デフォルトの名無しさん (ワッチョイ fc42-xaNP)2016/10/08(土) 10:50:09.87ID:YyjS4FMP0
#define null 0だからだろ
0174デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/08(土) 10:57:19.84ID:h4PrAZ2Y0
>間違ってますか?
使用しているツールの設定に依る
と言いたいが厳密には規格の1.4に違反しているのではないか
0175デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/08(土) 11:02:41.32ID:h4PrAZ2Y0
>>165
バッドノウハウかどうかの判断はsizeofとextentとで大差ないだろう
と言っているのだが、何を言っているのかね
0176デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/08(土) 11:11:23.17ID:T/Z20i9z0
>>172
エラーになることは別に間違いじゃないが?
そのソース自体は間違ってるけど
0177デフォルトの名無しさん (アウアウ Sad9-kPb+)2016/10/08(土) 11:12:38.27ID:uEHRjK0la
>>176
どうやったらエラーが治りますか?
0178デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/08(土) 11:21:27.00ID:0b+9II7o0
>>172
”aのアドレス番地”が指定されてないでしょう?そこに0を格納しようとしても無理な話
0179デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/08(土) 11:23:35.42ID:7eYGgeTO0
ここで聞くな
初心者板池よ
0180デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/08(土) 11:24:16.17ID:T/Z20i9z0
>>177
初期化されてないって言われてるんだから初期化すればいいんじゃね?
0181デフォルトの名無しさん (アウアウ Sad9-kPb+)2016/10/08(土) 11:35:03.45ID:uEHRjK0la
>>178>>180
あざっす出来た
0182デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/08(土) 14:01:00.26ID:0cOTRBJN0
>>163
std::extentを直接使うのではなく例えばこうした方が良い
https://ideone.com/phgInn
これだとcountofに配列以外(スカラーやポインタ)を渡そうとすればコンパイルエラーになる

あと、C++ではsizeofを使わないでテンプレートを使ったほうがいい理由としては確実にコンパイル時定数に出来るというのもあるな。
0183デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/08(土) 14:24:32.97ID:DNHGkeIo0
なに寝ぼけたこと言ってんだ
sizeofは定数しか返さないだろ
0184デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/08(土) 14:27:06.04ID:++vYQgKnr
そのコピペみる度に思うんだがNが分かってるのに
わざわざextent使うのは何でだろう
0185デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/08(土) 14:29:17.95ID:DNHGkeIo0
ホントホントw
0186デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/08(土) 14:37:18.41ID:0cOTRBJN0
>>184
それは確かにそうだね
>>183
定数/定数はコンパイル時定数になるとは限らないんだが
0187デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/08(土) 14:39:44.69ID:T/Z20i9z0
>>184
確かに w
0188デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/08(土) 14:47:11.13ID:0cOTRBJN0
>>184
よく考えずにコピペしてしまったwはーい書き直しましたよ
https://ideone.com/phgInn
0189デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/08(土) 14:49:59.76ID:5VQX36u50
変数テンプレートでなんとか要素数を取り出そうとしてたらMSVCが内部エラー起こした
0190デフォルトの名無しさん (ワッチョイ fcba-lsIp)2016/10/08(土) 15:32:58.78ID:H5XkRTf40
constexprがないC++03以前ではテンプレート使うと逆にコンパイル時定数にならんし、
定数/定数は規格の保証がないってだけでコンパイル時定数になる処理系は存在するな。
いつもいつも思うが、細かい規格にこだわる奴はなんでC++11前提なんだ。
0191デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/08(土) 15:35:30.99ID:5VQX36u50
C++14が前提だが
0192デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/08(土) 16:10:54.37ID:zvqyvirKa
オチがついた所で次の話題です
0193デフォルトの名無しさん (ワッチョイ 5c42-xaNP)2016/10/08(土) 23:35:23.12ID:fZjUbayx0
sizeofは単体でもコンパイル時定数とは限らんぞ…
0194デフォルトの名無しさん (スップ Sdf8-xaNP)2016/10/08(土) 23:43:21.74ID:Hmt29CX1d
えー
0195デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/09(日) 07:08:26.29ID:+yqYMy9C0
>>193
定数じゃない場合の実例だしてちょ
0196デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 07:54:57.29ID:tK5O0Gp10
どうせまっとうな答えは出てこないだろうから、それより
『定数/定数はコンパイル時定数になるとは限らない』について詳しく聞きたいものだ
0197デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/09(日) 09:08:52.65ID:+yqYMy9C0
>>196
> 『定数/定数はコンパイル時定数になるとは限らない』について詳しく聞きたいものだ
単純に規格で規定されてないって話でしょ
実行時に割り算しても規格に違反してないし
0198デフォルトの名無しさん (ワッチョイ 5c7b-pu+C)2016/10/09(日) 09:36:11.91ID:jOdKlrQc0
確か可変長配列のsizeofは実行時に決定するんじゃなかった?
0199デフォルトの名無しさん (ワッチョイ 5c7b-pu+C)2016/10/09(日) 09:39:06.22ID:jOdKlrQc0
C++には可変長配列ないんだった
バカなことを言ってしまってすまない
0200デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/09(日) 09:42:37.60ID:+xxWr6ST0
>>197
いや規定されてる
int a[sizeof(int)]; とか
constexpr int b() { return 1; }
int c[b()]; のように、
翻訳時に評価する保証が必要なところが
ごまんとある
template <int N> void d() {}
d<sizeof(int)>();
d<b()>();
0201デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/09(日) 09:53:02.15ID:VmeNsSSy0
>>199
焼土下座はよう
0202デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/09(日) 10:05:22.72ID:+yqYMy9C0
>>200
話の流れも読めないのか?
「定数/定数」の話だぞ
0203デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 10:33:17.77ID:gIk33Du70
>>199
規格はどうあれclangでもgccでもVCでも使えるけどな実行時にサイズが決まる配列
0204デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 10:48:09.93ID:gIk33Du70
「定数/定数がコンパイル時定数になるとは限らない」の規格的な根拠はここ

5.20 Constant expressions [expr.const]
〜
[ Note: Constant expressions can be evaluated during translation.―end note ]

"can be"であって"must be"じゃないから
0205デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 10:49:54.92ID:tK5O0Gp10
>>197
ところが定数式は「以下の何れかに該当しない式は皆定数式」という書き方がしてあるので
保証が無いと言うなら証明可能だと思うんだが
0206デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 11:03:23.63ID:tK5O0Gp10
「コンパイル時定数」にするためにsizeofは避けるべき
 ↓
規格的なものによると式の評価がコンパイル時とは限らない
※でも配列宣言のサイズには使えます★

うーむ、確かにコンパイル時に決まらなくても配列サイズに使えるようだが、最初のひっかけは何だったのか
0207デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/09(日) 11:23:20.51ID:+yqYMy9C0
>>205
> ところが定数式は「以下の何れかに該当しない式は皆定数式」という書き方がしてあるので
どこに書いてあるの?
0208デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 11:33:00.37ID:tK5O0Gp10
>>207
「定数式」でなく「コア定数式」だった失礼。
5.19第2段落の一行目、お前が「規格的」と称して引用した規格モドキでは3行下
0209デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 11:40:10.90ID:tK5O0Gp10
>>207
ついでに気付いたが>>204の『can be』は「定数式が要求されない文脈では実行時評価しても良い」と言うだけで
配列サイズはコンパイル時ではないのか
5.19段落5
『char array[1 + int(1 + 0.2 - 0.1 - 0.1)]; // Must be evaluated during translation』
0210デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 12:43:19.01ID:gIk33Du70
>>209
>「定数式が要求されない文脈では実行時評価しても良い」
は?
>配列サイズはコンパイル時ではないのか
そうだよ規格的には
clangとかgccは-pedanticオプションを指定すれば規格に沿ったチェックを行う
-pedantic付けないと可変長配列が使える

あと>>203に嘘を書いてしまったのを訂正する
VCのC++では可変長配列は使えないみたい
ICCでは使える(コンパイラをICCに切り替えていたのを忘れていた。。。)
0211デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 13:01:12.93ID:gIk33Du70
>>208
5.19/2はcore constant expressionとなる条件を書いてるだけで
core constant expressionはコンパイル時評価しなくちゃいけないなんて書いてないと思うが???

>お前が「規格的」と称して引用した規格モドキ
規格に明確に書いていることをモドキ呼ばわりされてもねえ(笑)
0212デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 13:07:24.40ID:gIk33Du70
ちょっと待てよ
俺が見てる規格のドラフト(n4296でもn4582でも)では5.19は「Comma operator」
であってconstant expressionに対する記述は5.20なんだが?
>>209はどれを見てるんだ???
0213デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 13:08:03.67ID:tK5O0Gp10
>211
>core constant expressionはコンパイル時評価しなくちゃいけないなんて書いてないと思うが???
それには同意すると>>206で述べたはずだが何を言っているのか

>規格に明確に書いていることをモドキ呼ばわりされてもねえ(笑)
そんなことを言ったところで、>>204で引用したものが規格ではないという事実に変わりはないぞ
0214デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 13:30:33.23ID:gIk33Du70
N4141は持ってないし買う気もしないからN4140ダウンロードして見てみたら
5.19が「Constant expressions」だったわw

5.19/5にはこうあるんだよなあ

5 [ Note: Since this International Standard imposes no restrictions on the accuracy of floating-point operations,
it is unspecified whether the evaluation of a floating-point expression during translation yields the same
result as the evaluation of the same expression (or the same operations on the same values) during program
execution.87 [ Example:
bool f() {
char array[1 + int(1 + 0.2 - 0.1 - 0.1)]; // Must be evaluated during translation
int size = 1 + int(1 + 0.2 - 0.1 - 0.1); // May be evaluated at runtime
return sizeof(array) == size;
}
It is unspecified whether the value of f() will be true or false. ―end example ] ―end note ]

>>規格に明確に書いていることをモドキ呼ばわりされてもねえ(笑)
>そんなことを言ったところで、>>204で引用したものが規格ではないという事実に変わりはないぞ
Noteに書いてるものが規格じゃないとでも?じゃあ5.19/5は丸ごと規格じゃないな(笑)
0215デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 14:08:40.65ID:tK5O0Gp10
などと意味不明な供述をしております

何を言っているのかさっぱりわからんので、ちょっと認識を確認させてもらおうか
1.「sizeof a/sizeof a[0]」は定数式である yes/no
2.「sizeof a/sizeof a[0]」は配列のサイズ指定に使える yes/no
3.「int ar[sizeof a/sizeof a[0]];」の割り算はコンパイル時に行われる yes/no

俺の認識は全てyesだが、お前の認識は如何に?
0216デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/09(日) 14:15:44.86ID:+xxWr6ST0
>>215
俺も全てyes
定数式のみが許されているところは
その評価が翻訳時に行われる必要があるところだ
0217デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/09(日) 14:17:53.44ID:+xxWr6ST0
constexprは関数の返却値を定数式とするためのもので
そのために関数に記述されている式の評価を翻訳時に行うよう要求する
これで定数式が実行時に評価される場合があるなんて言い出したら殺される
0218デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/09(日) 14:25:33.24ID:+yqYMy9C0
>>215
規格の話なのかメジャーな処理系の話なのかを明確にしてくれ
0219デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 14:38:38.35ID:gIk33Du70
>>215
まーた話をずらしてる
意味不明?もし本当にそう思うならあなたは規格から意味を汲み取れない人
215については俺も全部yesだよ
俺が言ったのは「定数/定数のような定数式の評価はコンパイル時定数になるとは限らない」だ
0220デフォルトの名無しさん (ワッチョイ 300b-5Gb5)2016/10/09(日) 14:49:04.84ID:AtqzZ85M0
たぶんややこしいのって定数式はコンパイル時評価できる(>>204)もので必ずしも実際にする必要はない
しかし配列のサイズ指定に定数式を使ったときは必ずコンパイル時評価になる
ってことじゃない?
0221デフォルトの名無しさん (ワッチョイ fcba-lsIp)2016/10/09(日) 14:58:53.13ID:K1HCjCmA0
>2.「sizeof a/sizeof a[0]」は配列のサイズ指定に使える
⇒yes

これと

>「定数/定数のような定数式の評価はコンパイル時定数になるとは限らない」

これって両立する話なのか?(可変長配列は別として)
もしそうだとして、元々の sizeof a/sizeof a[0] を避けるべきという話にどう関係するのかわからん。
0222デフォルトの名無しさん (ワッチョイ 300b-5Gb5)2016/10/09(日) 15:14:06.76ID:AtqzZ85M0
だから、配列のサイズ指定に使った場合は確実にコンパイル時評価になるんだよ
コンパイル時評価でなくていい場所では実行時かもしれない
なので両立する

ぶっちゃけ配列のサイズ指定での話か一般の話か
明確にしないまま議論してるのが荒れてる原因じゃないの?
もしくはその違いに気づいていない人がいるか
0223デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 15:14:35.31ID:tK5O0Gp10
>>218
規格の話でよろしく

>>221
「auto n = sizeof a / sizeof a[0];」
という文脈で使われた場合には実行時でも構わないので両立はする。
もちろんこの発言が出た>>182,>>186は配列宣言の話なので、すり替えられても困るが
0224デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 15:21:33.79ID:tK5O0Gp10
sizeof a / sizeof a[0]
_countof (a)
どちらも等しく定数式で、すべての文脈でコンパイル時に計算される保証はないよな?
0225デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 15:37:39.25ID:tK5O0Gp10
<まとめ>
確実にコンパイル時定数にするため、sizeofでなくテンプレートを使うべき
 ↓
sizeofは定数しか返さないだろ
 ↓
定数/定数はコンパイル時定数になるとは限らない
 ↓
詳しく
 ↓
定数式を必要としない場所では実行時評価しても良いんだぜ

そうだな。確かに『定数/定数はコンパイル時定数になるとは限らない』だけ取り出せば事実だった。うん認めるぞw
0226デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 16:10:17.82ID:gIk33Du70
>>223
>もちろんこの発言が出た>>182,>>186は配列宣言の話なので、すり替えられても困るが
配列宣言に限った話じゃなかったんだが???
「限らない」も理解できないんじゃ話になりませんな
0227デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 16:21:59.70ID:gIk33Du70
>>182は>>163に対するレスだが
ここに書いた
https://ideone.com/phgInn
の行16のsizeof array/sizeof array[0]はコンパイル時に評価されるとは限らないと言ってるのだが?

もっとも俺が知る限りの全てのコンパイラでこれはコンパイル時定数になるけどね
それ以外のコンパイラなんて見たこと無い
ただそれは規格では保証されていないということ
0228デフォルトの名無しさん (ワッチョイ 30cf-lsIp)2016/10/09(日) 16:25:42.65ID:U+qzjwfn0
>>227
> もっとも俺が知る限りの全てのコンパイラでこれはコンパイル時定数になるけどね
> それ以外のコンパイラなんて見たこと無い
> ただそれは規格では保証されていないということ

そんな話ならテンプレート使った場合も同じなのでは・・・?
0229デフォルトの名無しさん (ドコグロ MM94-xaNP)2016/10/09(日) 16:42:53.35ID:UHPsTk3RM
規格準拠してる処理系でも
int a[10];
int b[sizeof a / sizeof a[0]];
がコンパイルエラーになる可能性があるってことか...
奥が深いぜ
0230デフォルトの名無しさん (ワッチョイ 8b7b-yLuk)2016/10/09(日) 16:44:53.69ID:gIk33Du70
>>228
そうなのかなあ?規格をペダンティックに解釈するとそうなのかも知れないが
>>182のcountofのNを実行時に計算するコードとか想像もできない
sizeof array/sizeof array[0]の割り算を実行時にやるコードなら想像できる

ともあれ疲れてきたし、不毛だから俺はもうこの話題はいいよ
『プログラマは規格のみにて生くるにあらず』なのだから
この規格クソみたく読みづらいし
0231デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 16:49:07.88ID:tK5O0Gp10
いやいや、>>227の脳内ではcout<<みたいな定数式を必要としない場所の話だったらしいぞ

>>228
>>227は自分で『sizeofを使わないでテンプレートを使ったほうがいい理由としては確実にコンパイル時定数に出来るというのもあるな』
と書いたことすら忘れてしまったんですお察しください
因みに疲れたそうだからもうつっこまないでw
0232デフォルトの名無しさん (ドコグロ MM94-xaNP)2016/10/09(日) 17:00:27.60ID:UHPsTk3RM
>>230
> 俺はもうこの話題はいいよ
なら黙ってりゃいいと思うぞ
誰もお前さんの想像力に期待してる訳じゃないし
0233デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/09(日) 19:22:00.41ID:VmeNsSSy0
定数/定数を最適化しないコンパイラなんて聞いたことがないんだが
どこぞのDQN製だよw
0234デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/09(日) 19:52:00.35ID:+xxWr6ST0
>>233
だよな
実例を知っているなら挙げて欲しい
0235デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/09(日) 22:28:02.35ID:KWlu0vko0
浮動小数点なら動的に丸めモードを変更している場合は最適化できないんじゃないか
0236デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/09(日) 23:05:04.35ID:tK5O0Gp10
もともと実行時とコンパイル時とで一貫性は求められていないのに
そんなアスペなコンパイラーを作ったら
非タイプテンプレートとの結果不一致で叩かれそうだ
0237デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/10(月) 04:56:53.22ID:tpU5HQbJ0
配列の型のサイズが浮動小数点の処理系があれば是非使ってみたいものだw
0238デフォルトの名無しさん (アウアウ Sac5-xaNP)2016/10/10(月) 13:47:05.13ID:95Hl4zUea
それはそもそもC++ではない
0239デフォルトの名無しさん (オイコラミネオ MM54-oEV5)2016/10/10(月) 14:11:03.82ID:B9a6CAzCM
C++を使ってffmpegでフォルダ以下を一括処理したいのですが、ffmpegを複数同時エンコードさせる方法を教えて下さい
0240デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/10(月) 14:13:51.76ID:w6XA/ACi0
>>239
そんなのはC++ではなくbatでやれ
0241デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/10(月) 15:30:53.86ID:6Ir48vXja
戦略の誤りを戦術で覆すことは困難である
0242デフォルトの名無しさん (ワッチョイ eaa6-lsIp)2016/10/10(月) 16:50:15.95ID:NERzS6wK0
>>241
誰が言った言葉か知ってる?
0243デフォルトの名無しさん (ワッチョイ fc41-pu+C)2016/10/10(月) 17:16:44.48ID:G4/PQ+Ds0
>>240
c++ではできなくてbatならできるの?
0244デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/10(月) 18:27:50.42ID:qw5l0dP40
実例でてこないな
そりゃーあるわけねえだろうな
空想論ブチ撒いてたスカタンども腹を切れ
0245デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/10(月) 18:43:53.19ID:Rkc5P+nq0
このての話してると規格の話と実際の処理系の話の区別ができない奴が必ず出てくるのな
0246デフォルトの名無しさん (ワッチョイ c63c-XUlN)2016/10/10(月) 18:51:36.77ID:cbyhkC660
>>243

c++でもできるけど、バッチなりシェルスクリプトなりでやるほうが手軽だろ
0247デフォルトの名無しさん (ワッチョイ eaa6-lsIp)2016/10/10(月) 19:45:35.63ID:NERzS6wK0
>>244
スカタンてドロンジョ様がいってるやつか?
0248デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/10(月) 20:20:32.12ID:qw5l0dP40
どスカタン!
0249デフォルトの名無しさん (ワッチョイ 5c7b-lsIp)2016/10/10(月) 22:04:22.70ID:hOfYBc4q0
スカタンポン が正しい用法です
0250デフォルトの名無しさん (ワッチョイ c63c-XUlN)2016/10/10(月) 22:19:30.41ID:cbyhkC660
「しっかりおしよ、スカポンタン!」じゃなかったっけ
0251デフォルトの名無しさん (ワッチョイ 5c7b-lsIp)2016/10/10(月) 22:27:55.21ID:hOfYBc4q0
>>250
失礼しました 歳ですね
0252デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/10(月) 22:31:44.18ID:qw5l0dP40
実例が出せなくてアニメに逃げたかw
追わねーよ、そのザマ見れただけで充分だゴミども
0253デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/10(月) 22:34:28.12ID:Rkc5P+nq0
よかったな
さよなら
0254デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/10(月) 23:17:07.51ID:dr+gwswD0
昨日はID:+yqYMy9C0以外は規格の話をしていたと思うのだが
実在する処理系を挙げられないなら腹を切れとはこれ如何に

因みに定数式を実行時計算する例なら、
Visual C++は(定数式が求めらない文脈では)再帰のあるconstexpr関数を実行するようだ
0255デフォルトの名無しさん (ワッチョイ 5c03-TInN)2016/10/10(月) 23:18:54.86ID:qw5l0dP40
再帰とは関係ないな
0256デフォルトの名無しさん (ワッチョイ f97b-Y8fh)2016/10/10(月) 23:21:19.83ID:SXhNRHjX0
>>245
そもそも実際の処理系を気にする奴はこんなスレに書き込む前に
自分で手を動かしてるわ。
0257デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/10(月) 23:45:02.14ID:Rkc5P+nq0
>>254
一体誰と戦ってるんだよ...
0258デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/10(月) 23:46:30.91ID:Rkc5P+nq0
>>256
そう言うことは >>233 に言えよ
0259デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/10(月) 23:59:14.56ID:dr+gwswD0
>>257
「人」と戦うという発想は無いな
0260デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/11(火) 00:08:53.38ID:1ZwWCnov0
認識がないのか
最悪だな...
0261デフォルトの名無しさん (ワッチョイ fc41-pu+C)2016/10/11(火) 01:26:55.02ID:XtQ45pny0
おまいらってずーと、そんな規格がどうとか言ってんの?まともソフトを作ったことあるのか?
数百行程度のサンプルを動かして、満足してるだけっぽいな
0262デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/11(火) 02:29:58.82ID:hGW6J+ki0
ソフトを作る事と言語機能の議論に何の関係があるんだ?
0263デフォルトの名無しさん (ワッチョイ fc41-pu+C)2016/10/11(火) 02:38:31.66ID:XtQ45pny0
みなまで言わんとわからんか・・・
言語機能なんてある程度知ってれば実害ないだろって言いたいんだが・・・
0264デフォルトの名無しさん (ワッチョイ 0d02-lsIp)2016/10/11(火) 02:50:07.91ID:hGW6J+ki0
ソフト開発とは何の関係も無いことだと知っているのに、何で急に訳の分からないことを言ってくるんだ
0265デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/11(火) 03:10:28.16ID:ImSndLes0
ID:Rkc5P+nq0
単なる屁理屈ヤロウ
0266デフォルトの名無しさん (ガックシ 065c-xaNP)2016/10/11(火) 05:24:13.03ID:2y1S1LhJ6
std::comlexのpow()で4乗根を計算するとするじゃん?
4つある内のどれが返るの?
0267デフォルトの名無しさん (アウアウ Sac5-pu+C)2016/10/11(火) 06:00:47.51ID:GK6S8De2a
関数fの戻り値同じ型の変数を定義するにはどうすればいいですか?

int f(){return 0;}

void g()
{
//関数fの戻り値同じ型の変数を定義したい
//int n; だと fの戻り値の型が変更になった場合、ここも変更が必要・・・
}
0268デフォルトの名無しさん (ワッチョイ e616-VrNr)2016/10/11(火) 06:22:57.74ID:XiX3e5d50
decltype(f()) var;
0269デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/11(火) 07:34:39.52ID:K1K/bnMz0
autoじゃダメな場合そんな無いと思うけどね
0270デフォルトの名無しさん (ドコグロ MM94-xaNP)2016/10/11(火) 08:07:44.76ID:ZyS2NttQM
>>265
そんなに悔しがるなよ w
0271デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/11(火) 08:22:26.18ID:JtQdxvBbr
>>266
なにが4つもあるのかkwsk
0272デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/11(火) 08:23:57.49ID:ImSndLes0
デフォルトの名無しさん (ドコグロ MM94-xaNP)
単なる情弱同調ヤロウ
0273デフォルトの名無しさん (ワッチョイ 5c7b-pu+C)2016/10/11(火) 08:33:23.84ID:jsGF4mH/0
>>266
std::pow(x,y)はstd::exp(y*std::log(x))と同じ結果を返すようになってるらしいので、そこから計算すれば分かるかも

std::logはたぶん主値を返す
0274デフォルトの名無しさん (ワッチョイ 5c7b-pu+C)2016/10/11(火) 08:39:27.64ID:jsGF4mH/0
たぶん1の4乗根としてiが返ってきたりはしない
0275デフォルトの名無しさん (ワッチョイ 300b-5Gb5)2016/10/11(火) 09:12:34.63ID:tLF3gauG0
pow(x,y)=exp(y*log(x))
から計算するとRzをzの絶対値,θzをzの偏角として
pow(x,y)の偏角は
Ry*{log(Rx)*sin(θy)+θx*cos(θy)}

つまり実数乗なら普通にxの偏角のy倍が帰る
0276デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/11(火) 13:41:38.05ID:Y/VLsvnfr
>>271
根です

>>273
>>275
スマン、xが負だったらどうなるんだっけ?
0277デフォルトの名無しさん (ワッチョイ 300b-5Gb5)2016/10/11(火) 17:19:25.68ID:tLF3gauG0
あー、xが負の時偏角を-PIかPIかどちらとして計算するかってことかね

規格を見たところどちらとも書いてない
arg(x)もどちらという保証はしてない
だから実装依存が答えなんじゃないかな
0278デフォルトの名無しさん (アウアウ Sac5-IXBr)2016/10/11(火) 17:29:09.21ID:sSjTKHHDa
江添が最近監修した禿本って買い? なんか原著を江添自身が批判してたっぽいけど、この人、権威を恐れないよね
0279デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/11(火) 17:57:09.13ID:C9gAH1cAr
>>267は納得したんか?
次は「実は引数有ったけどどう書くんですか」と来ると思ってたけど
0280デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/11(火) 18:48:13.85ID:Y/VLsvnfr
>>277
サンキュー
まぁちゃんと4乗根が返るなら良いかw
0281デフォルトの名無しさん (ワッチョイ fc41-pu+C)2016/10/11(火) 19:23:28.31ID:XtQ45pny0
>>278
言語を作ったってだけで、その言語を使って優秀はソフトを作ったわけじゃないからな
0282デフォルトの名無しさん (ドコグロ MM94-xaNP)2016/10/11(火) 19:45:29.39ID:ZyS2NttQM
>>272
悔しくて夜も眠れない
ってか w
0283デフォルトの名無しさん (ワッチョイ 300b-5Gb5)2016/10/11(火) 21:11:47.13ID:tLF3gauG0
>>280
ごめん、嘘書いてた
zが負のときimag(log(z))==piだと規格に書いてあった
つまり負の数の時は偏角piとして計算されることが保証されてました
0284デフォルトの名無しさん (オッペケ Sr4d-xaNP)2016/10/11(火) 21:41:13.07ID:Y/VLsvnfr
>>283
いえいえ、ありがとう
pow(x, y) = exp(y * log(x))
も
zが負のときimag(log(z)) == pi
も自分で見つけるべきことだったと思うので、反省します
0285デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/11(火) 23:01:23.45ID:ImSndLes0
>>282
情弱しったか馬鹿乙w
ブーメランwブーメランw
0286デフォルトの名無しさん (ドコグロ MM3b-xaNP)2016/10/12(水) 06:39:02.51ID:/L1P4/vZM
>>285
やり込められて発狂の図 w
0287デフォルトの名無しさん (ワッチョイ fcef-lsIp)2016/10/12(水) 12:50:14.72ID:bdQIuTCe0
QWORD N1 = 0x012345678900ULL;
と
QWORD N2 = 0x012345678900;
の違いを教えてください。
0288デフォルトの名無しさん (ワッチョイ fcef-lsIp)2016/10/12(水) 12:59:10.49ID:bdQIuTCe0
unsigned long long型がULLなのかな
0289デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/12(水) 13:07:51.44ID:b/ONjSLd0
>>286
それおまえ
0290デフォルトの名無しさん (ササクッテロ Sp4d-pu+C)2016/10/12(水) 13:18:04.91ID:4sAZDm+Zp
いつまでやってんだハゲ
0291デフォルトの名無しさん (ワッチョイ fc41-yd9a)2016/10/12(水) 13:18:44.99ID:aj5TKozK0
std::string str = "abcdefghijklmn";
str::string s = "def";

strからsを検索してgを指すiteratorを取得するスマートなやり方ってありますか?
0292デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/12(水) 13:31:57.01ID:fdh9FJX7d
std::string str = "abcdefghijklmn";
std::string s = "def";
auto i = std::search( str.rbegin(), str.rend(), s.rbegin(), s.rend() );
i.base();
0293デフォルトの名無しさん (アウアウ Sac5-pu+C)2016/10/12(水) 13:35:28.00ID:DtqOJ8Hza
うーん、かっこ悪いな〜
0294デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/12(水) 13:36:44.36ID:b/ONjSLd0
>>292
ソレだと後方検索になるだろ馬鹿
0295デフォルトの名無しさん (ワッチョイ fc41-yd9a)2016/10/12(水) 17:32:08.41ID:aj5TKozK0
できました
0296デフォルトの名無しさん (アウアウ Sac5-xaNP)2016/10/12(水) 18:08:10.23ID:uZVEH73ja
>>290
ハゲは今関係ないだろ!
0297デフォルトの名無しさん (ドコグロ MM85-xaNP)2016/10/12(水) 18:14:57.83ID:iTXTBuwTM
>>289
ブーメラン刺さったままですよ w

規格の話が理解できないなら黙ってりゃいいのに
0298デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/12(水) 18:35:31.16ID:b/ONjSLd0
>>297
は?規格の話を理解できてなくて発狂しまくっている逝かれポンチが逆ギレかよw
0299デフォルトの名無しさん (ドコグロ MM85-xaNP)2016/10/12(水) 18:44:53.59ID:iTXTBuwTM
>>298
取り敢えず屁理屈ってお前が思っちゃったレス示しな
まあ恥ずかしくて示せないだろうけど w
0300デフォルトの名無しさん (アウアウ Sac5-xaNP)2016/10/12(水) 18:52:09.47ID:5VjkdN+Ga
お前ら仲良さそうだなwww
0301デフォルトの名無しさん (ワッチョイ c6cc-xaNP)2016/10/12(水) 19:19:11.51ID:7Y1UmKcJ0
>>299
ID変えて発狂してんじゃねーよwゴミw
0302デフォルトの名無しさん (ワッチョイ c63c-xaNP)2016/10/12(水) 19:40:56.85ID:jSwsXChc0
レス番示せずに言い訳乙 w
0303デフォルトの名無しさん (ワッチョイ 7063-xaNP)2016/10/12(水) 19:49:37.93ID:PEoQSzkY0
何の議論もない罵倒だけのレスは退屈だ
確かに>>229には少し誤解が有るようだが、まさかそれに物申しているんだろうか
0304デフォルトの名無しさん (アウアウ Sac5-xaNP)2016/10/12(水) 20:07:38.71ID:uZVEH73ja
C++erは血の気が多い連中ばかりで疲れる
0305デフォルトの名無しさん (ワッチョイ c37b-zAu9)2016/10/12(水) 21:02:15.95ID:0qBDR/o00
スルー力付けないと、どのスレどの板行っても疲れるだけだろ?
0306デフォルトの名無しさん (アウアウ Sac5-xaNP)2016/10/12(水) 21:35:34.43ID:uZVEH73ja
プログラミング言語によって住民の喧嘩っ早さが結構違ってくる
0307デフォルトの名無しさん (ワッチョイ 5c9b-TInN)2016/10/12(水) 22:34:12.18ID:bCCr/Gyy0
то, что срука?
0308デフォルトの名無しさん (ワッチョイ 0130-VrNr)2016/10/12(水) 22:42:41.03ID:51dBK2FP0
だいたい同じ顔ぶれの少数の声の大きい人たちが毎回互いにやりあってるだけだろ
そんなものをスルーできず気になってしかたがないのは
いつでもどこでもその内容・流れが自分にとっておもしろくない方向にいって終わってるように感じているからではないかな
0309デフォルトの名無しさん (ワッチョイ f97b-Y8fh)2016/10/12(水) 22:59:53.18ID:t+zsQ/ss0
c++ほど官僚主義が行き届いてる言語も珍しい。
0310デフォルトの名無しさん (ワッチョイ 065b-yd9a)2016/10/12(水) 23:01:25.21ID:N8tqL7R30
いちいち std:: をつけなくても良いだろ。
こんなソースで
0311デフォルトの名無しさん (オッペケ Srd7-DI90)2016/10/13(木) 09:24:13.74ID:dSVaQs3Pr
Effective Modern C++が(ようやく)電子書籍化されました http://hassyx.hatenablog.com/entry/2016/10/12/164056
0312デフォルトの名無しさん (アウアウ Sa97-wgZ+)2016/10/13(木) 12:39:55.82ID:F6D15jAOa
紙版持ってたわー(ミサワ風)
0313デフォルトの名無しさん (スッップ Sd4f-Oa01)2016/10/13(木) 12:41:23.38ID:O7dxu4uNd
紙持ってるけど買うわ
0314デフォルトの名無しさん (ワッチョイ 077b-8qPS)2016/10/13(木) 15:35:17.99ID:xErZV8E90
kindleではないの?
0315デフォルトの名無しさん (オッペケ Srd7-Oa01)2016/10/13(木) 17:24:47.14ID:cKs6fZqRr
ずっと前から俺のキンドルに入ってるのは電子書籍だと思っていたぜ
0316デフォルトの名無しさん (ワッチョイ eb85-torC)2016/10/13(木) 18:24:20.11ID:zUN0ltZm0
>>309
どんな点が?
0317デフォルトの名無しさん (アウアウ Sa97-wgZ+)2016/10/13(木) 20:40:27.15ID:65LzNOF2a
このスレ、ワナビの独自創作術の水掛け論の途中、どうでもいい言葉の定義で揚げ足取り合いだしてお互い退くに退けず何レスも消費して話が一向に進まない光景と同じ構図だわ
0318デフォルトの名無しさん (ワッチョイ 9f13-torC)2016/10/13(木) 20:54:29.71ID:iSzZT/Mz0
>>317
なにいつものことさ
0319デフォルトの名無しさん (ワッチョイ 57c1-7aZL)2016/10/13(木) 21:16:01.93ID:q0OYcpfe0
c++11のthreadクラスのコンストラクタの引数
{関数オブジェクト, なんでも関数オブジェクトの引数}
のようなインターフェースはどのように宣言していのですか?
同じようなインターフェースをつくりたいのですが、どう書けばわからないのです。
0320デフォルトの名無しさん (ワッチョイ eb02-8qPS)2016/10/13(木) 22:19:57.96ID:KCQj1eOj0
>>319
可変引数テンプレート
0321デフォルトの名無しさん (ワッチョイ 837b-IRN/)2016/10/13(木) 22:23:06.73ID:nBHu5ptK0
>>319
宣言は
http://www.cplusplus.com/reference/thread/thread/thread/

実装方法はvariadic templatesでググれ
0322デフォルトの名無しさん (ワッチョイ 57c1-7aZL)2016/10/14(金) 06:57:58.16ID:BFKFSw9P0
>>320
>>321
ありがとう
調べるよ
0323デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/14(金) 08:14:18.25ID:d1P1Covyd
invoke的な話ではないの?
0324デフォルトの名無しさん (ワッチョイ 837b-IRN/)2016/10/14(金) 08:27:37.58ID:sd6PpA7U0
>>323
宣言て書いてるじゃん

invoke的な話ならvariadic templatesの関数内でstd::bindかラムダ使ってstd::functionに突っ込むだけだからそんなに説明要らんでしょ
std::functionのようなもの自体を自作するって話なわけじゃないし
0325デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/14(金) 09:56:33.26ID:d1P1Covyd
>>324
なるほど。
>>319が求めているもののレベル感がいまいちつかめなかった
0326デフォルトの名無しさん (ドコグロ MM6f-Oa01)2016/10/14(金) 12:09:20.88ID:oUFNrAdhM
ちょっと質問です。
あるクラスについて::deleteを禁止する方法って存在しますか?

自作smartpointerでdeleteを非publicにしたいのですが、::deleteが禁止できず手詰まりの状態になりました。
何かヒントがあればお教えください。
0327デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/14(金) 12:26:38.07ID:yhjkb84sp
デストラクタを非publicにするのではダメだった?
0328デフォルトの名無しさん (ドコグロ MM6f-Oa01)2016/10/14(金) 17:50:31.84ID:oUFNrAdhM
駄目ですね。
delete xはブロックできますが
::delete xはブロックできません。
0329デフォルトの名無しさん (ワッチョイ d70b-Mjzk)2016/10/14(金) 18:38:29.59ID:7CIQwa030
わざわざ::operator deleteを使ってるのって確信的に分かって使ってるんだから
気にする必要ないんじゃないの

そもそもなんでdeleteを禁止したいの?
単にdeleteと書けるけど何もしないとかじゃダメなん?
0330デフォルトの名無しさん (ドコグロ MM6f-Oa01)2016/10/14(金) 19:28:44.85ID:oUFNrAdhM
>>329
デバッグの簡単化のためにコンパイルエラーにしたいから、ですね。
まあ、普通::deleteなんて使わないから割り切るのはありそうですが……
0331デフォルトの名無しさん (ワッチョイ d70b-Mjzk)2016/10/14(金) 19:53:21.41ID:7CIQwa030
>>329だけどよく調べると::operator deleteじゃなくて::deleteが正しかった
そうしないとデストラクタを呼ばない
でも::deleteならデストラクタをprivateにするか=deleteすればコンパイルエラーになるけどな
まぁ当然インスタンスが一切作れなくなるけど

https://ideone.com/YAGgrP
0332デフォルトの名無しさん (ワッチョイ d763-Oa01)2016/10/15(土) 23:14:46.99ID:+uVOLf3/0
>よく調べると

さすがにoperator delete関数の呼び出し式とdelete式の区別があやふやなのはまずい
0333デフォルトの名無しさん (ワッチョイ 0733-Oa01)2016/10/15(土) 23:36:09.93ID:f1QyDe2U0
  /)
 / /)
`///   __
|イ二つ/⌒⌒\
| 二⊃/ (●) (●) \
/  ノ / ⌒(_人_)⌒\
\_/ |  |┬|  |
 / \  `ー′  /
こまけぇことはいいんだよ
0334デフォルトの名無しさん (ワンミングク MM8f-tncL)2016/10/15(土) 23:37:37.89ID:03QpGC2zM
>>332
どう違うの?
0335デフォルトの名無しさん (ワッチョイ d763-Oa01)2016/10/15(土) 23:46:10.84ID:+uVOLf3/0
delete式はデストラクターを呼び出した上で、調整したアドレスを
メモリ解放関数であるoperator deleteに渡して領域を解放する。
調整前のアドレスをoperator delete関数に渡してはならない
0336デフォルトの名無しさん (アウアウ Sa97-DI90)2016/10/16(日) 11:27:48.80ID:460LBzxZa
全世界でピアノの調律師は何人いますか?
0337デフォルトの名無しさん (ワッチョイ ef3c-Oa01)2016/10/16(日) 12:13:30.96ID:XQf+xL3K0
>>336
???
この話?
http://www.arp-nt.co.jp/rensai/index-sono18.html
0338デフォルトの名無しさん (ワッチョイ 5315-b88/)2016/10/16(日) 21:20:01.02ID:DgdPmvQu0
なるほど、それで見当外れの「ユーザーニーズ」を押しつけてくる
あの会社の独特の作風ができてくるのかw
0339デフォルトの名無しさん (ワイモマー MM4f-ByRo)2016/10/17(月) 20:58:25.84ID:qxOFyl5oM
enumの中身が外に漏れて
〇〇は既に定義されています
みたいになるんだけどどうすればいい?
0340デフォルトの名無しさん (ワッチョイ ffa6-8qPS)2016/10/17(月) 21:05:21.96ID:wcVEram70
オムツをはく
0341デフォルトの名無しさん (ワッチョイ ef25-Oa01)2016/10/17(月) 21:19:24.98ID:0BtYKcYs0
つenum class
0342片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK87-CGql)2016/10/17(月) 21:20:11.62ID:9GJO+zbTK
>>339
構造体やクラスの中に閉じ込める。
class enumを使う。
0343デフォルトの名無しさん (ワッチョイ d763-Oa01)2016/10/17(月) 21:27:36.22ID:qfcpHZT90
キャスト無しで整数値として使いたい時は名前空間の中に入れているな
to_stringをADLで見つかる様にするにはこれしか思いつかなかった
0344デフォルトの名無しさん (ワッチョイ 6f90-8qPS)2016/10/18(火) 00:53:24.01ID:dEpyDntM0
すごいくだらない質問ですが、関数の名前で悩んでます。

class A {
vector<shared_ptr<B>> bList;
void xxxBList (); ←bListのnullな要素を除いて先頭詰めしたbListを作る関数
};

このxxxに合ういい名前が思いつかないんですが、何かありませんか?
「空席を詰める」というフレーズは「move over」とか「scoot over」とか言うようですが、なんかしっくりこないです。
0345デフォルトの名無しさん (ワッチョイ 9f6c-KiBM)2016/10/18(火) 00:56:37.98ID:iAFKOUBr0
pack?
0346デフォルトの名無しさん (ワッチョイ 6f90-8qPS)2016/10/18(火) 01:06:29.41ID:dEpyDntM0
>>345
自分も思いつきましたが何か違うような
padも違いますよね

そのうちいい名前思いつくだろうと思って勢いでscootoverBListってしました
フレーズを1つ覚えたぞと
0347デフォルトの名無しさん (ワッチョイ 77d4-8qPS)2016/10/18(火) 01:25:44.57ID:zWvD3ynd0
shrink
defragment
removeNull
0348デフォルトの名無しさん (ワッチョイ eb02-8qPS)2016/10/18(火) 01:38:44.32ID:oHxKXjdy0
日本語で命名する
0349デフォルトの名無しさん (ワッチョイ 4bfa-Oa01)2016/10/18(火) 01:38:46.01ID:UbcBgpHB0
fit
squeeze
0350デフォルトの名無しさん (ワッチョイ 5302-b88/)2016/10/18(火) 02:18:49.16ID:S8FUvyyp0
defrag
optimize
normalize
0351デフォルトの名無しさん (ワッチョイ d7cf-8qPS)2016/10/18(火) 04:40:55.55ID:lPcPATnJ0
>>344
どっちも public なの?
private な変数に sparse とか nullable とかつけといて、 public な関数のほうを
単に bList() にすればよかったりしないかな?と思った。
0352344 (ワッチョイ 6f90-DE+s)2016/10/18(火) 05:57:45.16ID:dEpyDntM0
みなさんありがとうございます。
「nullを除いて要素を先頭から順に詰めていく」というニュアンスがほしかったんですが、
申し訳ないですがどれもしっくりきません・・・
あえて言うならdefragが近いのかな?(「順に」という意味合いが薄れそうですが)
もう少し自分で考えてみます。

>>351
すいません、>>344は適当に書きました。
メンバ変数はprivateで、それに対するget系、set系、clear等の関数を持たせています。
0353デフォルトの名無しさん (アウアウ Sa97-wgZ+)2016/10/18(火) 06:43:52.76ID:LmdowMbMa
shove_along
shove_front
0354デフォルトの名無しさん (ワッチョイ ffa6-8qPS)2016/10/18(火) 07:00:58.43ID:AebkJyW40
既に出てるけど removeNull でいいじゃん。

それとget系、set系なんて本当はいらないんじゃないの?(定期)
0355デフォルトの名無しさん (ワッチョイ 837b-IRN/)2016/10/18(火) 07:23:36.02ID:Wpvzcqb60
俺もremoveでいいと思う
0356デフォルトの名無しさん (ワッチョイ d70b-Oa01)2016/10/18(火) 08:23:40.28ID:4aavEEUm0
要素を取り除くけど間を詰めないってvectorで表現できるの?
詰められることは自明なんだし俺もremoveNullでいいと思う
0357デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/18(火) 08:25:07.57ID:ruDvmZsld
remove_nullだろスットコドッコイ
0358デフォルトの名無しさん (ワッチョイ 0b7b-/pIU)2016/10/18(火) 08:41:26.28ID:xb1+itk90
「nullを除いて要素を先頭から順に詰めていく」が何のために必要なのかによって
もう一歩抽象化した表現のほうが良いと思うけどな
0359デフォルトの名無しさん (ワッチョイ 4bfa-Oa01)2016/10/18(火) 08:41:27.16ID:UbcBgpHB0
>>352
広く自明なことは表現しないほうがスッキリするけどな。
仕事でないならば、まあ、個人の自由だけど。

俺も、「nullを消すのにその箇所を残す」というケースが思い浮かばない。
つまり、先頭方向に詰めると言うのは、nullを消すという表現に包含されていると思う。

因みに、標準ライブラリのalgorithmにremoveという汎用処理があるけどね。
0360デフォルトの名無しさん (ドコグロ MM6f-Oa01)2016/10/18(火) 13:45:26.66ID:oEjefhATM
>>344
普通はcompactionじゃない?
c++ならremove(null)だろうけど。
0361デフォルトの名無しさん (ワンミングク MM8f-tncL)2016/10/18(火) 14:55:04.10ID:f+/JDd8QM
compactionって言われると似たような値まで消えるのかな?と思わんでもない
0362デフォルトの名無しさん (ワッチョイ bb7b-8qPS)2016/10/18(火) 15:21:32.96ID:KgzKspbC0
remove_null_elemとか
0363デフォルトの名無しさん (ワンミングク MM8f-tncL)2016/10/18(火) 15:40:48.06ID:f+/JDd8QM
elemってなんだよelementsまで書かない意味はなんだよ
仮引数名ならともかくメソッド名にわけわからないオレオレ略語いれるやつにはプログラム書かないでほしい
0364デフォルトの名無しさん (スップ Sdcf-Oa01)2016/10/18(火) 16:47:41.58ID:/NcOCPm8d
比較的抽象的なプログラム書いてると「自然言語なんてどうでもいい」って気分に
なってくることがある。
(ことがある)
0365デフォルトの名無しさん (アウアウ Sa97-wgZ+)2016/10/18(火) 16:56:03.84ID:M5JRNYhHa
elemくらいエスパーしろよ
0366デフォルトの名無しさん (アウアウ Sa97-wgZ+)2016/10/18(火) 16:57:22.80ID:M5JRNYhHa
面倒臭いからもうtanetsuke_press()にしろよ
0367デフォルトの名無しさん (ワッチョイ 0b7b-/pIU)2016/10/18(火) 17:03:43.29ID:xb1+itk90
使うほうが内部データ構造を意識しなきゃいけない時点で色々間違ってる
0368デフォルトの名無しさん (ワッチョイ d70b-Oa01)2016/10/18(火) 17:14:46.02ID:4aavEEUm0
elemは辞書にも略語としてのってますが
どっちがオレオレだよ
0369デフォルトの名無しさん (スフッ Sd4f-Oa01)2016/10/18(火) 17:24:06.08ID:n5ndMwZ5d
標準ライブラリにあわせるなら略さないelementがいいかなー

std::min_elementとかstd::nth_elementがあるし
0370デフォルトの名無しさん (スップ Sdcf-Oa01)2016/10/18(火) 17:31:00.69ID:/NcOCPm8d
ほう、minとmaxか
0371デフォルトの名無しさん (オッペケ Srd7-Oa01)2016/10/18(火) 18:23:27.44ID:osS8ZMb3r
ID:xb1+itk90は有能
他は以下略
0372デフォルトの名無しさん (アウアウ Sa97-wgZ+)2016/10/18(火) 18:50:45.44ID:M5JRNYhHa
そんなこというなら
minはminimumじゃなくていいの!?
maxはmaximumじゃなくていいの!?
0373デフォルトの名無しさん (ワッチョイ ffa6-8qPS)2016/10/18(火) 19:39:21.14ID:AebkJyW40
>>370
皮肉な書き方だなwww
0374デフォルトの名無しさん (ワッチョイ bb7b-8qPS)2016/10/18(火) 19:53:01.27ID:KgzKspbC0
公開しない内部で使う関数だろうから抽象化云々の話じゃないと思うけどなあ
そういう場合はむしろ具体的な方がありがたい
0375デフォルトの名無しさん (ドコグロ MM2f-Oa01)2016/10/18(火) 22:30:08.79ID:ULk65OHBM
重要なのは一貫性。
0376デフォルトの名無しさん (ワッチョイ eb02-8qPS)2016/10/18(火) 22:47:05.89ID:oHxKXjdy0
一貫性なんかいらない
名前なんて直感で書け
0377344 (ワッチョイ 6f90-8qPS)2016/10/18(火) 22:51:36.99ID:dEpyDntM0
あれから色々とレスくださったようで、皆様ありがとうございます。

>>359
algorithmのremoveを知りませんでした。便利ですね。
これ使うとなると、もう名前はremoveNull以外ありえない気がしてきました。
0378デフォルトの名無しさん (ワッチョイ 8e79-9S67)2016/10/20(木) 00:26:24.57ID:kMYn5m+Q0
std::vector のイテレータは auto が使えて便利なのに...
for (auto i = v.begin(); i < v.end(); ++i)  i->clear(); // OK

イテレータが使えないクラスだと...
for (auto i = 0; i < v.size(); ++i)  f.getItem(i).clear(); // i は int、size() は size_t なので不可
for (auto i = v.size(); --i >= 0; )  f.getItem(i).clear(); // i は size_t なのでこの手も使えない
for (auto len = v.size(), i = 0; i < len; ++i)  f.getItem(i).clear(); // len は size_t なのに i は int なので不可

結局こうするしかないの?(いちいち型を調べてコーディングしないといけない?)
for (size_t i = 0; i < v.size(); ++i)  f.getItem(i).clear(); // OK
0379デフォルトの名無しさん (ワッチョイ 8e79-9S67)2016/10/20(木) 00:27:47.18ID:kMYn5m+Q0
↑訂正

std::vector のイテレータは auto が使えて便利なのに...
for (auto i = v.begin(); i < v.end(); ++i)  i->clear(); // OK

イテレータが使えないクラスだと...
for (auto i = 0; i < f.size(); ++i)  f.getItem(i).clear(); // i は int、size() は size_t なので不可
for (auto i = f.size(); --i >= 0; )  f.getItem(i).clear(); // i は size_t なのでこの手も使えない
for (auto len = f.size(), i = 0; i < len; ++i)  f.getItem(i).clear(); // len は size_t なのに i は int なので不可

結局こうするしかないの?(いちいち型を調べてコーディングしないといけない?)
for (size_t i = 0; i < f.size(); ++i)  f.getItem(i).clear(); // OK
0380デフォルトの名無しさん (ワッチョイ 40cf-AIfR)2016/10/20(木) 01:01:32.43ID:zFSijfsc0
>>379
size() の型と getItem() の引数の型(さらに意味)が合ってるとも限らないんだから、当然そうなる。
繰り返し書きたくないなら自分でイテレータを定義することも考えられる。
0381デフォルトの名無しさん (ササクッテロ Sp89-vevC)2016/10/20(木) 01:02:31.75ID:P1nLxcZlp
非メンバ関数のbeginとendに対応でもすればいいんでない
0382デフォルトの名無しさん (ワッチョイ 9ecc-YT5Q)2016/10/20(木) 01:57:04.73ID:7Z+Vf12w0
>>379
馬鹿は無能
auto i=0UL
数値の書き方位マスターしておけ馬鹿
0383デフォルトの名無しさん (ワッチョイ 40cf-AIfR)2016/10/20(木) 02:03:19.13ID:zFSijfsc0
>>382
それじゃ「いちいち型を調べてコーディングしないといけない」っていう問題は解決しないでしょ。
0384デフォルトの名無しさん (ワッチョイ 400b-YT5Q)2016/10/20(木) 02:43:43.87ID:uOjaASwy0
しかもその書き方からして
>>382はsize_tが常にunsigned longだとでも思ってるのかね
0385デフォルトの名無しさん (ワッチョイ 9ecc-YT5Q)2016/10/20(木) 03:40:09.45ID:7Z+Vf12w0
コンパイラがどんな型か警告表示してくれるだろバカ
0386デフォルトの名無しさん (ワッチョイ 9ecc-YT5Q)2016/10/20(木) 03:45:32.08ID:7Z+Vf12w0
何でもかんでもauto使ってんなよバカ
そんなにこだわるならdecltypeで型合わせぐらいしろ無能w
0387デフォルトの名無しさん (ワッチョイ 9f7b-CGyA)2016/10/20(木) 03:50:50.47ID:7bfVuAd+0
うわっ ドシロウトが逆ギレしてる
0388デフォルトの名無しさん (ワッチョイ fce9-ECoa)2016/10/20(木) 04:18:07.04ID:aF5aucOP0
つーか、なんでrange based forを使わないんだ?

template <typename T>
auto begin(T& v) { return &v.getItem(0); }

template <typename T>
auto end(T& v) { return &v.getItem(f.size()); }

int main()
{
for(auto& f : v) f.clear();
}

begin/endをグローバルに晒すのはあかんが、そこはADLでも使っときゃよかろう
0389デフォルトの名無しさん (ワッチョイ 407b-l6JH)2016/10/20(木) 10:45:24.78ID:9ULbv0m/0
v.push_back();
みたいなパラメタなしのオブジェクトの追加って出来ないんでしたっけ?
0390デフォルトの名無しさん (スップ Sdc8-YT5Q)2016/10/20(木) 10:47:37.29ID:MfOL1z1yd
emplace_back
0391デフォルトの名無しさん (ワッチョイ 407b-l6JH)2016/10/20(木) 11:09:43.49ID:9ULbv0m/0
>>390 トン
失礼しました。書く場所間違えました。
0392デフォルトの名無しさん (ワッチョイ 8063-YT5Q)2016/10/20(木) 21:02:34.90ID:GNTx+YfJ0
>>388
初心者スレにお帰りくださいどうぞ
0393デフォルトの名無しさん (ブーイモ MM6d-3F3B)2016/10/21(金) 15:52:53.18ID:0YIc9hk7M
シェルコマンドのteeみたいに、標準出力に出しつつファイルにも書くというのを簡単にやる方法ないですか?
0394デフォルトの名無しさん (ドコグロ MM9c-YT5Q)2016/10/21(金) 19:27:49.81ID:RUPp7NOtM
>>393
各々に出力するだけだろ
それ以上に簡単な方法は知らん
0395デフォルトの名無しさん (ワッチョイ 8012-YT5Q)2016/10/21(金) 19:30:03.05ID:9lmHJycm0
アスペはお帰りくださいどうぞ
0396デフォルトの名無しさん (ワッチョイ 1902-AIfR)2016/10/21(金) 20:25:18.61ID:N1TnnfYV0
system関数
0397デフォルトの名無しさん (ワッチョイ 8012-YT5Q)2016/10/21(金) 20:35:01.75ID:9lmHJycm0
アスペはお帰りくださいどうぞ
0398片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6d-ocd8)2016/10/21(金) 20:56:45.48ID:W9pHKgyoK
fgetsで標準入力を読み込んで
fputsで標準出力とファイルに出力。
fgetsが失敗するまで繰り返し。
0399デフォルトの名無しさん (ワッチョイ 8012-YT5Q)2016/10/21(金) 21:10:59.57ID:9lmHJycm0
>fputsで標準出力とファイルに出力
これを1回のfputsで行う方法を聞いているのだと思われるのだが
どうしてこうアスペが多いのか
0400デフォルトの名無しさん (ワッチョイ 407b-l6JH)2016/10/21(金) 21:25:14.31ID:R+XAmQY/0
そんなプログラムを作るって事でしょ
0401デフォルトの名無しさん (ワッチョイ 9f7b-CGyA)2016/10/21(金) 21:41:45.79ID:ib3L8+770
>>399
妄想でオナニーするお前よりマシ
0402デフォルトの名無しさん (ワッチョイ fa13-NERT)2016/10/21(金) 21:45:10.59ID:ZsrpoP/b0
>>399
お前ぱぁか?
0403デフォルトの名無しさん (ワッチョイ f2a6-AIfR)2016/10/21(金) 21:58:45.44ID:ru3MSCG60
顧客にすぐ「出来ます」と言っちゃうタイプ
0404デフォルトの名無しさん (ワッチョイ 40cf-AIfR)2016/10/22(土) 02:10:15.35ID:/xe20oMk0
>>393 http://www.boost.org/libs/iostreams/doc/functions/tee.html
0405デフォルトの名無しさん (ワッチョイ 96c0-8SCy)2016/10/22(土) 02:33:50.93ID:klBj43YX0
コマンドプロンプトが使えるアプリでログ取れば終わり
0406デフォルトの名無しさん (アウアウ Sa21-kC8Z)2016/10/22(土) 20:15:49.85ID:f4/lusDPa
無能のくせに偉そうな人だな
文系出身で中途半端にいい役職で『プログラミングなんて高卒のバカでもできる糞仕事』と見下してる初老の男とプロファイリングした
0407デフォルトの名無しさん (ワッチョイ fc91-ECoa)2016/10/23(日) 07:31:06.18ID:30sg95bV0
要するにロガーの作り方でしょ
クラッカーのつもりならそんくらい自力でできなきゃボーガスだよ
0408デフォルトの名無しさん (オッペケ Sr89-YT5Q)2016/10/23(日) 13:10:35.78ID:WezCc40Kr
やっつけでテキトーに作った
http://ideone.com/NXbvpB

strembufで束ねようとしたけど挫折した
0409デフォルトの名無しさん (ワッチョイ 177b-boQN)2016/10/23(日) 13:43:19.49ID:7ilqsgto0
http://ideone.com/k5UMkL
こんなんでよくね
0410デフォルトの名無しさん (ワッチョイ fe9f-yj6p)2016/10/23(日) 14:07:32.66ID:vw/ISU920
http://wordaligned.org/articles/cpp-streambufs#toctee-streams
0411デフォルトの名無しさん (ワッチョイ 8012-YT5Q)2016/10/23(日) 23:31:26.52ID:C+PRWnaX0
>ボーガスだよ
何だか「それアグリー」的な雰囲気の言葉
0412デフォルトの名無しさん (ワッチョイ 3e98-ECoa)2016/10/24(月) 20:50:12.71ID:E/5ebMOd0
時がたてば進歩する種族もいれば退化する種族もいるということだな
0413デフォルトの名無しさん (ドコグロ MM76-YT5Q)2016/10/25(火) 08:35:29.15ID:qhBf0fyVM
環境最適化ということだろ。
0414デフォルトの名無しさん (ワッチョイ 9f7b-YT5Q)2016/10/26(水) 05:31:19.44ID:8HtK1/f40
指定のポート番号が使用されているかをチェックする手法って有りませんか
ポート番号50000-53000をチェックしてそこが枯渇しているかを知りたいのですが....
0415デフォルトの名無しさん (ワッチョイ 96c0-8SCy)2016/10/26(水) 05:57:24.28ID:k//iL6vN0
netstatのソース見る
0416デフォルトの名無しさん (ワッチョイ 9f7b-YT5Q)2016/10/26(水) 06:38:49.56ID:8HtK1/f40
>>415
やはりnetstat使用して読み込んで
なんとか対応するしかないですかね...
0417デフォルトの名無しさん (ワッチョイ 96c0-8SCy)2016/10/26(水) 07:11:33.74ID:k//iL6vN0
netstatの出力をあなたのソフトの入力にしてもええんよ
0418デフォルトの名無しさん (ワッチョイ 1c7b-CGyA)2016/10/26(水) 08:08:50.50ID:fj1OjkCo0
普通のやりかたはbindしてみる
カーネル覗いて取得した時点に未使用でも、次の瞬間に未使用とは限らないからね
0419デフォルトの名無しさん (スップ Sdc8-YT5Q)2016/10/26(水) 10:27:54.06ID:Sr48dwwed
namespace hoge
{
template<typename T> inline auto distance(T first, T last)
{
return std::distance(first, last);
}
template<typename T> inline auto distance(const T* first, const T* last)
{
return std::distance(first, last);
}
template<typename InIt> inline auto hage(InIt first, InIt last)
{
return distance(first, last);
}
}
const auto a = std::string("abcde");
hoge::hage(std::cbegin(a), std::cend(s));
のようにすると
error: call of overloaded 'distance
とか言われます。何故ですか
hageのdistanceをhoge::distanceにするとビルド通ります。
0420デフォルトの名無しさん (スップ Sdb8-YT5Q)2016/10/26(水) 10:34:27.64ID:mKf0FX+od
>>417
一部として取り扱おうとしてるからそこまでできない気がする

>>418
bindとは一体
ちと調べてみる
0421デフォルトの名無しさん (ワッチョイ fc7b-vevC)2016/10/26(水) 10:56:41.43ID:ACgwXSXG0
>>419
確証はないけど、stringのイテレータからADLが働いて iteratorのdistanceが呼び出されてる?
0422デフォルトの名無しさん (ワッチョイ 8012-YT5Q)2016/10/26(水) 22:36:03.41ID:7pQsmdty0
むしろ依存名にADLが発動しないと
どうして思ったのか疑問だ
0423デフォルトの名無しさん (ワッチョイ 1c42-aZE5)2016/10/26(水) 23:38:34.13ID:Clt3F/CC0
ADLむずい
0424デフォルトの名無しさん (ワッチョイ 11eb-YT5Q)2016/10/26(水) 23:51:56.61ID:BrF7UdAp0
>>419
とりあえずhageの中でusing stdしてみれ。
0425デフォルトの名無しさん (ワッチョイ 11eb-YT5Q)2016/10/26(水) 23:52:41.68ID:BrF7UdAp0
>>419
とりあえずhageの中でusing namespace stdしてみれ。
0426デフォルトの名無しさん (ワッチョイ 1c42-aZE5)2016/10/26(水) 23:56:45.68ID:Clt3F/CC0
using std::distanceじゃねーの?
0427デフォルトの名無しさん (ワッチョイ 8fc0-1YMU)2016/10/27(木) 06:22:23.80ID:Fc/cX5mQ0
ハゲにはきつい流れ
0428デフォルトの名無しさん (アウアウ Sa7f-HRin)2016/10/27(木) 07:57:55.05ID:Nn5hsSboa
最近では大学の情報の演習で学生達にhogeが通用しないらしい
0429デフォルトの名無しさん (ドコグロ MMff-Jz20)2016/10/27(木) 08:11:15.74ID:uoSnPm98M
>>418
で、まともなソフトが bind しようとしてエラーになるとか
ほとんど嫌がらせツールだな w
0430デフォルトの名無しさん (ワッチョイ efcc-Jz20)2016/10/27(木) 11:24:55.25ID:qSpPUcQc0
>>426
バカなの?
0431デフォルトの名無しさん (ワッチョイ 53eb-Jz20)2016/10/27(木) 21:15:56.28ID:dkvgucCy0
>>426
その通りだね、フォローありがとう。
0432デフォルトの名無しさん (ワッチョイ 8fc0-1YMU)2016/10/27(木) 21:37:24.84ID:Fc/cX5mQ0
>>418
ダメに決まってんだろ
0433デフォルトの名無しさん (ワッチョイ 6b8c-0DI1)2016/10/28(金) 07:21:08.52ID:3Nhqv2un0
誰か助けて!

とあるWebページをWebBrowserで操作したいんだけど、IE11の場合にクリックが発生しないんです。
そのWebページのボタンのソースが下記の通り。

<p> <button class="rf-button-primary rf-block rf-large" name="submit" tabindex="3" >次へ</button> </p>

で、C#でのコーディングが下記の通り。NavigateでURLには接続済み。

WebBrowser1.Document.GetElementById("login_id").InnerText = "あああああ"
WebBrowser1.Document.GetElementById("passwd").InnerText = "いいいいい"
WebBrowser1.Document.GetElementById("submit").Focus();
WebBrowser1.Document.GetElementById("submit").InvokeMember("click");
⇒IE11だとクリックが発生しない。IE8ならクリックされる。

HtmlElementCollection all = WebBrowser1.Document.All;
HtmlElementCollection forms = all.GetElementsByName("submit");
forms[0].InvokeMember("click");
⇒こちらもクリックされない

どうしてもC#でIE操作をしないといけなくて、上記の件で数日はまってます。
どなたか、良いお知恵を!
0434デフォルトの名無しさん (ワッチョイ 8fc0-1YMU)2016/10/28(金) 07:25:16.11ID:ceXQtcCi0
何故か外人はスペースを許容しない
0435デフォルトの名無しさん (ワッチョイ 830e-Jz20)2016/10/28(金) 22:42:43.03ID:koqUfNSC0
セキュリティで制限かかっているんじゃね
0436デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/10/29(土) 05:06:44.13ID:QBwAgosHa
>>428
hogeなんて誰も使わないだろ
aaa
bbbでいいじゃん
0437デフォルトの名無しさん (ワッチョイ 8fc0-1YMU)2016/10/29(土) 05:24:19.28ID:BDi/WRZO0
foo
bar
じゃないの?
0438デフォルトの名無しさん (ワッチョイ b302-0DI1)2016/10/29(土) 13:10:15.08ID:pFjB62ef0
hogeの次はhageになってしまうので
ハゲ差別を避けるために使用を控えましょう
0439デフォルトの名無しさん (ワッチョイ 877b-corf)2016/10/29(土) 13:43:06.39ID:o+Lvra/M0
誰がハゲだと ぶっとばすぞー


  彡⌒ ミ∩      ∩_ ・∵’、
  (    )/ ⊂/"´ ノ )    >>438
 ⊂   ノ   /ω  /v
  (   ノ    し'`∪
   (ノ
0440デフォルトの名無しさん (スプッッ Sdff-Jz20)2016/11/01(火) 16:26:13.00ID:AeLbYNIbd
template<typename T> void hoge(T&&){}
右辺値参照だけ引数にとって左辺値参照はコンパイルエラーにするにはどうすればいいですか
0441デフォルトの名無しさん (ワンミングク MMff-N9KO)2016/11/01(火) 16:32:53.70ID:OqJPhveAM
std::is_rvalue_reference使う
0442デフォルトの名無しさん (オッペケ Sr7f-Jz20)2016/11/01(火) 17:40:33.25ID:Ijr4eA8jr
まず一行目と二行目以降が繋がるように
日本語を見直すべき
0443デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/01(火) 21:07:22.01ID:fAr6l5+la
>>440
いいよな〜、うちの会社みたいにバカばっかだと、コンパイルエラーが出るからって、hogeを修正しようとするからなw
0444デフォルトの名無しさん (ワッチョイ 6f91-xVgD)2016/11/01(火) 21:46:24.78ID:Bhxs0GQG0
>>442
おまえの首がそうであるように
繋がらなくていいものだ
0445デフォルトの名無しさん (ワッチョイ 8712-Jz20)2016/11/01(火) 22:15:00.82ID:QJ6aCEmm0
>右辺値参照だけ引数にとって左辺値参照はコンパイルエラーにする

どちらでもない型が渡されたときにどうなることを期待しているのか謎だ
0446デフォルトの名無しさん (ワッチョイ 8712-Jz20)2016/11/01(火) 22:20:41.04ID:QJ6aCEmm0
それ以前にC++の言語仕様上、不可能ではないかという気がした
int &&r = 0;
int &l = r;
hoge(r);//右辺値参照を渡す
hoge(l);//左辺値参照を渡す。rと区別がつかない
0447デフォルトの名無しさん (ワッチョイ 9b7b-Y/AO)2016/11/01(火) 22:39:11.57ID:jsOQZjCM0
>>446
バカなの?
0448デフォルトの名無しさん (ワッチョイ 6f91-xVgD)2016/11/02(水) 00:00:25.69ID:tBM/hLxy0
>>446
死ぬの?
右辺値参照のみからなる式は左辺値なんだよカス
0449デフォルトの名無しさん (ワッチョイ 53bf-Jz20)2016/11/02(水) 00:01:15.03ID:yfKcoFlH0
>>446
フルボッコワロタ
0450デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 02:04:31.39ID:stLp85Rpa
右辺値参照なんて
0451デフォルトの名無しさん (ワッチョイ efcc-Jz20)2016/11/02(水) 03:17:20.98ID:+12CfX+b0
>>446
&& の場合、変数が代入された場合はそいつの参照に
即値が代入された場合は、自動変数ここではrダッシュとでも言っておこうかそいつが自動的に生成され0が代入され、rはそいつの参照となるワケだよスカポンタン
0452デフォルトの名無しさん (ワッチョイ efcc-Jz20)2016/11/02(水) 03:19:52.16ID:+12CfX+b0
右辺値とか左辺値がどうのとかバカな訳者もほとんど理解してないからここら辺
0453デフォルトの名無しさん (ワッチョイ 8712-Jz20)2016/11/02(水) 07:14:14.71ID:oVgJ9kJG0
>>448,>>451
そんな当たり前のことを言い出してどうかしたのか?
0454デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 12:18:41.13ID:WvrLTJe+a
そもそも右辺値参照なんてどこで使うの?
0455デフォルトの名無しさん (ワントンキン MMff-N9KO)2016/11/02(水) 12:22:34.11ID:CjPrdZ5HM
コンストラクタの引数
要素追加メソッドの引数
0456デフォルトの名無しさん (ワッチョイ 870b-Jz20)2016/11/02(水) 12:25:10.06ID:BfJMJ0BQ0
またその質問か…
なんか3回目くらいな気がする
0457デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 12:26:57.99ID:WvrLTJe+a
>>455
それって使ってもいいだけで、使わなきゃいけない局面ではない
0458デフォルトの名無しさん (ワントンキン MMff-N9KO)2016/11/02(水) 12:30:09.29ID:CjPrdZ5HM
>>457
んなこといったら参照渡しって何のために使うの?
全部値渡しでいいじゃん
0459デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 19:11:59.20ID:ffEJ9Pyka
>>458
ええ、いいんじゃないの?
誰が否定したの?勝手に脳内補完してんじゃねーよ
0460デフォルトの名無しさん (ワッチョイ d741-JJ20)2016/11/02(水) 21:56:56.88ID:gYZGAk2v0
下記でアクセス違反が発生するのですが、なぜでしょうか?

#define ROWS 65536
#define COLS 32768

int main( int argc, char *argv[] )
{
try{
int (*spread)[COLS] = new int [ROWS][COLS];
cout << "new success" << endl;
for(int r = 0;r < ROWS;++r){
for(int c = 0;c < COLS;++c){
spread[r][c] = r * c;
}
}
}catch(std::bad_alloc){
cout << "std::bad_alloc" << endl;
}
cout << "end" << endl;
return 0;
}
0461デフォルトの名無しさん (ワッチョイ efcc-Jz20)2016/11/02(水) 22:04:55.74ID:+12CfX+b0
>>460
spreadは、配列のポインタなんだから0からROWSー1まできっちり領域割り当ててやらんとダメだよ
0462デフォルトの名無しさん (ワッチョイ 8712-Jz20)2016/11/02(水) 22:15:58.50ID:oVgJ9kJG0
はて、きっちり割り当てているように見えるのだが
0463デフォルトの名無しさん (ワッチョイ 039a-/iKQ)2016/11/02(水) 22:37:01.13ID:4xvcQiyV0
sizeof(int) * 65536 * 32768 の値が
size_t を超えてるとかなんとか
0464デフォルトの名無しさん (ワッチョイ e336-a62L)2016/11/02(水) 22:44:10.98ID:uZvutknx0
C++はint int[n][m]でn*m分確保できないよ

int (*spread)[COLS] = (int (*)[COLS])new int [ROWS * COLS];
0465デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 22:45:32.02ID:4mR/aPxka
>>461
君はもうちょっと勉強しようねw
0466デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 22:46:50.68ID:4mR/aPxka
>>464
君も何を言ってるのかな?w
0467464 (ワッチョイ e336-a62L)2016/11/02(水) 22:49:04.87ID:uZvutknx0
1行目new int[n][m]のタイポね
これだと「m個配列へのポインタ」がn個分の領域になっちゃう
0468デフォルトの名無しさん (ワッチョイ 870b-0+qa)2016/11/02(水) 23:12:14.38ID:BfJMJ0BQ0
>>463のようだね
windowsでx86でコンパイルするとaccess violation、x64ならちゃんと動いてるっぽい
これ計算すりゃわかるが8Gbyteの配列確保してるからねwww
0469デフォルトの名無しさん (ワッチョイ efcc-Jz20)2016/11/02(水) 23:18:42.03ID:+12CfX+b0
んだよ
エラーも確認してねぇのか
0470デフォルトの名無しさん (アウアウカー Sa7f-O9pn)2016/11/02(水) 23:23:11.09ID:4mR/aPxka
んだよ
エラーも確認してねぇのに、レスしてんのかよw
0471デフォルトの名無しさん (ワッチョイ d741-JJ20)2016/11/02(水) 23:25:07.86ID:gYZGAk2v0
>>467
> 1行目new int[n][m]のタイポね
> これだと「m個配列へのポインタ」がn個分の領域になっちゃう
COLSが100だとうまく動く理由はなんでしょうか?

>>468
ありがとございます。
理解できました
0472デフォルトの名無しさん (ワッチョイ f012-DGmA)2016/11/03(木) 00:09:36.12ID:5v1rzvvh0
>>471がアクセス違反になった理由を本当に理解したのだろうか
否
0473デフォルトの名無しさん (ワッチョイ bc41-uTye)2016/11/03(木) 00:18:28.81ID:kJS9Zyl00
はい
0474デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/03(木) 00:23:11.51ID:7ZICN8qB0
どこでぬるぽが返ってきたかわかってる?
0475デフォルトの名無しさん (ワッチョイ f012-DGmA)2016/11/03(木) 00:31:40.58ID:5v1rzvvh0
たまたま使っていたバギーなコンパイラーが
operator newにサイズ0が渡してしまったからであろうことは想像に難くない
0476デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/03(木) 00:58:39.61ID:zn/YuigXa
>>472
↑
うちの会社にもこう人いる、装置は全く動かせないくせに、言語の細かいところをあ〜だこ〜だ難癖つける・・・
とりあえず、運転かけろよって言いたいが先輩なんで、ハイハイって言語の講釈を聞いてるよw
0477デフォルトの名無しさん (ワッチョイ 5136-MBlh)2016/11/03(木) 01:21:01.21ID:R/FpM2Sr0
>>471
すまん、俺が間違えてたわ
newでこういう指定できないと思い込んでた
>>464,467 は無視してくれ
0478デフォルトの名無しさん (ワッチョイ bc41-uTye)2016/11/03(木) 01:25:59.67ID:kJS9Zyl00
>>477
ご助言頂けただけでありがたいです
0479デフォルトの名無しさん (ワッチョイ b0cf-8n5s)2016/11/03(木) 01:39:50.54ID:K6Wnr5VL0
>>460
C++11 以降なら >463 みたいな場合は bad_alloc が飛ぶはず。
http://melpon.org/wandbox/permlink/ZDbQOtW875RuZX8i
コンパイラが古いのも問題かもしれない。
0480デフォルトの名無しさん (ワッチョイ bc41-uTye)2016/11/03(木) 04:15:54.82ID:kJS9Zyl00
コンパイラが古いとなぜ分かるんでしょうか?
1年前だから古いといえば古いものを使っていますが・・・
0481デフォルトの名無しさん (ワッチョイ f012-DGmA)2016/11/03(木) 07:01:02.29ID:5v1rzvvh0
2行目と3行目以降の論理の繋がりが皆無なレスを真に受けるとはこれ如何に
0482デフォルトの名無しさん (ワッチョイ b0cf-8n5s)2016/11/03(木) 10:28:44.92ID:K6Wnr5VL0
>>480
確保サイズ計算のオーバーフローで bad_alloc が飛ばずアクセス違反が出るようなら
使ってるコンパイラは C++11 に準拠していないわけで、そうなるとコンパイラが古いのかな、という話。
0483デフォルトの名無しさん (ワッチョイ b07b-KjJO)2016/11/03(木) 13:36:27.26ID:T3nfQxtH0
コンパイラのversionでわかるかと
0484デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/03(木) 19:16:22.41ID:Vul1aP3Ia
コンパイルのバージョンなんて書き込みあったっけ?
0485デフォルトの名無しさん (ワッチョイ bc41-uTye)2016/11/06(日) 20:40:55.59ID:5/z3Ppl40
c++11でstd::threadを使う場合
CreateEvent , WaitForSingleObjectに相当するイベントオブジェクト、待機関数は無いんですかね?
0486デフォルトの名無しさん (ワッチョイ b00b-DGmA)2016/11/06(日) 21:01:30.08ID:2bZiNVtl0
std::condition_variableがそれじゃない
0487デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/06(日) 21:07:34.70ID:nNpCbmf20
>>485
pthread使えよ
0488デフォルトの名無しさん (ワッチョイ bc41-uTye)2016/11/06(日) 21:38:09.61ID:5/z3Ppl40
>>486
確かにそれっぽそうなんですが、waitする前にmutexをlockするとか、新たに別の変数で待機を解除していいか
どうかを監視するみたいなんですよね
↓みたいな。なんでmutexが関係あるのかわからないんですよ
std::unique_lock<std::mutex> uniq_lk(mtx);
cv.wait(uniq_lk, []{ return is_ready;});
0489デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/06(日) 21:45:21.01ID:nNpCbmf20
pthread_mutexで調べて出直して来い
Win32のイベントとはちと使い方が異なる
0490デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/06(日) 21:48:43.84ID:RUueNHTqa
↑
シカトされてんのに気付かないのかなw
0491デフォルトの名無しさん (ワッチョイ f012-DGmA)2016/11/06(日) 21:54:47.47ID:6peifhf80
>>488
>なんでmutexが関係あるのかわからない
規格が手本にしたPOSIXがunkoだったからとしか言いようがない
因みにそれだと先にnotifyしてしまったときに無期限に待つ恐れがあるのでもう一工夫必要
0492デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/06(日) 21:55:05.53ID:nNpCbmf20
>>490
横槍うぜぇんだよカス
0493デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/06(日) 21:57:34.97ID:nNpCbmf20
>>488
posixも知らないのかよゴミだなおまえ
0494デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/06(日) 21:59:41.64ID:RUueNHTqa
↑
シカトされてんのに気付かないのかなw
0495デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/06(日) 22:01:25.43ID:nNpCbmf20
>>494
オメェは関係ねぇだろが!!カス!!
0496デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/06(日) 22:15:27.43ID:RUueNHTqa
↑
シカトされてのに気付かないのかなw
0497デフォルトの名無しさん (アウアウカー Sab5-YC6c)2016/11/06(日) 23:01:20.60ID:aqA72S6ka
しかと見届けた
0498デフォルトの名無しさん (ワッチョイ e90e-DGmA)2016/11/07(月) 00:06:48.35ID:A+CQ33bm0
>>491
それでokだった気が
lambdaの方が先に実行される
0499デフォルトの名無しさん (ワッチョイ b00b-umBA)2016/11/07(月) 00:44:50.44ID:hOJqMng10
while (!pred())
wait(lock);
と同じと書いてあるからそのままでいいね
0500デフォルトの名無しさん (ワッチョイ 137b-fIL9)2016/11/07(月) 05:14:50.94ID:LP07CtT70
>>488
is_readyをtrueにしてnotify呼ぶ所でもそのmutexをlockすんのよ
それによってis_readyがスレッド間でデータ競合を起こさない事が保証できる
それと、起こす方で
std::unique_lock<std::mutex> uniq_lk(mtx);
cv.notify_one();
is_ready=true;

って先にnotifyやっても大丈夫だし、
cv.notify_one();がそのスレッドにおいてis_readyと無関係と解っちゃうとコンパイラは実行順入れ替えても良いことになってるからmutexは必要
0501デフォルトの名無しさん (ワッチョイ f012-DGmA)2016/11/07(月) 09:04:20.78ID:LhBXfA3o0
目が節穴でis_readyが見えていなかった失礼
そのままでいいな
0502デフォルトの名無しさん (スプッッ Sd78-DGmA)2016/11/07(月) 19:20:53.81ID:tYz+iLYod
構造体A {
char x:
char y:
char z:
}

この構造体を利用して
x = X; y = Y: z = Z;

を入れたときに、char M にメンバをすべてくっつけたもの入れたい
結果としてはMを出力したらXYZになる感じ
sprintf使えばできるけどなにかよい方法ないかな

memcpy使えば数字以外いれたときは出来るんだけども数字に対応しておらず....
0503デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/07(月) 19:29:08.77ID:6FEgodAd0
頭悪そうな質問
0504デフォルトの名無しさん (ワッチョイ b0d9-9WVo)2016/11/07(月) 20:45:39.28ID:byJeXCae0
unionとか
0505デフォルトの名無しさん (ワッチョイ e63c-DGmA)2016/11/07(月) 21:30:32.07ID:d9jGgeoo0
>>502
壊滅的に質問の仕方が下手
素直に
> sprintf使えばできる
コードを示してより良くしてくれ
って聞いた方がマシ
0506デフォルトの名無しさん (ワッチョイ e6cc-DGmA)2016/11/07(月) 21:35:17.40ID:p1gslKqT0
>>502
M自体が意味不明
0507デフォルトの名無しさん (アウアウカー Sab5-DGmA)2016/11/07(月) 21:48:49.65ID:NSOgDJ1Na
>>502
char Mという1バイトの変数に、x, y, zの3バイト分の情報はどうやっても入らない。
もしC言語の「文字」と「文字列」の違いと言われてピンと来なければ、まずは入門書をちゃんと読んだ方が良い。
memcpyで出来たというのも、多分メモリ破壊とかしててホントは間違ってるコードなのに結果だけ見て上手く行ってると思ったんじゃないかな。
0508デフォルトの名無しさん (ワッチョイ 1342-Xqtn)2016/11/07(月) 22:12:08.22ID:gBohP7ES0
エスパー試験
0509デフォルトの名無しさん (オッペケ Srbd-DGmA)2016/11/08(火) 00:24:31.36ID:dpiS9oHSr
using namespace stdのデメリットがよくわかりません
いちいち全部に書かなくていいから楽だなくらいにしか思ってないです
0510デフォルトの名無しさん (ワッチョイ d39b-DGmA)2016/11/08(火) 01:11:21.13ID:OC2mPEWp0
>>509
namespaceの利点を勉強してくるといいよ
そしてusing〜を使うなと嫌われるのはヘッダに仕込んだ場合だね
0511デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/08(火) 02:11:15.34ID:U/Ju3opfa
>>510
わからないから質問してんのに、勉強してこいっておまえ頭大丈夫か?
0512デフォルトの名無しさん (ワッチョイ bc41-m5qj)2016/11/08(火) 03:39:14.96ID:jUCVZHcM0
1999年にVC++6で開発されたPowerMemoというテキストエディタを知ってる人いませんか?
0513デフォルトの名無しさん (ワッチョイ d39b-DGmA)2016/11/08(火) 03:52:42.54ID:OC2mPEWp0
>>511
using namepace stdのデメリットが分からないって質問だろ
その前の段階(namespace自体)を勉強しとかないと答えだけ聞いても分からんだろ
0514デフォルトの名無しさん (ドコグロ MM9c-DGmA)2016/11/08(火) 10:35:52.67ID:4GLeeCmoM
>>511
調査領域の紹介は、質問に対する一般的な回答の一つだろ。何言ってるんだ?
0515デフォルトの名無しさん (アウアウカー Sab5-YC6c)2016/11/08(火) 14:00:33.58ID:rvD8rxF+a
初心者スレへ行くべき人が迷い込んでるようだ
0516デフォルトの名無しさん (ガラプー KKe9-X9b7)2016/11/08(火) 15:55:08.19ID:N6Z2CcGoK
前々から思ってたんだけど、なんでこのスレってこんなにカオスなの?
0517デフォルトの名無しさん (ワッチョイ 35a1-17Cv)2016/11/08(火) 17:47:01.88ID:Y2FRHjzL0
C++は、なんでもありの言語だ
0518デフォルトの名無しさん (スップ Sd28-DGmA)2016/11/08(火) 17:52:18.40ID:hiIWIrRod
>>516
ビタミンC摂れよ
0519デフォルトの名無しさん (スップ Sd78-DGmA)2016/11/08(火) 18:25:36.80ID:aTyOKuZTd
ビタミンCは毎日5g取ってるつーの
0520デフォルトの名無しさん (ワッチョイ 1c7b-O4f6)2016/11/08(火) 18:30:07.47ID:JJ0NYty+0
私は創価の会員でした。
すぐ隣に防衛省の背広組の官舎があるのですが、
自分の家の窓にUSB接続のwebカメラを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。

別に大したものは写っていません。ゴミだしとか奥さんが子供を遊ばせている所とか。
官舎が老朽化して使われなくなってから、
今まで法人税(うちは自営業です)をほぼ払わなくても済んでいたのが、
もう守ってやれないのでこれからは満額申告するように言われました。
納得がいかないと言うと、君は自業自得で餓鬼地獄へ落ちるから、
朝夕に南無妙法蓮華経と三千回ずつ唱えて心をきれいにしなさいと言われ
馬鹿らしくなって脱会しました。

それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全部自分の出来心から起きたことで、どこに訴えるわけにもいかないのですが、
何とかあの人たちと縁を切った上で、新しい始まりを迎える方法はないんだろうか。
0521デフォルトの名無しさん (ワッチョイ e97b-Xqtn)2016/11/08(火) 21:29:26.29ID:K/CEbVc50
>>509
未来永劫標準ライブラリとカチ合わないクラス名、関数名を使用していると保障できない
規格がバージョンアップして名前がカチあってコンパイルが通らなくなるとか
0522デフォルトの名無しさん (ワッチョイ e63c-DGmA)2016/11/09(水) 00:04:03.76ID:HQuuA4JA0
>>511
ヒントを与えて自分で勉強させる
まともな教育機関なら普通に行われてることですけど?
0523デフォルトの名無しさん2016/11/09(水) 00:13:09.27ID:F1SjLtcC
>>511はヒントの内容について指摘していると思われるのだが
それをヒントを与えること自体の是非にすり替えるとはこれ如何に
0524デフォルトの名無しさん2016/11/09(水) 00:18:49.69ID:DQ3ACD+s
Q xのデメリットがわかりません
A xのメリットについて学びなさい
0525デフォルトの名無しさん (ワッチョイ bd02-8n5s)2016/11/09(水) 00:45:39.68ID:KgoTFmJb0
名前の重要性について書かれている本を読めば自然と理解できるようになるはずなのに
0526デフォルトの名無しさん (ワッチョイ b0cf-8n5s)2016/11/09(水) 01:02:07.17ID:2Gsv14Fx0
>>524
x = using namespace std にしても x = namespace にしても実際の流れとは違うな。
0527デフォルトの名無しさん (ワッチョイ ae36-DGmA)2016/11/09(水) 02:22:12.27ID:nRk9y0sr0
こうして、質問者はほったらかしでどうでもいい議論が続く。いつものことだけど。
0528デフォルトの名無しさん (アウアウカー Sab5-YC6c)2016/11/09(水) 05:19:39.91ID:gMPnv8i3a
>>519
採りすぎでは…
0529デフォルトの名無しさん (ドコグロ MM54-DGmA)2016/11/09(水) 06:48:01.55ID:/9TV8DCoM
>>523
> >>511はヒントの内容について指摘していると思われるのだが
どうやったらそんなアホな解釈ができるんだよ w
0530デフォルトの名無しさん (ワッチョイ 265b-/dsW)2016/11/09(水) 07:04:38.98ID:mvL1ocfP0
文字列で受け取った式をそのまま評価するにはどうしたら良いでしょうか?
ユーザーが
0531デフォルトの名無しさん (ワッチョイ 265b-/dsW)2016/11/09(水) 07:06:49.08ID:mvL1ocfP0
すみません、途中で切れてしまったので再送です。

文字列で受け取った式をそのまま評価するにはどうしたら良いでしょうか?
ユーザーが"3 + 3"と入力したら6を返したいのですが、自分でパーサーのようなものを作るのが普通なのでしょうか。
標準のAPIで同じ機能を提供しているものなどないでしょうか
0532デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 07:45:23.57ID:DQ3ACD+s0
calc起動する
数式をペーストする
答えをコピーする

標準のAPIで出来る
0533デフォルトの名無しさん (アウアウカー Sab5-m5qj)2016/11/09(水) 07:54:45.45ID:eResyB5Pa
>>532
Windowsの話?
使ったことないからわかりません。
unixの話です
0534デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 07:58:04.70ID:DQ3ACD+s0
bc起動する
数式流し込む
結果読み出す

標準のAPIだけ
0535デフォルトの名無しさん (ドコグロ MMde-DGmA)2016/11/09(水) 08:13:08.39ID:vxWv5SjdM
なぜかは知らんけど自分の用途にぴったり合った API が存在してるはすだ
って思ってる人って定期的に現れるよね...
0536デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/09(水) 08:28:10.08ID:dCf8u24Zd
式って一口に言われても四則演算だけなのか<math>にあるようなものには対応するのか
0537デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 08:33:12.09ID:DQ3ACD+s0
四則演算だけでも対応している「標準のAPI」が有るなら教えてやれよ
無いならムダな事を聞き返してどうしたいんだ?
0538デフォルトの名無しさん (ササクッテロロ Spbd-m5qj)2016/11/09(水) 09:14:06.52ID:B8a3+5dpp
標準apiじゃなきゃいくらでもあるだろ

再帰下降パーサで自分で作るもよし、
あとは好きなのを使えば
https://github.com/ArashPartow/math-parser-benchmark-project
0539デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 09:20:43.59ID:DQ3ACD+s0
お題改変してドヤ顔 w
0540デフォルトの名無しさん (ササクッテロロ Spbd-m5qj)2016/11/09(水) 09:28:00.86ID:B8a3+5dpp
>>539
この質問の内容で標準だけから探しているとでも思ったか?
0541デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 09:50:15.71ID:DQ3ACD+s0
見苦しいぞ お題改変ドヤ顔 w
0542デフォルトの名無しさん (アウアウカー Sab5-DGmA)2016/11/09(水) 10:00:56.21ID:JAiOn0XNa
>>540
質問者が標準のAPIでと明記してるよ
0543デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/09(水) 11:03:00.38ID:dCf8u24Zd
標準ライブラリじゃなくてか
0544デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 11:05:25.72ID:DQ3ACD+s0
因縁つけるだけのクズ ID:dCf8u24Zd
0545デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/09(水) 11:44:28.92ID:dCf8u24Zd
>>544
なにいってんだ?
0546デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/09(水) 11:46:20.68ID:dCf8u24Zd
だいたいスレ違いの質問なんだから丁寧な回答が返ってこなくても当然じゃないか
0547デフォルトの名無しさん (ワッチョイ f07b-6WlR)2016/11/09(水) 12:10:13.93ID:DQ3ACD+s0
自覚してないのか、ほんまもんのクズだな

536 デフォルトの名無しさん (スッップ Sd28-DGmA)[sage] 2016/11/09(水) 08:28:10.08 ID:dCf8u24Zd

式って一口に言われても四則演算だけなのか<math>にあるようなものには対応するのか

543 デフォルトの名無しさん (スッップ Sd28-DGmA)[sage] 2016/11/09(水) 11:03:00.38 ID:dCf8u24Zd

標準ライブラリじゃなくてか
0548デフォルトの名無しさん (アウアウカー Sab5-YC6c)2016/11/09(水) 12:22:30.84ID:vRs11tELa
このスレ、凄い疲れる
0549デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/09(水) 12:51:37.23ID:dCf8u24Zd
>>547
どこがだよ?
0550デフォルトの名無しさん (ワッチョイ f012-DGmA)2016/11/09(水) 20:47:15.73ID:F1SjLtcC0
今日の>>537は健常者
0551デフォルトの名無しさん (ワッチョイ 3b7b-DGmA)2016/11/09(水) 21:16:14.60ID:hqC3fQTa0
シングルトンパターンってオブジェクト指向に逆行してるって認識でよろしいか
0552デフォルトの名無しさん (ワッチョイ 3ec0-GpcS)2016/11/09(水) 22:05:13.52ID:QOOLd5xM0
ソースコードに埋め込んでビルドして実行してもいい
0553デフォルトの名無しさん (ワッチョイ caa6-8n5s)2016/11/09(水) 22:45:08.80ID:6KDHWgk30
>>551
グローバル変数警察とシングルトン警察に包囲されて困っています。
プログラム終了まで保持したいデータは、どこにどうやって保持しておけばいいの?
0554デフォルトの名無しさん (ワッチョイ ef23-PwKp)2016/11/10(木) 09:17:19.60ID:tKSmyIgp0
>>551
普通にオブジェクト指向の考え方の一つでしょ。
0555デフォルトの名無しさん (スプッッ Sd2f-PwKp)2016/11/10(木) 09:21:10.18ID:4G3scR0Yd
プログラム終了まで保持しないといけないデータってなんぞや
0556デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/10(木) 10:08:23.07ID:ABjoCTHbd
>>555
ファイルやDBから読んでconstなオブジェクトにマップしたデータとか
0557デフォルトの名無しさん2016/11/10(木) 15:30:22.42
ソースコードに埋め込んだ文字列って、プログラム終了まで保持されるデータの一例じゃないの
0558デフォルトの名無しさん (ドコグロ MM3f-PwKp)2016/11/10(木) 20:27:28.86ID:6KREf9X3M
普通この流れだとリテラル文字列とかは含めないと思うけどね
0559デフォルトの名無しさん (ワッチョイ 9fa6-PwKp)2016/11/10(木) 20:39:29.56ID:HPUhQyng0
>>557
それは実行時の記憶領域のどこかに保持されるとは限らないんじゃ?
0560デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/10(木) 21:10:06.13ID:AQTsjJgJ0
どうしてそう思ったのかkwsk
0561デフォルトの名無しさん (ワッチョイ 9fa6-teht)2016/11/10(木) 22:26:32.62ID:HPUhQyng0
>>560
いやただ大昔の記憶。
もちろん今は違うが
0562デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/10(木) 23:26:45.28ID:rHN41dOJ0
>>555
アプリケーションの設定
0563デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/10(木) 23:34:47.54ID:OlwUa71hd
まあそういったデータをグローバル変数の類いを使わずにどうやって保持すればいかってこと。
0564デフォルトの名無しさん (アウアウカー Saaf-PwKp)2016/11/10(木) 23:35:52.51ID:K3LTtULZa
アプリケーションの設定はアプリケーション全体を表す「アプリケーションクラス」のメンバとして持たせるべきだと思うんだけど

シングルトンって一度も使ったほうがいいという場面に出会ったことがない
0565デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/10(木) 23:57:28.74ID:OlwUa71hd
>>564
アプリケーションクラスがシングルトンになってそう。
0566デフォルトの名無しさん (ワッチョイ a70b-OdgI)2016/11/11(金) 00:06:08.65ID:JQalwGbJ0
>>565
「アプリケーションクラス」はmainのローカル変数として持せる
アプリケーションの根っこになるクラス

class Application
{
private:
Settings settings;

...

};

-------------------------

int main(){
Application app;
return app.run();
}

みたいな感じで
0567デフォルトの名無しさん (ワッチョイ 9fa6-teht)2016/11/11(金) 00:17:23.45ID:PnTC2bkW0
>>566
なるほど。
でもそれだと app にアクセスする方法は?
0568デフォルトの名無しさん (ワッチョイ 9fa6-teht)2016/11/11(金) 00:19:43.79ID:PnTC2bkW0
appが何もかもやるという前提ならいいけど、、、
0569デフォルトの名無しさん (ワッチョイ a70b-OdgI)2016/11/11(金) 00:31:32.34ID:JQalwGbJ0
Applicationは最上位のクラスだからある意味appが何もかもやる
さらに具体的な実装はApplicationのメンバなどにその実装を持った下位のクラスのオブジェクトを持たせる

appには誰もアクセスしない
settingsオブジェクトを直接ほしい下位のクラスがあるならコンストラクタとかでconst参照なsettingsオブジェクトを渡す
0570デフォルトの名無しさん (ワッチョイ 9fa6-teht)2016/11/11(金) 07:00:03.66ID:PnTC2bkW0
appが抱えたデータを他に渡しながらあれやれこれやれ、って指示するのか。
app はMVCでいうMの立場だっけ。忘れた。。。
0571デフォルトの名無しさん (ワッチョイ 8fc0-fsQo)2016/11/11(金) 07:34:02.27ID:3L5PjATE0
CApplication theApp;
とグローバルにしてアクセスさせそう
0572デフォルトの名無しさん (アウアウカー Saaf-PwKp)2016/11/11(金) 11:52:30.34ID:zthLig1Ya
>>570
MVCモデルは関係ないでしょう。単に従来のC言語で書いたプログラムのグローバル変数とメイン関数などをクラスでひとまとめにしたイメージ。
0573デフォルトの名無しさん (ワッチョイ a7e6-Og7/)2016/11/11(金) 22:26:22.33ID:KRrvmV9d0
MVC 0(4,4),4(11)
0574デフォルトの名無しさん (ガラプー KK6f-sVJD)2016/11/11(金) 22:45:17.85ID:X9bDlJ5dK
↓片山がまた変なの作ってんぜ
https://github.com/katahiromz/unboost

アホなコードばかりでウケる(笑)
0575デフォルトの名無しさん (ガラプー KK6f-sVJD)2016/11/11(金) 22:50:02.26ID:X9bDlJ5dK
ひっでぇクソコードwwwww
0576デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/11(金) 23:20:52.19ID:hk5EgzxW0
誰ですかそれは
ひょっとして自分の名前?
0577デフォルトの名無しさん (ワッチョイ b741-Cgco)2016/11/12(土) 00:12:35.28ID:KzeRaaZ80
まぁ、boostも糞だがなw
0578デフォルトの名無しさん (ワッチョイ 6b7b-AIKs)2016/11/12(土) 00:43:30.14ID:oOpF8FTi0
>>577
お前の素晴らしいと思うコードって何よ
0579デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/12(土) 00:44:24.54ID:k8bltqbl0
何で構ってるんだ
0580デフォルトの名無しさん (アウアウカー Saaf-9MLS)2016/11/12(土) 02:21:48.85ID:IXyvKN6xa
>>578
loki
0581デフォルトの名無しさん (ワッチョイ 033c-PwKp)2016/11/12(土) 14:25:48.67ID:gqCY5gkO0
Lokiはうんこの筆頭だから流行らなかった
0582デフォルトの名無しさん (ワッチョイ b741-Cgco)2016/11/12(土) 14:34:51.44ID:KzeRaaZ80
職業プログラマに聞きたいんだが、このスレなんかで議論されてるようなこと
を議論できる連中と仕事してる?

内の会社はもう馬鹿ばっかだよ
C言語でCStringの使い方教えてなんて・・・
0583デフォルトの名無しさん (ワッチョイ 6fcc-PwKp)2016/11/12(土) 14:44:12.10ID:cO6bOQVq0
MfCのゴミライブラリまだ使っているのかw
0584デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/12(土) 14:47:56.18ID:k8bltqbl0
ここの住民は有名著者のコードですらうんこだからな
そこら辺のパンピーとは遠くかけ離れているくらいレベルが違う
0585デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/12(土) 16:05:44.77ID:xFEBk2cxa
けど実務上は問題ことをちまちま言ってるやつマジウゼー、その手の連中って小さなサンプルプログラムを動かしてるだけだからだろうけど、実務になると全く仕事が遅いw

trueとTRUEが違うって小一時間しゃべってたuz
0586デフォルトの名無しさん (ワッチョイ 9fa6-teht)2016/11/12(土) 16:10:58.69ID:gb02Qdrd0
単に一流と二流以下の違いでしょうね
0587デフォルトの名無しさん (ワッチョイ 6fcc-PwKp)2016/11/12(土) 16:15:36.77ID:cO6bOQVq0
バカは==TRUEと書きたがる
0588デフォルトの名無しさん (ワッチョイ a77b-MJQ8)2016/11/12(土) 16:20:39.01ID:189sR7ch0
TRUEって使えるの?
0589デフォルトの名無しさん (ワッチョイ 6fcc-PwKp)2016/11/12(土) 16:22:31.99ID:cO6bOQVq0
大概代入するときくらいだろ
使えるのは
0590デフォルトの名無しさん (ワッチョイ 7f13-ChQh)2016/11/12(土) 16:28:01.27ID:kNoTIrA70
true は使わない,0 か !0 なら使う
0591デフォルトの名無しさん (ワッチョイ b741-Cgco)2016/11/12(土) 16:49:39.10ID:KzeRaaZ80
↑
みたな薀蓄をたれる仕事ができない、言語厨がまじでうざいんですよ
誰からも煙たがられてるw
0592デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/12(土) 18:15:56.30ID:UDM+dEIO0
小一時間語られるのは困るがTRUEとtrueの区別がついていないのはやヴァい
0593デフォルトの名無しさん (ワッチョイ b741-GHBc)2016/11/12(土) 18:57:54.66ID:KzeRaaZ80
実害はないよな
0594デフォルトの名無しさん (ワッチョイ 1721-teht)2016/11/12(土) 18:59:29.19ID:krEuKHoC0
これ規格違反で未定義動作ですよって教えてあげても
実害ないつって突っぱねられる
0595デフォルトの名無しさん (ワッチョイ 7f13-ChQh)2016/11/12(土) 19:13:35.58ID:kNoTIrA70
>>593
true と比較するのはさすがにまずい
0596デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/12(土) 19:50:29.41ID:UDM+dEIO0
bool型の値なら何らまずいことはないな
それにoptionalが規格に入ったらC#のbool?型のように==trueが一つのイディオムとして定着する可能性がある
0597デフォルトの名無しさん (ワッチョイ 3742-PwKp)2016/11/12(土) 20:13:14.97ID:6CxQBemN0
>>596
c#は真偽値への暗黙変換がないからだろ…
0598デフォルトの名無しさん (ワッチョイ 6f3c-PwKp)2016/11/12(土) 20:13:37.60ID:HzMgTMM90
>>587
同意する
0599デフォルトの名無しさん (ワッチョイ 3724-Og7/)2016/11/12(土) 20:21:41.97ID:rJpS/lOf0
バカは==TRUE

effective c++に書いてあったね
0600デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/12(土) 20:49:09.62ID:UDM+dEIO0
>>597
595が何故まずいと言っているのか不明だったので二つ目は「暗黙変換が無くても==trueを認めない派」の意見の可能性を考えて書いた
0601デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/12(土) 20:51:57.75ID:k8bltqbl0
1以外を認めないなら==TRUEでもいいじゃないか
0602デフォルトの名無しさん (ワッチョイ b7ba-teht)2016/11/12(土) 20:52:52.52ID:5Ks0o+070
WIN32APIのごく一部に「成功の場合はTRUE」を返す仕様のものがある。
そういうのを使う場合はちゃんとTRUEと比較しないと。
0603デフォルトの名無しさん (ワッチョイ 4b3c-PwKp)2016/11/12(土) 21:24:00.83ID:r/NVFQLY0
if ...(((条件 == TRUE) == TRUE) == TRUE) ...

比較することは無意味で無駄だと思うんですが
0604片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-sVJD)2016/11/12(土) 21:30:43.19ID:YXaeD7T9K
GetMessage関数みたいに戻り値の型がBOOLなのに-1を返すことがある。
0605デフォルトの名無しさん (ワッチョイ 3724-Og7/)2016/11/12(土) 21:37:18.97ID:rJpS/lOf0
>>604
それな
初めて聞いたとき盛大に噴いたよ
0606デフォルトの名無しさん (ワッチョイ 9f5b-O45g)2016/11/12(土) 21:59:22.99ID:yzX6y5C+0
関数別に戻り値をしっかり確認しとけという事だな。
0607デフォルトの名無しさん (ワッチョイ 237b-e60R)2016/11/12(土) 22:42:30.11ID:Yzzspfq30
PostMessageみたいにメモリ枯渇状態を検査出来るAPIもある
0608デフォルトの名無しさん (ワッチョイ 4b3c-PwKp)2016/11/12(土) 23:03:32.61ID:r/NVFQLY0
GetMessageの戻り値は0以外,0,-1で、==TRUE関係ないし
0609デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/12(土) 23:08:34.50ID:k8bltqbl0
C++でWIN32API使うの止めようよ
0610デフォルトの名無しさん (ワッチョイ b742-h9op)2016/11/12(土) 23:37:03.17ID:kipOk1dA0
>>607
懐かしいwww
0611デフォルトの名無しさん (ワッチョイ cbcf-0mri)2016/11/13(日) 02:28:14.81ID:AObJk+Tu0
恥を承知で質問します
動的と静的ってなんですか?
0612デフォルトの名無しさん (ワッチョイ 7f6c-Eub9)2016/11/13(日) 02:31:28.95ID:MlX3eJeN0
動的 プログラムを実行中
静的 プログラムが出来るとき
0613デフォルトの名無しさん (ワッチョイ ef9f-c0Mc)2016/11/13(日) 02:37:46.61ID:dNzEqU/S0
タイミングじゃねーだろw
動的: 変化するまたは変更できる
静的: 変化しないまたは変更できない
0614デフォルトの名無しさん (ワッチョイ a77b-MJQ8)2016/11/13(日) 02:51:28.93ID:p69c0fcP0
static と非static ですか
0615デフォルトの名無しさん (ワッチョイ cbcf-0mri)2016/11/13(日) 03:01:22.57ID:AObJk+Tu0
やっぱり一般的抽象的にいうと
そのような答えになってしまうのですね
難しい...
もっと例を見てきます
回答ありがとうございました( ◠‿◠ )
0616デフォルトの名無しさん (アウアウカー Saaf-qpFb)2016/11/13(日) 03:21:28.70ID:K3FoX/1Pa
>>611
静的: コンパイル時にはっきりすること
動的: プログラム実行時になってようやくはっきりすること
0617デフォルトの名無しさん (ワッチョイ 53dc-lwUs)2016/11/13(日) 06:51:08.99ID:b60b+x1P0
「型の決定が静的/動的」とか「記憶領域の確保が静的/動的」とか
言葉を使う局面によって意味が動的に変わるから、一概に言えないかと。

>>611 までの流れだと型の決定から引き続いているようにも見えるけど
より一般的な質問かもしれんし。
0618デフォルトの名無しさん (ワッチョイ b719-+5S2)2016/11/13(日) 08:41:39.01ID:Ze746jZO0
ある環境下で、オブジェクトXが変数xによって
一定の値なら静的、変化するのなら動的ということでしょう。 
0619デフォルトの名無しさん (ドコグロ MM5f-PwKp)2016/11/13(日) 08:55:22.03ID:ZjdX2IN8M
>>608
> 戻り値は
> 0以外,
> 0,
> -1
もうこれだけで使えない奴ってわかるわ...
0620デフォルトの名無しさん (アウアウカー Saaf-PwKp)2016/11/13(日) 09:15:55.19ID:o7qa5/voa
>>615
例を見てくるということは、入門書か何かで学習しているということかな。具体的にどんな場面で使われているか書いてくれた方が、適切に説明してもらえると思う。
0621デフォルトの名無しさん (オッペケ Sr2f-PwKp)2016/11/13(日) 11:34:35.75ID:In1erg+4r
ぬるぽ
0622デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/13(日) 11:36:43.05ID:Pq8SlZ8Ra
>>592
うちの会社はそんなバカばっかだよ
正直、暗黙の型変換やめてほしいわ
c++は型に関してはいい加減だよな
0623デフォルトの名無しさん2016/11/13(日) 14:37:32.47
暗黙の型変換をしたら逐一コンパイラに報告させるにはどうしますか?
0624デフォルトの名無しさん (ワッチョイ 237b-e60R)2016/11/13(日) 15:39:01.27ID:jy2VGr1W0
整数の昇格は?
0625デフォルトの名無しさん (JP 0H2f-PwKp)2016/11/13(日) 15:51:58.25ID:h9I5bQBkH
報告させるべきだろ
0626デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/13(日) 15:56:08.87ID:N8gd2/8w0
>>623
Visual studioなら警告のレベルを上げる
0627デフォルトの名無しさん2016/11/13(日) 16:36:56.81
暗黙の型変換の一切を禁止するために、それが起こったらコンパイルエラーにして停めてもらう手立てはありますか?
0628デフォルトの名無しさん (ワッチョイ 2302-teht)2016/11/13(日) 17:00:38.58ID:N8gd2/8w0
>>627
Visual studioなら設定で警告をエラー扱いにする
0629デフォルトの名無しさん (ワッチョイ ef23-PwKp)2016/11/13(日) 17:06:28.33ID:Ggvvb/9+0
>>622
C89時代ならまだしも、C++03世代以降でもかなり厳密で厳しいと思うけどな。
暗黙の型変換や汎整数拡張は基本安全なんだから、放っておいて構わなくね?

まあ、テキトーな奴はそこに気づかずに、大抵逆変換する羽目になるわけだが。
そこで何も考えずにキャスト使うってのが結果的に無意味でタメ息って気持ちもわかるけどね。(無意味どころか害悪か…)
0630デフォルトの名無しさん2016/11/13(日) 17:18:06.20
>>628
それは、特定の警告をエラー扱いに変更できる機能がVisual Studioにあるという意味ですか?
0631デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/13(日) 17:25:55.04ID:0Fbg53ina
vsは使ったことない
0632デフォルトの名無しさん (ワッチョイ 6f3c-PwKp)2016/11/13(日) 18:19:20.80ID:1Wg4/lqD0
>>630
なんで勝手に「特定の」とか言ってるの?
0633デフォルトの名無しさん (ワッチョイ 6b7b-AIKs)2016/11/13(日) 18:40:28.31ID:Qq0UEWQx0
>>632
言っちゃいけないの?
0634デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/13(日) 18:48:48.33ID:0Fbg53ina
小学生か?
0635デフォルトの名無しさん2016/11/13(日) 19:30:14.91
僕の質問で争うのはやめて><
0636デフォルトの名無しさん (アウアウカー Saaf-PwKp)2016/11/13(日) 19:57:07.32ID:/saQOq5Qa
>>632
暗黙の型変換だけエラーにしたいというのだから、特定の警告だけエラーにできないかという質問は自然な流れでしょ。
0637デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/13(日) 20:36:59.92ID:a+qs4PME0
>暗黙の型変換や汎整数拡張は基本安全なんだから

書き込むスレを間違えたんだろうか
0638デフォルトの名無しさん (ワッチョイ b741-GHBc)2016/11/13(日) 22:24:55.82ID:NMmsi9ae0
Bjarne StroustrupがC++を開発したとWikiに書いてあるんだが、
彼が作ったコンパイラってどこにあるの?
彼が作ったアプリってなに?
0639デフォルトの名無しさん (ワッチョイ 6f25-wOPQ)2016/11/13(日) 22:32:48.53ID:T5HJKVS/0
>>638
Cfrontだよ
0640デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/13(日) 22:37:56.26ID:a+qs4PME0
>>638
ハゲは教育に熱心なのでC++版ハローワールドが有名
#include <iostream>
using namespace std;
int main() {
 cout << "こんにちわ頭頂部" << endl;
}
後は電卓とか
0641デフォルトの名無しさん (ワッチョイ b741-GHBc)2016/11/13(日) 23:00:35.40ID:NMmsi9ae0
なんだ↑みたいないい加減なコーディングしかできないのか

一体彼は何を作ったのか?
0642デフォルトの名無しさん2016/11/13(日) 23:06:41.79
サクラダファミリアとC++はどちらが先に完成するの?
0643デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/13(日) 23:22:03.20ID:a+qs4PME0
>>641
ハゲをバカにしたいだけなのか?
今更過ぎる

質問者「&より結合の優先度が高い<<をcoutに使うのおかしくね?」
ハゲ「うるせー、お前が括弧で囲めば問題無い」
質問者「int* a, b;はおかしいだろ」
ハゲ「うるせー、お前が二行に分けて書けば問題無い」
質問者「operator++(int)って何だよint関係ないだろ」
ハゲ「うるせー、後置と前置の区別するために何か必要だった」
こんなアホにマトモなアプリが作れるはずがない
0644デフォルトの名無しさん (ワッチョイ 1721-teht)2016/11/13(日) 23:23:24.31ID:ilz+vPJs0
お前らよりよっぽど信頼できるけど
0645デフォルトの名無しさん2016/11/13(日) 23:51:50.62
ベル研究所勤めた経験あるし、殆どのおまえらよりエリートだよ
0646デフォルトの名無しさん (アウアウウー Saef-MJQ8)2016/11/13(日) 23:53:41.27ID:C/Pw/tkra
ハゲをバカにするやつはだいたいハゲ
0647デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/13(日) 23:55:16.71ID:4XzDdvbY0
学者とエンジニアの違いが分からないやつ
0648デフォルトの名無しさん (ワッチョイ b741-GHBc)2016/11/14(月) 00:02:24.57ID:Ndr4XdNg0
学者って能書きばっかたれるけど、ろくに実用的なアプリケーションは書けないという解釈でいい?
0649デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/14(月) 00:07:25.41ID:jAcRtxvy0
学者が生み出した知見がなければ何もできないエンジニア
0650デフォルトの名無しさん (ワッチョイ b741-GHBc)2016/11/14(月) 00:12:47.54ID:Ndr4XdNg0
エンジニアが生み出した優秀なアプリケーションがなければ何もできない学者
0651デフォルトの名無しさん (ガラプー KK8f-sVJD)2016/11/14(月) 00:14:21.00ID:L1+AAJlgK
はいはい、引き分け
0652デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/14(月) 00:14:44.78ID:jAcRtxvy0
奴らは紙と鉛筆だけでも議論できる
0653デフォルトの名無しさん (ワッチョイ b3dc-1TgI)2016/11/14(月) 00:15:58.29ID:LIuhN9U50
環境はVisualStudio2013 C++11です。

ラムダ式が__cdeclの呼び出し規約になるようなんですが、
これを__stdcallの呼び出し規約にするにはどうすればよいでしょうか?
0654デフォルトの名無しさん (ガラプー KK8f-sVJD)2016/11/14(月) 00:21:56.39ID:L1+AAJlgK
きゃすと
0655デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/14(月) 00:25:00.45ID:i1ftbqug0
2015に替える
0656デフォルトの名無しさん (ワッチョイ a712-PwKp)2016/11/14(月) 00:48:31.24ID:i1ftbqug0
2013は手元に無いが、ラッパーで回避できないだろうか
http://ideone.com/4g6L3p
0657653 (ワッチョイ b3dc-1TgI)2016/11/14(月) 00:52:26.46ID:LIuhN9U50
ご回答、ありがとうございます。

auto Func = [](){};
void ( __stdcall *pFunc )() = Func;
pFunc();

これでいけました。
0658デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/14(月) 01:39:42.17ID:V+VrG6L9a
無茶だなw
0659デフォルトの名無しさん (ワッチョイ 6fcc-wOPQ)2016/11/14(月) 05:07:00.10ID:zD2dzTMZ0
引数が加わったらアウトっぽいけど
0660653 (ワッチョイ b3dc-vSWD)2016/11/14(月) 08:07:26.84ID:LIuhN9U50
>>659
>>657は単純化して書きましたが、実際は引数ありでうまくいってます。
0661デフォルトの名無しさん (ワッチョイ 6fcc-wOPQ)2016/11/14(月) 08:43:55.10ID:zD2dzTMZ0
ってことは、コンパイラが先読みしているということか
0662デフォルトの名無しさん (ガックシ 066f-Wm+f)2016/11/14(月) 11:18:48.25ID:OG43Ant86
質問です。
全てのファイルで共有したいインスタンスをどこでインスタンスにしようかと考えていて、以下のような方法にたどり着いたのですが、こういった手段はいかがなものでしょうか?私自身がどうもデメリットを見つけられないのでわかる人がいれば教えていただきたいです。

・目的
 グローバルなインスタンスを共有したい

・解決法
 あるクラスの中に、インスタンスにしたいクラスのポインタを返り値とする静的メンバ関数を定義する。その関数は内部に静的ローカル関数を持っており、初回に生成したインスタンスのポインタを返すことで、任意の場所でそのインスタンスを共有することができる。
0663デフォルトの名無しさん (ワンミングク MM9f-wOPQ)2016/11/14(月) 11:34:52.95ID:lF+ke9mEM
Singletonパターン
マルチスレッド
で検索したらよいよ
0664デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/14(月) 11:35:39.83ID:p9I0c4r8d
>>662
むしろ普通じゃないか?
スレッドセーフというメリットもあるし。
0665デフォルトの名無しさん (ガックシ 066f-Wm+f)2016/11/14(月) 13:30:08.26ID:c27dNlfC6
663,664<< ありがとうございます。
言葉の使い方からマルチスレッドのように思われて申し訳ないのですが、複数のファイルを分割コンパイルするシングルスレッドのプログラムです。
とりあえず、これでやってみようと思います。
ありがとうございます。
ありがとうございます。
0666デフォルトの名無しさん (スプッッ Sd1f-PwKp)2016/11/14(月) 13:46:42.32ID:YNRyhGyhd
>>665
どういたしまして
0667デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/14(月) 13:59:10.94ID:p9I0c4r8d
>>665
返したポインタを勝手に delete されないようにすればなお良しかと
0668デフォルトの名無しさん (ワッチョイ 6b7b-AIKs)2016/11/14(月) 17:04:27.22ID:piz44Xxh0
ポインタじゃなく参照返せば
0669デフォルトの名無しさん (ドコグロ MM5f-wOPQ)2016/11/15(火) 12:17:29.02ID:xBccvLt8M
>>662
ポインタじゃなくて参照返しだな。
deleteされると面倒。
0670デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/15(火) 13:20:04.55ID:mEh6VPdid
コンストラクタとデストラクタ共に private にすりゃいい
0671デフォルトの名無しさん (オッペケ Sr2f-PwKp)2016/11/15(火) 18:02:22.21ID:U5BXT8ILr
>deleteされると面倒
どうしてポインタを見ると脊髄反射でdeleteする猿が前提なんだ
0672デフォルトの名無しさん (スッップ Sd1f-PwKp)2016/11/15(火) 18:16:01.44ID:mEh6VPdid
unique_ptr のコンストラクタに入れちゃうかもよ
0673デフォルトの名無しさん (スップ Sd1f-PwKp)2016/11/15(火) 18:22:15.98ID:uP+sSxOcd
ポインタを受け取るコンストラクタは削除して欲しい
0674デフォルトの名無しさん (ブーイモ MM1f-9xtG)2016/11/15(火) 20:03:30.29ID:I8Y/RIDfM
boost::serializationとboost::mpiを使って自作クラスをboost::mpi::broadcastに突っ込むと
コンストラクタがprivateなせいでコンパイルエラーになるのですが、これはpublicに変えるしか手がないでしょうか?
ちなみにtextやxmlのアーカイブは問題なくできてます。
0675デフォルトの名無しさん (ワッチョイ b741-Cgco)2016/11/15(火) 20:59:40.95ID:MCxe4Q5a0
boostなんか得体の知れないような連中が作ってるものよくつかえるな
0676デフォルトの名無しさん (ワッチョイ 1330-m2xO)2016/11/15(火) 21:42:39.82ID:qAmoFSyg0
>>674
具体的にどういう状況でエラーになっているのさ
broadcastの呼び出しでエラーになっているのか
broadcastの呼び出しをコメントアウトしたらエラーは出なくなるのか?
0677デフォルトの名無しさん (ワッチョイ 1326-Og7/)2016/11/15(火) 21:55:02.08ID:PldPJ2O30
C++で複雑なことをしようとしないことだな
0678デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/15(火) 22:48:00.51ID:yn+Z04BJ0
C++使ってると無駄に複雑なことしたくなる
0679デフォルトの名無しさん (ブーイモ MM1f-9xtG)2016/11/15(火) 22:53:39.46ID:I8Y/RIDfM
コンストラクタ(引数有り)はprivateにし、インスタンス化はスタティックメンバ
static shared_ptr<T> create(…); にやらせていたんですが、こういう場合
boost::serialization::load_construct_data の特殊化はどうやるのかがよく分からなくて・・・
コンストラクタがpublicなら普通に配置newを使えば済むのですが。

すいません、帰宅したらコードを整理して上げてみます。
0680デフォルトの名無しさん2016/11/15(火) 22:58:58.73
複雑なことは別言語でやるべきだったのか
0681デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/15(火) 23:49:19.88ID:yn+Z04BJ0
キモイコード書いて満足出来るのはC++だけ
0682デフォルトの名無しさん (ワッチョイ 1330-m2xO)2016/11/15(火) 23:57:43.18ID:qAmoFSyg0
>>679
load_construct_dataを自作クラスのfriendにするだけじゃないのか
0683デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/16(水) 01:22:36.30ID:quMTIaBia
>>681
そのキモくて、満足してるコード晒してみ
0684デフォルトの名無しさん (ワッチョイ 1326-Og7/)2016/11/16(水) 01:37:08.17ID:vodKK2vI0
#define FINALLY(code) ...
...
FINALLY
(
 delete a;
 delete b;
)

ラムダのお陰でこういうキモいコードが書きやすくなった
ばんにゃい
0685デフォルトの名無しさん (アウアウカー Saaf-KkUe)2016/11/16(水) 01:49:38.55ID:quMTIaBia
それがキモいのか
0686デフォルトの名無しさん (ワッチョイ 1326-Og7/)2016/11/16(水) 02:09:24.21ID:vodKK2vI0
まぁC++にfinallyが無いのが悪いよね
RAIIを徹底しろって言われてもなぁ
スタイルを強要するのはC++の精神に反していると思うが、どうなんだろう
C用のライブラリも使うし、いちいちラッパー書くのも鬱陶しい
それにリソースの開放だけじゃなく
何かのフラグを忘れずに戻すだとか、些細な用途も考えられるので
finallyはあったほうが良いと思うがなぁ
使う使わないは自由なわけで
コンパイラに実装するのは楽勝なはずなのに頑なに規格に入れないんだよなぁ
今となってはラムダ使えってことなのかも知らんが
世界中でいったいどれほどの俺俺finally代用マクロが生成されたことだろうかな
しらんが
0687デフォルトの名無しさん (ワッチョイ 1721-wOPQ)2016/11/16(水) 07:01:25.70ID:3WPZ+2zN0
逆だわ
別の言語やってるとfinallyのだるさに辟易してデストラクタが欲しくなる
0688デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/16(水) 07:52:18.43ID:6l5h8+SN0
両方あってもいいんじゃないのか
0689デフォルトの名無しさん2016/11/16(水) 13:44:49.49
ハウルの動く城みたいになる
0690デフォルトの名無しさん (ワッチョイ a702-teht)2016/11/16(水) 20:11:26.76ID:6l5h8+SN0
周囲からはとっくになってると思われている
0691デフォルトの名無しさん (ワイモマー MM2f-5NgJ)2016/11/16(水) 21:24:49.33ID:d9154uZbM
mapのキーにstructを使おうとしています。
参考として、たとえばサイト
http://programming-tips.info/use_struct_as_key_of_map/cpp/index.html
などを見ると、 bool operator < をオーバーロードしましたが、
<= == != > >= は定義不要なのでしょうか?

上記サイトではinsertしたあとイテレータで一通り参照する
サンプルなのでoperator < だけオーバーロードすればよい
という例だと考えるべきでしょうか?

あるいはこちらのサイトでは
http://marupeke296.com/CPP_map.html
「整数なので、境界線が重なるのは許容します。よって<=や>=を使っているわけです。」
と書いてあります。

mapのキーにstructを使ううえで、どういう場合にどの演算子を
オーバーロードすればよいかお教え下さい
0692デフォルトの名無しさん (アウアウカー Saaf-PwKp)2016/11/16(水) 22:09:14.35ID:i8H97El6a
mapで使われるのは<だけで他は使われない
2番目のサイトは誤り
0693デフォルトの名無しさん (ワッチョイ 4378-wOPQ)2016/11/16(水) 22:24:36.06ID:nbUq085w0
>>691
基本的に < だけあれば、他の比較も行えるからね。
0694691 (ワイモマー MM8f-5NgJ)2016/11/16(水) 23:27:11.73ID:/Uxm/UCLM
お二方、レスありがとう。チョット気になっているのは、簡略化して書くと
以下のようなコードで
struct S {
double x, y, z;
...
bool operator < (const S& rhs) const {
if (x < rhs.x) { return true; }
if (x > ...
}
};
std::map<Struct S, int> mp;
mp[{1.,2.,3.}] = 3;
...その他いろんな値を設定;

auto it = mp.find({4.,5.,6.});
if (it != mp.end()) {
it->second = 4.,5.,6.に対応する新しい値;
} else {
mp.find({4.,5.,6.}) = 初期値;
}

キーがあったときは値を更新し、なかったときだけ作成するように
したいのですが、このfindによるキーが同じかの比較も
operator < が呼び出され、==のオーバーロードは不要と
考えてよろしいでしょうか?
0695デフォルトの名無しさん (ガラプー KK6f-sVJD)2016/11/16(水) 23:31:33.53ID:qcIR6hueK
不要
0696片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK8f-sVJD)2016/11/16(水) 23:37:44.67ID:qcIR6hueK
std::mapのテンプレート引数を見ると、既定値にstd::lessがあって、
これが比較を行う関数オブジェクトのクラスになっている。
この引数に普通の関数を渡すことも可能だ。
0697691 (ワイモマー MM8f-5NgJ)2016/11/16(水) 23:41:06.48ID:/Uxm/UCLM
皆さんレスありがとうございました。
参考にさせていただきます。
0698679 (ブーイモ MMb8-HoDo)2016/11/17(木) 00:03:31.85ID:Rr61xgyfM
遅くなりましたがコードを上げてみました。
コンストラクタがprivateかどうかは全く関係ない話でした、すいません。
http://melpon.org/wandbox/permlink/aobPnv2RC7MdBXDM

要はスマートポインタをメンバに持つオブジェクトをMPI送受信したいのですが、やり方がよく分かりません。
ビルドは通るのですが、コメントアウトしている行を有効にすると実行時にassertion errorが出てしまいます。

boost::mpiにおけるシリアライズはメモリ確保は自動でやってくれないということでしょうか?
どなたか助けてくれると嬉しいです。
0699679 (ブーイモ MMb8-HoDo)2016/11/17(木) 19:16:41.93ID:k9HYI3rMM
自己解決しました。
save_construct_data の第二引数は const B* b とconstを付けるべきところを付けないせいで特殊化が効かず、
送り側のアーカイブ書き出しができていない状態になっていました。
お騒がせしました。
0700デフォルトの名無しさん (ワッチョイ 9c41-ke/V)2016/11/17(木) 22:13:01.17ID:gXcsVs3+0
condition_variableってなんでこんな面倒なのになっちゃったの?
win32 eventのほうが俄然簡単
つか、なんでmutexが必要なのよw
0701デフォルトの名無しさん (ワッチョイ 777b-X8JF)2016/11/18(金) 00:54:05.87ID:AWVeX8cW0
Win32 CreateEventの方が(安全に書こうと思うと)難しいと思うんだが
0702デフォルトの名無しさん (ワッチョイ b58a-N7ik)2016/11/18(金) 01:29:07.43ID:0wbmiFLE0
spurious wakeupなんてものがなければな
0703デフォルトの名無しさん (アウアウカー Sa41-NI89)2016/11/18(金) 02:35:51.61ID:rYklyRRBa
>>702
またまた〜知ったかぶってw
そんなもんほぼほぼねーよ
0704デフォルトの名無しさん (オッペケ Sra9-2XGH)2016/11/18(金) 08:11:45.54ID:LAZ6YWJ3r
MSVCでハマったな
pred書いたらうまく行ったのでバグだと想ってたけど
仕様通りだったのね
0705デフォルトの名無しさん (スプッッ Sdc8-2XGH)2016/11/18(金) 20:38:50.21ID:DIRjkFuBd
Googleテスト使用してたらいきなりバッファオーバーランで落ちるようになったんだけど!?なったんだけどおおおおお!?
0706デフォルトの名無しさん (ワッチョイ 777b-X8JF)2016/11/19(土) 00:53:52.46ID:0cH3YNKy0
>>700
職場にmutexの必要性が解らないやつ居るけど、そいつの書くコード一見動いてるように見えるけど競合起こすようなテストコード書いてやるとすぐデッドロックしたりクラッシュするよ。
お前のコードは大丈夫か?
0707デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/19(土) 02:21:54.20ID:njNLW44t0
eventは競合を防止するためものじゃないよ
勉強しなおし
0708デフォルトの名無しさん (ワッチョイ 777b-X8JF)2016/11/19(土) 02:53:06.01ID:0cH3YNKy0
>>707
そう言ってるように見えるならお前もヤバいな
0709デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/19(土) 03:05:10.86ID:c1whnyQZ0
MSVCはゴミだから勉強なんかしなくていいぞ
0710デフォルトの名無しさん (ワッチョイ b978-hqew)2016/11/19(土) 08:09:56.03ID:Fvzt4zI10
質問です。

button.SetPosition().SetX(100);

のように記述することはできないでしょうか。
現在は

button.SetPosition(Position(100,button.GetPosition().GetY()));

と記述していて、二度手間です。
0711デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/19(土) 08:56:20.22ID:NRaI0uul0
>>710
Y側の情報はどこいったんだ?
0712デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/19(土) 09:04:47.53ID:njNLW44t0
>>708
おまえは相当理解できていないな
0713710 (ワッチョイ b978-hqew)2016/11/19(土) 09:23:14.66ID:Fvzt4zI10
>>711
Yは元の値から変更せずにそのままにしたいのです
0714デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/19(土) 09:39:45.16ID:njNLW44t0
>>710

Set〜(引数なし)->Set〜
って
0715710 (ワッチョイ b978-hqew)2016/11/19(土) 10:02:09.91ID:Fvzt4zI10
>>714
参照返しを利用して
button.GetPosition().SetX(100);
とすることには成功したのですが、
SetPositionのチェックを通っておらず、
結局隠蔽できていないので
やはり仕様的に不可能っぽいですよね・・・
0716デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/19(土) 10:59:16.86ID:n62t6E1k0
buttonの仕様も開示せずに
独りで結論に至ったようだ
0717デフォルトの名無しさん (ワッチョイ ff7b-2XGH)2016/11/19(土) 11:10:39.06ID:H8+m/F9h0
>>710
それ専用の関数作ってラップしたらだめなんか?
0718デフォルトの名無しさん (アウアウカー Sa41-uD5J)2016/11/19(土) 11:29:30.58ID:xSGFVzopa
>>715
そのGetPositionとやらが非constの参照を返してたら、なんのためにカプセル化してんの?
0719デフォルトの名無しさん (ワッチョイ f64f-Th+s)2016/11/19(土) 12:23:03.41ID:ooeD+atP0
>>710
class Setter {
Button& button_;
public:
Setter(Button& button) : button_(button) {}
void SetX(int x);
};
void Setter::SetX(int x) {
button_.SetPosition(Position(x,button_.GetPosition().GetY()));
}
みたいなクラスを作ってSetPosition()で返すんじゃだめなの?
0720デフォルトの名無しさん (ワッチョイ 1d26-qSQP)2016/11/19(土) 12:58:52.44ID:WWFUnGVk0
余計なことを、するな
C++をするうえで一番大事な格言である
もう一度言う、余計なことはするな

button.SetPosition().SetX(100);

どうしても↑の書き方じゃなければダメなのか?

button.SetPositionX(100);

↑で十分である
0721デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/19(土) 13:12:50.80ID:yE4XFjUyd
余計なことを、言うな
0722デフォルトの名無しさん (アウアウカー Sa41-WhrX)2016/11/19(土) 13:23:19.26ID:ygHmZoSwa
Java臭い書き方は嫌気がする
0723デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/19(土) 13:31:26.31ID:yE4XFjUyd
そいつぁ一体どんなんやつだえ?
0724デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/19(土) 13:44:45.31ID:c1whnyQZ0
メソッドチェインに慣れた人が|で繋ぐコードを見たらガチで吐きそう
0725デフォルトの名無しさん (アウアウカー Sa41-uD5J)2016/11/19(土) 13:44:56.19ID:xSGFVzopa
>>722
c++っぽい書き方とは?
0726デフォルトの名無しさん (ワッチョイ 7c16-qSQP)2016/11/19(土) 17:51:01.60ID:sr81SFH40
病気みてえにいちいちnewするやつ
0727デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/19(土) 18:14:57.50ID:njNLW44t0
std::begin,endってなんのために存在するの?
0728デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/19(土) 19:07:00.06ID:c1whnyQZ0
インターフェイス
0729デフォルトの名無しさん (ワンミングク MM40-RUi6)2016/11/19(土) 19:16:49.86ID:F1b1qVMYM
>>727
IteratorパターンとAdapterパターンを組み合わせたもの
0730デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/19(土) 20:56:13.34ID:njNLW44t0
コンテナにはbegin,endあるからいらなくね?
0731デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/19(土) 21:04:19.20ID:WWFUnGVk0
ところがそうはならなかったのだ
なぜなら、C++的にはメタプログラミングを売りにしたいから
メタプログラミングなど普通の人は手を出したりしないのだが
ライブラリ製作者はそうもいかない
メタプログラミングの観点からみると、何よりも大事なのは見た目
タックタイピングであるから見た目が重要
だから新しいC++ではobj.func()とfunc(obj)のどちらのスタイルであっても
統一的に呼び出されようという動きまである
最終的にどういう風にまとまるかは誰にもわからんがね
とにかく、見た目を合わせよう、ということ
0732デフォルトの名無しさん (ワッチョイ 40cf-XpIe)2016/11/19(土) 21:13:22.81ID:Mm4bQs3t0
>>727
生配列含めてコンテナ以外に対応する手段のため。
0733デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/19(土) 21:25:22.12ID:c1whnyQZ0
>>730
テンプレート引数として渡したときコンテナでも生配列でも共通のコードで動かせたら便利だよね
0734デフォルトの名無しさん (ワッチョイ 9c42-RUi6)2016/11/19(土) 21:25:52.99ID:6yXjpj2f0
>>730
あるかどうかわからんやろ
0735デフォルトの名無しさん (アウアウカー Sa41-WhrX)2016/11/19(土) 22:12:57.31ID:u7t10x6ma
歳をとると抽象的抽象的に話を進めたくなる。君も時期分かるじゃて…
0736デフォルトの名無しさん (ワッチョイ 56c0-E4Cj)2016/11/19(土) 22:14:53.93ID:7AeWBbSu0
なんか人当たりが中傷的だな
0737デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/19(土) 22:18:42.48ID:NRaI0uul0
>>734
地味にいいね
0738デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/19(土) 22:52:22.46ID:c1whnyQZ0
老人になるとコードじゃなくて数式で書き始める
0739デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/19(土) 23:41:21.17ID:njNLW44t0
>>734
ばかは黙ってて
0740デフォルトの名無しさん (ワッチョイ 9c42-RUi6)2016/11/19(土) 23:53:35.55ID:6yXjpj2f0
>>739
なんでばかなの
コンテナにbeginとendはないけどbeginぽいものとendぽいものがあったときに特殊化で対応できるやん
ばかはおまえやで
0741デフォルトの名無しさん (アウアウカー Sa41-uD5J)2016/11/19(土) 23:56:25.62ID:59ey7pPWa
>>740
雑魚はどいてろよ
0742デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/20(日) 00:03:20.02ID:0gf46MVG0
>>740
地味にいいね
0743デフォルトの名無しさん (アウアウカー Sa41-2XGH)2016/11/20(日) 00:59:54.97ID:6zdd6FMDa
実際std::beginとstd::endがあるから配列にrange-based-forが使える

有用性が分かったのでc++0xではstd::cbeginとstd::cendも追加される
0744デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/20(日) 01:13:47.79ID:VOEYuZOA0
int* p = new int [3];
にも使えるのかしらん
0745デフォルトの名無しさん (スッップ Sdb8-RUi6)2016/11/20(日) 01:29:12.98ID:P0ab8cpKd
配列とポインタの違いは小学校何年生で学んだっけかな
0746デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/20(日) 01:32:13.95ID:9K83SdzS0
使えない
配列型はポインタ型に暗黙の型変換できるだけで同じものではない
0747デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/20(日) 01:51:06.30ID:VOEYuZOA0
>>745
ポインタは3年生です。
まだ、習ったばっかりだからよく理解できていないんですよ

この前のテストでも
void (*p[5])(void(*)(void (*p[5])(void(*)())));
こんなの出て手も足も出なかったので、教えていただけますか?
これはどのようなときに使うんでしょうか?
0748デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/20(日) 02:16:43.02ID:Htt1PnlH0
そこは
自分自身を返す関数の宣言はどう書くのでしょうか?
としておくべきだったな
0749デフォルトの名無しさん (ワッチョイ f68c-/Alt)2016/11/20(日) 02:50:58.68ID:Ku2y1Nun0
auto aho() { return aho; }

# なんか6年前からタイムスリップしてきた人がいるね
0750デフォルトの名無しさん (ワッチョイ 5ecc-RUi6)2016/11/20(日) 03:07:47.78ID:0axxxnZ30
void (*p[5])
(
void(*)(
void (*p[5])(void(*)())
)
);

?
0751デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 07:05:19.38ID:vF3AIrUj0
>std::beginとstd::endがあるから配列にrange-based-forが使える

ほうほう、それは本当にですか
0752デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 07:11:49.20ID:vF3AIrUj0
>配列型はポインタ型に暗黙の型変換できるだけで同じものではない

配列に使えると言われたから>>744は配列の例を出したと思われるのだが
いきなり話をそらされても…
0753デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/20(日) 07:31:03.04ID:0gf46MVG0
int* p = new int [3];
↑
これは配列の例とは言えないよ。
0754デフォルトの名無しさん (ワッチョイ fe16-u2Hn)2016/11/20(日) 08:41:30.27ID:hwyvqIzJ0
ポインタにrange-based-forが適用できたらすげーよな
0755デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/20(日) 10:09:02.32ID:Htt1PnlH0
そんなことより>>749のコードはコンパイルできるのか?
少なくとも2015年からタイムスリップしてきた俺のVC++では無理なんだが
0756デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 11:03:06.78ID:vF3AIrUj0
むしろコンパイル出来るわけがないコードを躊躇わずに貼り付けるあたり、幻覚を見た糖質に相違ない

>>753
どう見ても「配列」を生成しているのだが
0757デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/20(日) 11:11:01.13ID:gZ2BEpbEd
>>756
配列は生成してないよ
0758デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/20(日) 11:35:06.58ID:9K83SdzS0
>>756
うーん
0759デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/20(日) 12:19:01.59ID:9K83SdzS0
int*はアドレスを持つだけだけの変数で長さは不定
配列は言うなればint[3]型みたいなものでint3個分の大きさを持つ1つの変数
配列をsizeofすればその大きさが取れるだろう

例えば
char aho[3]{};
std::cout << &aho << std::endl;
std::cout << (&aho) + 1 << std::endl;
とすれば2回目の出力では3バイト先のアドレスが出力される
これはアドレス1つ分進める操作でchar[3]型のサイズ1つ分進めた証拠

それでこれらの違いはテンプレートにおいては重要になる
普通の処理では便宜上確保したメモリ領域も配列と表現することもあるしそれで差し支えない事も多いけどテンプレートではそうではない

VC++ではstd::begin、std::endはこうなっている(余計な修飾子は消した)
template<class _Ty, size_t _Size> _Ty *begin(_Ty (&_Array)[_Size])
{ // get beginning of array
  return (_Array);
}

template<class _Ty, size_t _Size> _Ty *end(_Ty (&_Array)[_Size])
{ // get end of array
  return (_Array + _Size);
}

2番目のテンプレート引数に注目すれば分かることだが配列型を入れると長さを取ることができる
こうすれば配列の末尾のアドレスを取る関数を作る事ができる
こういうことをやっているからアドレスを渡しても使うことはできない
0760デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 12:55:36.19ID:vF3AIrUj0
>>744
その例ではできない
配列オブジェクトのnew式は先頭要素へのポインターになるので見た目上は配列サイズの情報が残らないのと
range-based forはstatic typeに基づいて動作する仕様なので
0761デフォルトの名無しさん (ワッチョイ 5e3c-RUi6)2016/11/20(日) 13:07:09.29ID:Y223jndk0
>>757
new int [3] は何を生成してるの?
0762デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/20(日) 13:19:34.96ID:Htt1PnlH0
何を生成しているかというより
new int [3] 戻り値というか、式としての型は int * だから
0763デフォルトの名無しさん (ワッチョイ 5e3c-RUi6)2016/11/20(日) 14:07:52.08ID:Y223jndk0
>>762
いやいや、何を生成してるかの話だし ⇒ >>757
式の値はたぶん大体の人は知ってる話だからいちいち言わなくてもいいかと
0764デフォルトの名無しさん (オッペケ Sra9-2XGH)2016/11/20(日) 14:36:08.09ID:+E/oMnE7r
>>759
>int*はアドレスを持つだけだけの変数で長さは不定
クラス配列はdelete[]するとちゃんとデストラクタが
呼ばれるんだからランタイムは配列サイズ知ってんぞ
0765デフォルトの名無しさん (JP 0H0d-2BAc)2016/11/20(日) 14:55:05.75ID:rUGeTkRIH
あれ、ホンマや メモリブロックの先頭を指してるだけだと思ってたけど
どうやって delete[] してるんや?
0766デフォルトの名無しさん (ワンミングク MM40-RUi6)2016/11/20(日) 15:00:00.08ID:KeNb1rHMM
>>765
先頭要素のアドレスの直前にサイズを入れたりとかしてる
処理系依存
0767デフォルトの名無しさん (ドコグロ MM36-RUi6)2016/11/20(日) 15:16:11.40ID:+aVAF1cfM
char *p = malloc(10);
で確保した領域を
free(p);
で解放できるのと同じかと
0768デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 15:22:30.14ID:vF3AIrUj0
newしていない配列には使えないので混乱を来すし、デストラクターがトリビアルでない型は言語のランタイム機能は配列サイズを把握できない
あとアロケーターは要求サイズを正確に覚えている必要は無いのでサイズを知ることは無理か
0769デフォルトの名無しさん (スプッッ Sdc8-2XGH)2016/11/20(日) 15:25:14.05ID:+Wyq+pCgd
32と64bitビルドする場合
int char 独自構造体などどの辺で変化ある?
sizeof演算子使うときぐらいなのかなって思ってるんだけど
0770デフォルトの名無しさん (ワッチョイ 7742-tQqt)2016/11/20(日) 15:42:42.43ID:VXCu+bTp0
>>767
mallocで確保した領域は、キャストして好きに使えるけど
new int [3] で確保した領域は、どうなの?
0771デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/20(日) 15:47:04.82ID:VOEYuZOA0
ところで話し変わるが、moveしたいときってどんなときがある?
void foo(bar&& b);

bar b;
foo(std::move(b));

// bは使わないでね・・・
なんてコメント残すの?
0772デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/20(日) 16:03:06.79ID:Htt1PnlH0
正直なところ、明示的にmoveする機会はあまりないね、俺はね
時々することもあるけど、まー滅多にしないね

あれらのメカニズムは主にreturn用かと思ってるね、勝手に
0773デフォルトの名無しさん (ワッチョイ 40cf-XpIe)2016/11/20(日) 16:04:26.86ID:axGlCY5v0
>>770
mallocで確保した領域にもちゃんと配置newして使わないと未定義動作になるよ。
今のところだいたいの処理系で意図した動作をするだろうけど。
0774デフォルトの名無しさん (ドコグロ MM36-RUi6)2016/11/20(日) 16:07:45.73ID:+aVAF1cfM
>>770
好きに使えばいいんじゃね
キャストするような領域は自己責任の範疇だし
0775デフォルトの名無しさん (ワッチョイ b178-RUi6)2016/11/20(日) 16:09:32.05ID:/jz+VRn20
>>771
使う必要があれば、そのようにするしかないと思う。

まあ、でも実際には>>772と同じで、俺もreturn文や、ブロックの最後とかでしか使わないかな。
しかも、やむにやまれず程度で、積極的には使わないし、使わせるような作りにはしないかな。
0776デフォルトの名無しさん (ワンミングク MM40-RUi6)2016/11/20(日) 16:19:54.21ID:KeNb1rHMM
RVOと勘違いしてないか?
0777デフォルトの名無しさん (アウアウカー Sa41-uD5J)2016/11/20(日) 19:11:14.76ID:cn83Iwkna
でどんな時に使うんだ?
0778デフォルトの名無しさん (ワッチョイ b178-RUi6)2016/11/20(日) 19:20:07.59ID:/jz+VRn20
>>776
戻り値で返すって意味じゃないよ。
スコープ最後の処理で使うって事。
それなら、それ以上使われる心配が無いでしょ。
0779デフォルトの名無しさん (ワッチョイ 379b-RUi6)2016/11/20(日) 19:21:29.37ID:n+lEm/wG0
>>767
freeで解放するのは(mallocで確保するのは)配列のサイズとは限らないんじゃ?
大きい分には問題ないんだし
0780デフォルトの名無しさん (ワッチョイ 5e3c-RUi6)2016/11/20(日) 19:24:42.13ID:Y223jndk0
>>779
うん、そうですよ
言いたいのは
> 先頭要素のアドレスの直前にサイズを入れたりとかしてる
> 処理系依存
と一緒って言うこと
0781デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/20(日) 19:28:09.36ID:9K83SdzS0
>>764
コンパイル時に処理できるものではない
0782デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/20(日) 19:39:50.73ID:Htt1PnlH0
横からだが
だから「ランタイム」って書いてあるんじゃないの?
知らんが
0783デフォルトの名無しさん (ワッチョイ 379b-RUi6)2016/11/20(日) 19:49:14.73ID:n+lEm/wG0
>>780
処理系依存なのはそうだと思うけど、malloc/freeは実装次第ではサイズを入れたりする必要ないのでは?
そこら辺delete[]の場合と同じとは思えないんだけど
0784デフォルトの名無しさん (ワッチョイ 5e3c-RUi6)2016/11/20(日) 19:51:22.76ID:Y223jndk0
>>783
> malloc/freeは実装次第ではサイズを入れたりする必要ないのでは?
そんな実装あるの?
0785デフォルトの名無しさん (スップ Sdb8-2XGH)2016/11/20(日) 20:08:39.42ID:KDzVUdmQd
>>783
どういう発想だろう?
0786デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 21:54:20.76ID:vF3AIrUj0
きに
する
だけ
むだ
0787デフォルトの名無しさん (ワッチョイ 9c7b-wMId)2016/11/20(日) 22:29:40.97ID:zhAQ+Nfm0
>>769
64bitはポインターは64bitだけど、intは、32/64bitなど規格が色々ある。
Windowsなら、32bitだけで作るのを薦める。
32bitアプリなら、Windowsが64bitでも、動く。WOW64

32/64bit両方対応は、プロがやること。素人では無理

こういう本を読んでいないと無理。
Win32/64 APIシステムプログラミング―32/64ビットの共存、北山 洋幸
0788デフォルトの名無しさん (ワッチョイ ff6c-yNgj)2016/11/20(日) 22:40:43.22ID:KBMhzz+E0
その辺一概に言えんよな
シリアライズとか自前でやると絶対齟齬がでるし
0789デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/20(日) 22:42:28.96ID:0gf46MVG0
>>787

> 32/64bit両方対応は、プロがやること。素人では無理
ひとつのコードで2通りのビルドすることについて言ってるの?
0790デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/20(日) 22:56:31.44ID:vF3AIrUj0
>32/64bit両方対応は、プロがやること。素人では無理

むしろごく一部の不可避な場面を除いて普通に書いたらビット数に依存しないと思うのだが
特にシリアライズがビット数依存になるのは間違いなく無能
ビット数依存=低能の証
だいたいこんな認識でOK
0791デフォルトの名無しさん (ワッチョイ be90-Dzms)2016/11/20(日) 23:11:50.10ID:Toh2s2dj0
シリアライズはboost使ってんじゃないすか皆さん
自分でやるのは絶対無理
0792デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/20(日) 23:17:58.19ID:Htt1PnlH0
根本的に非常に難しい問題を持ってると思うよ
主に存在意義の方面で

基本的に64bitアプリの最大のメリットはメモリ空間の広さであるので
そんなにメモリを使わないアプリ→32bitで十分
たくさんメモリを使うアプリ→64bitにすると楽
というのは割と当たり前の話として・・・

同じアプリで32bit版と64bit版の両方を用意するとなると
そんなにメモリを使わないアプリとなると32bit版だけで十分じゃね?って話になるし
いやいや沢山メモリを使いますよ、となると64bit版は用意するとして
32bit版はそもそも動くんですか?メモリ不足にならないの?
メモリ不足になるから64bit版を用意したんじゃないの?ってことになってくる
32bitアプリであっても論理アドレス空間を超えた量のメモリを扱える技術は用意されているし
メモリを沢山使うアプリを32bitで作ろうと思うとそういった工夫をしなければならないんだけど
それが面倒だから64bitにするわけで、しかし結局上記の工夫をして32bit版も作る羽目になるんなら
64bit版を用意してもちっとも楽にならないし、十分工夫する前提なら32bit版だけでも十分なわけで

結局64bitと32bitの両方を用意しても
・64bit版がメインであり32bit版は運が良ければメモリ不足にならずに動くかもね
・32bit版で十分な量のメモリしか使わないけど、一応64bit版も用意してみました
の、どちらかになる可能性が高い
64bit版は広大なメモリ空間を生かすようになっている一方
32bit版は少ないメモリ空間でやりくりするように最適化されている
な〜んて芸当はかなりコストがかさむというか、ふつうはそこまでやらないことが多いだろう
だから最近のメモリいっぱい使います係のアプリは市販品であっても初めから64bit版しか
なかったりするものもある
0793デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/20(日) 23:46:52.40ID:9K83SdzS0
適当に64bitでビルドしてもまず意味ないから
そして遅くなることの方が多い
0794デフォルトの名無しさん (ワッチョイ 9c7b-wMId)2016/11/20(日) 23:51:17.36ID:zhAQ+Nfm0
素人は画像編集ソフトみたいな、メモリを一杯使うようなアプリを、作れるわけないから、
64bitで作る必要はない

32bitだけで作ればいい。
どうせ、簡単なアプリだろ?

PCのメモリが4GB以下なら、32bitの方が良いかも
0795デフォルトの名無しさん (ワッチョイ b178-RUi6)2016/11/20(日) 23:55:54.04ID:/jz+VRn20
>>793
いやいや。
64bit の方が速いが。。。
0796デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/21(月) 00:04:56.26ID:7iRwkmH30
余談になるが
>64bit版は広大なメモリ空間を生かすようになっている一方
>32bit版は少ないメモリ空間でやりくりするように最適化されている
は、必ずしも困難というわけではない
メモリ確保/解放をラップしてしまって
とりわけメモリをたくさん確保する場面でそれを使うようにする
ラッパー内では32bitと64bitでそれぞれ違ったコードが走るようにする
ただしメモリへのアクセスの手順は32bitのそれに合わせる必要があるので
メモリにアクセスするのにmapとunmapが必要になる
そうしておけば32bit/64bit共通のコードで
それぞれにそれなりに最適化されたプログラムを生成できる
問題は、そこまでやりますか、という話

もともと32bitアプリでたくさんのメモリを扱うため
map/unmapを行っているし、ラップも上手にしてある
というよくできたコードであったなら
少しの改造で実現可能ではあるが
0797デフォルトの名無しさん (アウアウカー Sa41-uD5J)2016/11/21(月) 00:28:29.29ID:6zQ2Gasfa
>>795
その理由は?
0798デフォルトの名無しさん (ワッチョイ 777b-X8JF)2016/11/21(月) 01:37:47.14ID:xT1kDDw90
>>797
CPUがサポートする命令を下切り出来るのとレジスタを効率よく使える
つーか実際同じコードでベンチマークとったらわかるだろ
他のスレでも居たよ遅くなるって言ってるバカが
0799デフォルトの名無しさん (ドコグロ MM74-RUi6)2016/11/21(月) 06:58:16.08ID:4eyhD8wVM
そんなもん状況次第としか言えないと思うが...
必ず速くなると言う主張なの?
0800デフォルトの名無しさん (ワッチョイ 777b-X8JF)2016/11/21(月) 07:15:03.28ID:xT1kDDw90
>>799
誰がそんな事主張してんだよ
発端は遅くなる事の方が多いと言ったバカだろ
0801デフォルトの名無しさん (ドコグロ MM74-RUi6)2016/11/21(月) 07:24:30.99ID:4eyhD8wVM
「遅くなる事の方が多い」⇒ 状況次第で早くなることもある ... 理解できる
64bit の方が速い ⇒ 条件も書かずに断定 ... 不用意なバカ
0802デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/21(月) 07:37:53.57ID:qnHpdsm60
>>800
キティガイに絡まれたと思って諦めるしかないぞ
0803デフォルトの名無しさん (ドコグロ MM74-RUi6)2016/11/21(月) 08:06:55.24ID:4eyhD8wVM
自分から絡んでる奴に何を言ってるんだよ w
0804デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/21(月) 08:18:54.35ID:9aLTR+2Vd
ふーん、自分のやり方をちょっと見直してみるか...
0805デフォルトの名無しさん (スプッッ Sdc8-RUi6)2016/11/21(月) 08:21:15.20ID:73ZuM7PRd
揚げ足取りばっかしてるのがいるよな
0806デフォルトの名無しさん (アウアウカー Sa41-WhrX)2016/11/21(月) 10:41:14.87ID:kg262VVva
知識を仕入れる為ではなく喧嘩が目的で書き込んでる奴がいるな
0807デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/21(月) 11:38:54.55ID:9aLTR+2Vd
なにしろ何も考えずに32、64それぞれでビルドして使い分けてたからな。
0808デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/21(月) 11:41:39.64ID:9aLTR+2Vd
ところで何の脈絡もないけど、Javaerって変数の型としてTとT&とT&&を使い分けることを「複雑」だ
と考えているらしい。
今日はじめて気づいた。
0809デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/21(月) 12:33:18.95ID:syDjrQcY0
やらずに想像だけで難しいと考える奴は無視していい
0810デフォルトの名無しさん (ワッチョイ 5ecc-RUi6)2016/11/21(月) 12:35:49.76ID:6x5E8cIs0
Java厨ヴぁかだからな
0811デフォルトの名無しさん (スプッッ Sdc8-2XGH)2016/11/21(月) 15:18:16.98ID:GY+vRaDtd
俺の質問のせいで荒れてすまん
64bitでビルドしたら3時間待ってもビルド終わらん
最適化に最適化に最適化してくれてんのかね
0812デフォルトの名無しさん (スプッッ Sdc8-2XGH)2016/11/21(月) 15:18:42.15ID:GY+vRaDtd
ちなみにvisual studio2008
0813デフォルトの名無しさん (ワッチョイ 5ecc-RUi6)2016/11/21(月) 17:12:32.42ID:6x5E8cIs0
pcがpentium3とか4とかいうオチですかい?
0814デフォルトの名無しさん (ワッチョイ 0ddc-GYER)2016/11/21(月) 19:18:16.95ID:6o18YYu20
32bitでビルドした場合にどれくらいの時間がかかるか
示してくれると話に乗りやすいかと。

2008だと64bitでのコンパイル/リンクの処理に
不具合があったかも知れんね。
64bitでのビルドは当時の新機能じゃなかったかな。
0815デフォルトの名無しさん (アウアウカー Sa41-WhrX)2016/11/21(月) 20:19:24.70ID:nMc7Jp9Ga
そうだな。これは私見ですが、偉そうな言い切りする奴は全部数字出して。
出せないなら文頭に漏れなく『これは私見ですが』を付けろよ
0816デフォルトの名無しさん (スッップ Sdb8-2XGH)2016/11/21(月) 20:27:29.47ID:9aLTR+2Vd
なんで2008なんか使ってるんだろう
0817デフォルトの名無しさん (ワントンキン MM40-RUi6)2016/11/21(月) 20:39:04.38ID:fCynYKldM
>>816
ほんまこれ
0818片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK0d-I7Id)2016/11/21(月) 20:46:52.78ID:bG1+lpHYK
>>816
win2kのサポートだろう。
0819デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/21(月) 21:05:06.70ID:syDjrQcY0
2008だと碌な64bit用のコード吐かなさそう
0820デフォルトの名無しさん (ワッチョイ 777b-X8JF)2016/11/21(月) 21:49:18.29ID:xT1kDDw90
なんでwin2kなんか使ってるんだろう
って疑問になるだけだな
0821デフォルトの名無しさん (ワッチョイ 56c0-E4Cj)2016/11/21(月) 21:56:53.57ID:d+TR1D9J0
インドウズ2000があるから
0822デフォルトの名無しさん (ワッチョイ 5e3c-RUi6)2016/11/21(月) 22:57:18.95ID:xNxbBIvn0
>>820
128MB 程度で結構さくさく動いたからなあ
0823デフォルトの名無しさん (アウアウカー Sa41-WhrX)2016/11/21(月) 23:06:31.45ID:nMc7Jp9Ga
工場のソフトウェア改修かな
0824デフォルトの名無しさん (ワッチョイ 51a1-/Gnx)2016/11/21(月) 23:13:40.81ID:bvL8isRi0
アクティベーションが無いため、Windows 2000は、インストールしやすい。
もうウェブブラウザは、Windows 2000に対応していない。実用的には、
Windows 2000だけではなく、たぶんWindows XPかWindows 7のパソコンも必要になります
0825デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/22(火) 08:47:12.18ID:GOVUoJVE0
工場の設備の場合パソコンごと入れ替えさせてるわ
大抵HDDがボロボロだからデータ取っていつ壊れて止まってもおかしくないって言えば割といける
0826デフォルトの名無しさん (ワッチョイ 7742-tQqt)2016/11/22(火) 10:35:39.02ID:9wPRD6PT0
>>824
VistaのIEも最近はじかれるようになった
twitterアクセスするとモバイル扱いされる
0827デフォルトの名無しさん (JP 0H0d-2BAc)2016/11/22(火) 10:46:33.24ID:uKd48bt3H
Vista も来年春までだしな
0828デフォルトの名無しさん (ワッチョイ 7c16-/Alt)2016/11/22(火) 21:53:22.58ID:i6/EHoLv0
Jasta la vista baby!
0829デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/23(水) 11:22:19.80ID:I/SlW2fg0
std::vector<std::string> vs;
を文字列の長さでソートしたいんですが、どうすればいいですか?
0830デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 11:30:37.30ID:gsunTgbT0
>>829
std::sort の3番目の引数にアレを入れる
0831デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/23(水) 11:31:34.75ID:I/SlW2fg0
アレ?
0832デフォルトの名無しさん (ワッチョイ 7d7b-XpIe)2016/11/23(水) 11:57:03.79ID:sXpbMcR20
言わせないでよ
0833デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/23(水) 12:02:54.43ID:DHb51laf0
>>829
ラムダ式入れて
0834デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 12:04:37.55ID:gsunTgbT0
惜しいな。
通常の文字列順だったら
std::less<>{}
の13文字で済んだんだが。
長さ順だと最短でどうなるだろう。
0835デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 12:05:42.81ID:gsunTgbT0
いやいやいや、ボケていたwwwwwww
第3引数いらないじゃんwwwwwwwwwww
0836デフォルトの名無しさん (ワッチョイ 40d9-k96Z)2016/11/23(水) 12:21:58.22ID:fPt7TF6i0
うひゃその都度length()メンバ関数呼び出してたら遅くなるよ
多分std::pair<std::string, size_t>に一度作り直してsize_tにlength入れておいてソートして
ソートが済んだらまたstd::string配列に作り直す方が速いと思う
あ、これ実際にやってみようかな
どの程度の大きさの配列だと時間が逆転するか

length()の実装にもよるけどね
stringに変更があった時にlengthがprivate変数でそこをその都度書き換えるような実装なら
そのままソートした方が速くなるし
0837デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 12:27:01.11ID:gsunTgbT0
>>836
キー(std::size_t)だけの配列をソートして、その結果を本来の対象物の並び替えに使ったほうがよくない?
0838デフォルトの名無しさん (ワッチョイ 40d9-k96Z)2016/11/23(水) 12:29:08.70ID:fPt7TF6i0
>>837
あ、その方がいいね
C++11/14ならムーブ実装になってると思うからstring配列の中身交換とか超速いしな
0839デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 12:43:48.74ID:gsunTgbT0
実際のところlength()なんて大したことないだろうからラムダ式でいいでしょ。
0840デフォルトの名無しさん (ワッチョイ 40d9-k96Z)2016/11/23(水) 12:46:52.10ID:1rpqYew40
実測してみるわ
0841デフォルトの名無しさん (ワッチョイ 1d26-/Alt)2016/11/23(水) 13:06:09.23ID:wddBimUU0
ちなみにどうでもよいことだが、実測するって言ってるから一応言っておくが
VC++のstring::lengthだったら内部で保持している長さを返すだけだよ・・・
これも一長一短で、パフォーマンスは良いかもしれないが、C風の操作と相性が悪い
というか、気を抜くと直ぐにバグる
あまりにも危険なので、俺はいつも文字列操作はvector<char>で行ってから
stringにぶち込んでる
正直微妙な仕様だと思うね
文字列の長さなんか瞬時に求まるのに、いちいちメンバ変数に持つ必要あるのかね
0842デフォルトの名無しさん (ワッチョイ 8002-XpIe)2016/11/23(水) 13:20:51.68ID:DHb51laf0
文字列を操作したときのコストを取るか
長さを取るときのコストを取るかって選択でしょ
0843デフォルトの名無しさん (ワッチョイ 40cf-XpIe)2016/11/23(水) 13:26:09.00ID:6ZaAn7nA0
>>841
ヌル終端文字列の長さを求める(strlen()相当)には長さに比例して時間がかかると思うんだけど、
瞬時に求まるってどういうこと?(「どんなに長くてもms単位だろ」とかそういうこと?)
0844デフォルトの名無しさん (ササクッテロロ Spa9-rwfO)2016/11/23(水) 13:34:19.00ID:xEzHdfwmp
そもそもstd::stringのlengthはstrlenの長は返さないだろ
0845デフォルトの名無しさん (スップ Sdb8-2XGH)2016/11/23(水) 13:50:17.84ID:Si+kM3pqd
流れを無視して一般論で言うと自分は
std::pair<キー, T*> をソートして元の配列は放置のパターンが多いかな。
キーが単独で抽出できないような順序づけのときはしょうがないけど。
0846デフォルトの名無しさん (ワッチョイ b1bf-RUi6)2016/11/23(水) 16:27:04.05ID:U1wrsxd00
stringはヌル文字も格納できる仕様だから、strlenなんて使ってない(と言うか使えない)よ。
俺が見た実装では、
distance(begin(), end())
的な感じだったな。
0847デフォルトの名無しさん (ワッチョイ b1bf-RUi6)2016/11/23(水) 16:28:48.12ID:U1wrsxd00
あ、endの実装にstrlen使ってるってことも無かったよ。
念のため。
0848デフォルトの名無しさん (ワッチョイ 40d9-k96Z)2016/11/23(水) 17:42:21.03ID:Y3xOs3wa0
あかんね誤差範囲内にしかならない
gccでやったんだけど多分VCと実装同じだね

http://ideone.com/dwCy5N

Random1.hというのはXorShift、Stopwatchを入れたヘッダでよく測定に使ってる
いちいちchronoとかrandom書くの面倒だしな
0849デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/23(水) 19:20:57.38ID:24z2VBuD0
プログラムを書く前に規格でComplexityがどう定義されているか調べようとしないのは救いようがない
0850デフォルトの名無しさん (アウアウカー Sa41-WhrX)2016/11/23(水) 20:04:35.00ID:8RkzW8R2a
基幹となるアルゴリズムの実装でコメントにオーダーを書かないプログラマはチームから追い出せ
0851デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 20:14:40.54ID:gsunTgbT0
そんなのは仕事の話だろ
0852デフォルトの名無しさん (ワッチョイ 40d9-k96Z)2016/11/23(水) 21:32:20.54ID:HNr9O5ZW0
ついでだから汚い Random1.h 上げときますね
これMinGW環境用なんで、Linuxはもう少し楽に書けるし、VCはStopwatchクラスのdurの
ところでエラーが出るんで

duration<int64_t, std::ratio_multiply<std::ratio<100i64, 1i64>, std::nano>> dur;

にしてください

http://ideone.com/k3jl3l
0853デフォルトの名無しさん (アウアウカー Sa41-uD5J)2016/11/23(水) 22:56:14.60ID:5xh/5w5Aa
みんないつもは偉そうなこと行ってるけど、誰も書けなかったか・・・
ラムダ内でlengthなんて誰でも分かるわw
0854デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/23(水) 23:16:59.21ID:I/SlW2fg0
ポインタの<ってどういうときに真なんですか?
そのポインタがさしてるものの大きさも関係ある?
0855デフォルトの名無しさん (ワッチョイ 32a6-XpIe)2016/11/23(水) 23:17:14.70ID:gsunTgbT0
>>853
ああ、難しいね
0856デフォルトの名無しさん (ワッチョイ 9e17-RUi6)2016/11/23(水) 23:28:49.97ID:dlpT0o5q0
>>854
左オペランドの参照先が右オペランドのそれよりも前にあれば真だよ

参照先のサイズは関係ないよ
0857デフォルトの名無しさん (ワッチョイ 8012-2XGH)2016/11/23(水) 23:31:56.23ID:24z2VBuD0
>それよりも前にあれば

糞回答、とはこのことか
0858デフォルトの名無しさん (ワッチョイ 9c41-oPeX)2016/11/23(水) 23:32:07.74ID:I/SlW2fg0
>>856
ということは
printf("%x");
で出力される結果が左のほうが若ければ(小さければ)真ということですよね
0859デフォルトの名無しさん (ワッチョイ 6f17-/sNf)2016/11/24(木) 00:10:21.53ID:tlSAw8P20
>>858
現実的にはそうだね
ごめん、厳密にはよくわからない

もうちょっと確からしい言い方をすれば、ポインタa,bについてa<bが真なら、b-aの演算結果が正になるはず
0860デフォルトの名無しさん (ワッチョイ 2741-Kail)2016/11/24(木) 00:28:48.11ID:Puznaqkq0
>>859
ありがとうございます
0861デフォルトの名無しさん (ワッチョイ 37cf-lM3r)2016/11/24(木) 01:22:53.30ID:gkdjsJmp0
>>858
%x にポインタ(unsigned int 以外)渡すと未定義動作。
同じオブジェクトに属さないポインタ同士の大小比較の結果は不定。 (5.9 [expr.rel])
同じオブジェクトとか関係なく、とにかくポインタ同士に何かしらの順序が要るだけなら std::less<> を使う。 (20.9.5 [comparisons])
0862デフォルトの名無しさん (アウアウカー Sa27-v8Z5)2016/11/24(木) 02:09:41.72ID:E253KrPOa
はいはい規格厨ウゼー
そんなんどうでもいいわ
0863デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/24(木) 07:12:28.03ID:bcbcXW1g0
むしろ「同じオブジェクトに属さないもののアドレス同士の比較が必要になること自体がおかしい」
という規格の背景を考えたらどうでもいいとは思えない
0864デフォルトの名無しさん (ワッチョイ 3fa6-lM3r)2016/11/24(木) 07:16:41.51ID:aA76iL/f0
>>863
ほんとタケモトピアノ
0865デフォルトの名無しさん (ワッチョイ 0bdc-5tBO)2016/11/24(木) 07:34:20.21ID:QtbM1a2Z0
比較可能なポインタ pa と pb があって、
pa < pb ならば pa++ を何回か繰り返すと pa == pb となる。
という理屈を思いついたんだが「pb - pa が正」の方がスッキリしてるね。

C++だと演算子のオーバーライドで挙動が変えられるから
その辺も触れておくべきか気になるし。
0866デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/24(木) 07:46:46.34ID:yPQEi19S0
std::distance(pa,pb)
0867デフォルトの名無しさん (ワッチョイ 2b22-/sNf)2016/11/24(木) 08:25:09.67ID:1KKSNuXy0
paとpbの型によっては++していくと==にならない場合があるから後者のほうがいいね
0868デフォルトの名無しさん (オッペケ Sre7-PVnu)2016/11/24(木) 08:32:11.02ID:0zGI1lmhr
比較可能じゃないものを比較してる時点でアホだな
0869デフォルトの名無しさん (アウアウカー Sa27-v8Z5)2016/11/24(木) 09:00:36.01ID:dPYy18RBa
>>868
比較可能じゃないものを比較できる時点でアホ言語だな
0870デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/24(木) 09:00:51.15ID:Zr2e1rn70
>>868
比較可能じゃないものって何の話?
0871デフォルトの名無しさん (ワッチョイ 4b26-sNoz)2016/11/24(木) 10:58:48.52ID:RRtCVbyk0
ところで、調べるのも面倒だから聞くが
void*は比較できるのか?
++やpa-pbは出来ないよね
でも比較はできるの?
????
0872デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/24(木) 11:35:57.72ID:yPQEi19S0
何を言っているんだ
全部できるだろ
0873デフォルトの名無しさん (ワッチョイ 37cf-lM3r)2016/11/24(木) 11:49:04.90ID:gkdjsJmp0
>>865
同じ配列上の要素(または終端)から外れるようなポインタの加算は未定義動作になる。 (5.7 [expr.add] 5)
同じ配列上の要素(または終端)を指すポインタ同士じゃければ pb - pa も未定義動作になる。 (5.7 [expr.add] 6)
0874デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/24(木) 11:50:30.29ID:yPQEi19S0
いや、出来ないか
比較は出来るはず
0875デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/24(木) 17:11:38.82ID:qZeHCsPRa
江添はなんて言ってる?
0876デフォルトの名無しさん (ワッチョイ 2741-Kail)2016/11/24(木) 21:31:19.82ID:Puznaqkq0
規格厨ってマジうざい
会社にもいるわ、言語の細かいところをグダグダ言って
一向に仕事終わってないやつw
0877デフォルトの名無しさん (ドコグロ MM87-/sNf)2016/11/24(木) 21:42:13.93ID:Je0xYTLKM
>>876
環境の話が出ていないんだったら標準前提だろ。
0878デフォルトの名無しさん (ワッチョイ 13d2-/sNf)2016/11/24(木) 21:48:50.49ID:FR48ay6p0
規格厨ウゼーって言ってる人は何を正しいと考えてプログラム書いてるんだろう?
0879デフォルトの名無しさん (ワッチョイ 574d-lM3r)2016/11/24(木) 21:54:07.32ID:Re0BeZ3C0
動けばいいんだろってのはどこにでもいて困る
0880デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/24(木) 22:07:25.57ID:PFH8phe60
コンシューマは動けばいいからやっつけ仕事が多いよね
0881デフォルトの名無しさん (アウアウカー Sa27-v8Z5)2016/11/24(木) 22:12:06.57ID:49B0h2WCa
>>879
顧客の望む動作を出来ないが、厳格に規格に則ってるソフトのほうが価値があるのか?
0882デフォルトの名無しさん (ワッチョイ 3702-lM3r)2016/11/24(木) 22:18:35.78ID:Wbp3yZ5b0
企画に無頓着なせいで顧客が望まない動作をしてソフトの価値が下がる可能性はあるな
0883デフォルトの名無しさん (ワッチョイ 2741-EpCF)2016/11/24(木) 22:39:56.36ID:Puznaqkq0
所詮数百行程度のサンプルプログラムで、満足してる奴が多い。実際のプロジェクトでは数十人の小規模でも全員が厳格な規格を知ってることなんてほぼないよ。
0884デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/24(木) 23:02:41.54ID:HkSXIkgWa
Done is better than perfect.
0885デフォルトの名無しさん (ワッチョイ 6f3c-/sNf)2016/11/24(木) 23:06:20.19ID:DcJjicj10
>>883
QAC とかのツールを使ったことないの?
0886デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/24(木) 23:45:43.86ID:Zr2e1rn70
>>883
自己正当化したい気持ちは凄く伝わってくる
0887デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/24(木) 23:47:45.69ID:bcbcXW1g0
>%x にポインタ(unsigned int 以外)渡すと未定義動作。
 ↓
>はいはい規格厨ウゼー
>そんなんどうでもいいわ

ひょっとして「実行時に落ちさえしなければバグがばれなくて納品できるだろう」という考えなのだろうか
0888デフォルトの名無しさん (ワッチョイ 4b26-sNoz)2016/11/25(金) 00:02:18.96ID:KQ2ueA3Z0
ポインタをprintfしたところで
デバッグぐらいにしか役に立たないんだから
どうでもよいだろ
製品レベルでそれが問題になりえるのかよ
元のコードもちょっとポインタの値を表示したい
ぐらいの軽い気持ちで書かれたものだろ
0889デフォルトの名無しさん (ワッチョイ 2741-EpCF)2016/11/25(金) 00:14:08.08ID:Fq5D5ea90
>>888
バカ相手に代弁して頂き恐縮です
0890デフォルトの名無しさん (スッップ Sdaf-/sNf)2016/11/25(金) 00:23:36.55ID:IO6P2XWfd
× 動けばいい
○ 今動けばいい
0891デフォルトの名無しさん (ワッチョイ 2741-EpCF)2016/11/25(金) 00:29:44.02ID:Fq5D5ea90
>>890
規格に則っるためにグズクズやってるのなんて、仕事じゃありえない。
そんなことより、さっさと装置動かせよってデバッグ机蹴られるわ
0892デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/25(金) 00:32:56.97ID:sf4sCYPk0
これは酷いな
製品レベルとか絶望的なレベル

△ 今動けばいい
○ ボクのパソコンで今動けばいい
0893デフォルトの名無しさん (ワッチョイ 2741-EpCF)2016/11/25(金) 00:40:17.02ID:Fq5D5ea90
デバッグ机って書いたのをパソコンととられたか・・・
がくせいさんか?
0894デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/25(金) 00:43:51.67ID:kFMSAmJC0
殆どの人は知ってる事だけど他人を貶めても自分の価値は上がらないからね?
0895デフォルトの名無しさん (ワッチョイ 3fa6-lM3r)2016/11/25(金) 01:07:03.14ID:Z6CnM+uM0
だから仕事の話なんかしてんじゃねーよ
0896デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/25(金) 01:42:21.97ID:trIhjYnaa
それな
0897デフォルトの名無しさん (ワッチョイ 574d-/sNf)2016/11/25(金) 06:55:43.21ID:JFUGLEg60
まともなコード書けない言い訳にしか聞こえない
0898デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/25(金) 08:32:39.39ID:ffbk0/8ud
>>893
こういう発言がいちばんみっともない
0899デフォルトの名無しさん (ワッチョイ 3702-lM3r)2016/11/25(金) 08:35:40.77ID:G+Df3rHj0
客商売でコード書いてる奴ばかりではないから
0900デフォルトの名無しさん (スプッッ Sd2f-/sNf)2016/11/25(金) 08:55:43.56ID:w5/aq56vd
個人とか仕事とかはどうでもいい話
0901デフォルトの名無しさん (オッペケ Sre7-PVnu)2016/11/25(金) 08:59:43.90ID:8O01yU3Yr
printfの%xにポンタ渡して本当に正しく表示されとんのけ
0902デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/25(金) 09:02:31.43ID:dAxfwy880
コンシューマの仕事は動けばいいだけ
Windowsのように個々のハードのすべての可能性に対応する必要はないので
0903デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/25(金) 09:15:32.96ID:kFMSAmJC0
そうやって他ハードに移植された時にバグだらけの糞になるわけだな
0904デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/25(金) 09:21:00.76ID:kFMSAmJC0
今時C++を書くようなプログラマが後の資産にならないようなその場しのぎのゴミコード量産しててその会社大丈夫なのか疑問だな。
0905デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 09:47:55.54ID:n3LE76D70
なぜか標準ライブラリ(に相当するもの)やネイティブAPIの仕様が安定していて信頼性が高いという前提で話している人が多いのが気になる。
コンシューマだと言語規格対応が不完全なコンパイラなんてザラだろうに、ID:kFMSAmJC0 みたいに現場を知らない人が暴れてるね。

日本語を正確に書けるようになっても、文豪になれるかどうかは別の話。
売れっ子作家は字が汚いし、言い回しもクセがあって読みづらいかもしれない。
それでも読者がついてくるのは、読者が言葉の正確さに価値を見出していないから。
0906デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/25(金) 10:04:24.67ID:kFMSAmJC0
>>905
バグだらけで散々な評価になってるの見るけど?ユーザー気にしないってどこの世界?
売れっ子作家が字が汚いのはそれを見るわけではない読者に全く関係ないしクセがあるって別にネガティブな要素じゃないし例え間違えてるよね。
0907デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 10:22:08.12ID:n3LE76D70
仕事では、バグの原因になる車輪の再発明なんて誰もやりたがらない。仕事では。
リファクタリングや、他ハード移植時の移植コード追加の工数を見積もらなかった責任者の工数管理の問題であって、言語の規格云々ではない。
0908デフォルトの名無しさん (JP 0Hc7-yHww)2016/11/25(金) 10:22:55.91ID:ejT/bmDUH
保守性はフレームワークレベルでしっかり出来てれば
後は気にしない
0909デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/25(金) 11:34:01.64ID:ffbk0/8ud
全員出ていけ
恥ずかしいと思わないのか
0910デフォルトの名無しさん (ドコグロ MM8f-/sNf)2016/11/25(金) 12:47:30.24ID:7NqeDhKIM
>>901
本当に正しいの定義によるけど
大抵の環境なら思った値が表示されるはず
0911デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/25(金) 13:14:42.62ID:dAxfwy880
#if sizeof(int)!=sizeof(void*)
#error ポインタのサイズが整数のサイズと同等ではありません!(printf()で問題が発生する可能性あり)
#endif
0912デフォルトの名無しさん (ササクッテロロ Spe7-okRt)2016/11/25(金) 13:24:50.04ID:qIFepjslp
全て完璧に規格に準じて正しいコードを目指すこと自体はとても大事な心がけだと思うのだけど、
現実的にずっーと企画書とにらめっこする時間が工数的に十分取れるのんて稀だろうし、程度の差こそあれ規格を完璧に把握してかける人なんてほとんどいないでしょ

たとえややグレーなコードがあったとしても、
十分テストが行われて、その処理系で十分な期間正しく動くならやはりそれでいいし、
グダグダいって物が完成しないのはただの間抜け
0913デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/25(金) 17:14:27.77ID:Uk+duCrNa
規格を知り、そうあろうとする態度は大事。共通語で語るということだから。うるせえ俺は方言で喋るぞというのは如何なものか
0914デフォルトの名無しさん (ワッチョイ 0b75-0qiu)2016/11/25(金) 17:27:18.21ID:p89iDir10
>>911
プリプロセス中はsizeof使えねぇよ。
0915片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-R9Gf)2016/11/25(金) 17:33:42.52ID:puIxfyJVK
>>911
static_assert(sizeof(int) == sizeof(void*), "お前の環境は想定外だ。お前が死のうとも俺には関係無い。こんなクズコード使うな");
0916片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-R9Gf)2016/11/25(金) 18:03:39.77ID:puIxfyJVK
printf("%p\n", p);
std::cout << p << std::endl;
0917デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 19:05:08.47ID:n3LE76D70
>>911 みたいなのは、64bit対応したstdio.hやstdarg.hを使うことが正しい解決であって、プログラマにprintf()のformat文字列を修正させるのは対処療法でしかない。
0918デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/25(金) 19:30:55.81ID:Uk+duCrNa
 病気の症状に対応して(対症)、その症状を除いたり緩和したりする治療法が「対症療法」。
病気の原因を取り除く根本的な治療とは異なるというところから、比喩的に、当面の方策といった意味でも使われます。
国立国語研究所の2008年の「病院の言葉」に関するインターネット調査では、「対処療法」だと誤解していた人が3割近くいました。
知らない言葉は意味を聞く、辞書で調べる……これが誤用を防ぐ一番の「療法」でしょう。
0919デフォルトの名無しさん (ワッチョイ 4b26-sNoz)2016/11/25(金) 19:58:54.91ID:KQ2ueA3Z0
言葉の定義を間違えて、規格厨、形無し!
0920デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 20:02:41.13ID:n3LE76D70
プラットフォーム固有ライブラリの修正に頼らず、自分たちで対応できることをやった結果がまさに方言。
>>915 のような警告がまさに方言。ところが本人は方言をしゃべっているという自覚がない。
0921デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 20:09:12.69ID:n3LE76D70
規格通り正しく動くライブラリが提供されければされないほど、方言が増える。
方言の多さを嘆いてソースを罵っているような人は問題を解決する能力はないので仕事から外れてもらう。
リファクタリングのし甲斐がある、と前向きになれていないからだ。
0922デフォルトの名無しさん (オッペケ Sre7-PVnu)2016/11/25(金) 20:14:58.20ID:8O01yU3Yr
>>917
>64bit対応したstdio.hやstdarg.hを使うことが正しい解決
その64bit対応したstdio.hは%xにポンタ渡せるんか?
0923デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 20:47:54.34ID:n3LE76D70
>>922
「渡す」という言葉の定義次第。
0924デフォルトの名無しさん (ワッチョイ 4b26-sNoz)2016/11/25(金) 21:03:30.26ID:KQ2ueA3Z0
「ポンタ」という言葉の定義次第
0925デフォルトの名無しさん (ワッチョイ f342-sTmH)2016/11/25(金) 21:06:18.60ID:xPX/XOCK0
200円で一ポンタってやつか
0926デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 21:07:53.56ID:n3LE76D70
%x はintに丸めて16進表記するのが仕様なので、その仕様通りに表示したら正しいとみなせる。
0927デフォルトの名無しさん (ワッチョイ ab7b-ZhbG)2016/11/25(金) 21:19:08.94ID:KFgMurO70
>>922
ポインタはvoid *にキャストして%pで変換
整数はstdint.hで定義されてるPRIxNで変換
0928デフォルトの名無しさん (ワッチョイ 4b26-sNoz)2016/11/25(金) 21:23:36.29ID:KQ2ueA3Z0
これはさすがに擁護できませんわ
あまりにも危険度が高すぎる
まさにたまたま動くとしか
printf("%x%x", &a, &b)ってしたらもうアレだし
0929デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 21:31:49.61ID:n3LE76D70
>>928
別に危険じゃないよ。プログラマの意図した表示ができないだけ。
可変長引数には、int_ptrサイズの値がスタックに積まれる。
0930デフォルトの名無しさん (ワッチョイ ab7b-ZhbG)2016/11/25(金) 21:35:02.66ID:KFgMurO70
>スタックに積まれる。
>スタックに積まれる。
>スタックに積まれる。
>スタックに積まれる。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0931デフォルトの名無しさん (ドコグロ MM8f-/sNf)2016/11/25(金) 21:38:32.48ID:zM0mnrxoM
>>912
勝手に完成しないなんて条件出して勝手に間抜け呼ばわりするなよ。
0932デフォルトの名無しさん (ワッチョイ 37d9-1MTn)2016/11/25(金) 21:39:50.63ID:S0yC1+TG0
>>929
あのー64bit環境ですとね、特にLinuxとかでは、いや何でもないです
0933デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 21:43:43.99ID:n3LE76D70
C++11の可変長引数の仕様変更は有難いとは思うが、既存のprintf系との連携ができないので残念だ。
%s, %x, %p へのオーバライドがC関数にも及ぶとうれしい。

std::string str = "test";
printf("%s\n", str); <-- どんな処理になるかはライブラリ依存。
0934デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 21:53:19.53ID:n3LE76D70
>>932
くわしく。scanf系の話じゃなくてprintf系?
0935デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/25(金) 22:01:21.69ID:sf4sCYPk0
ID:n3LE76D70は三流のエンターテイナー
>%x はintに丸めて16進表記するのが仕様

>危険じゃないよ。プログラマの意図した表示ができないだけ。

>可変長引数には、int_ptrサイズの値がスタックに積まれる

>C++11の可変長引数の仕様変更

>%s, %x, %p へのオーバライド

>printf("%s\n", str); <-- どんな処理になるかはライブラリ依存
0936デフォルトの名無しさん (スプッッ Sd2f-/sNf)2016/11/25(金) 22:02:33.69ID:w5/aq56vd
最初に習うくせに最も危険で難しいprintf
0937デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 22:09:56.51ID:n3LE76D70
まぁ、basic_string 系がprintf系の書式処理をオーバライドできるようになったとしても、
Win32APIの wsprintf() はCライブラリとは全く別物だから厄介ごとがなくなるわけじゃないし。
0938デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/25(金) 22:18:27.64ID:n3LE76D70
コンパイル言語の入門として最初に習うのに、実行時コンパイルするレトロなprintf
0939デフォルトの名無しさん (ワッチョイ 3702-lM3r)2016/11/26(土) 00:17:49.35ID:vsX+knqs0
でもprintfのフォーマットは高性能
0940デフォルトの名無しさん (ワッチョイ 6fcc-/sNf)2016/11/26(土) 00:37:34.25ID:9wYBmtZd0
#if sizeof(int)!=sizeof(void*)
#warning このあとのprintf()がちょっとヤバイかもとだけ忠告しておく
#endif
0941デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 01:20:28.30ID:zqAOB8hF0
たまには iomanip のことも思い出してあげてください。
0942デフォルトの名無しさん (ワッチョイ 2741-v8Z5)2016/11/26(土) 01:58:22.36ID:CWhhCCap0
おまいらまだ、規格がどうとか言ってのw
こんなの会社だったら、「はいはい、わかったからさっさと仕事して」だろ
規格厨、マジウゼーな
0943デフォルトの名無しさん (ワッチョイ ab7b-ZhbG)2016/11/26(土) 02:01:03.77ID:2mzxQ+Jn0
底辺ではそうなのか?
0944デフォルトの名無しさん (ワッチョイ 3702-lM3r)2016/11/26(土) 02:51:43.72ID:vsX+knqs0
そりゃ言語そのものの話をしているところに仕事では〜とか場違いなことを言い始めるくらいだからな
0945デフォルトの名無しさん (ワッチョイ 133c-/sNf)2016/11/26(土) 08:07:41.54ID:+SP4t01d0
2ch見てる暇があるなら規格の勉強すればいいのに
0946デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/26(土) 08:36:42.42ID:DcGUsa730
>943
いえ、底辺とかじゃなく精神疾患なので触れないでください
0947デフォルトの名無しさん (JP 0Hc7-yHww)2016/11/26(土) 09:47:58.77ID:e21MHUPRH
規格を勉強すれば2ちゃんのバトルに勝てるんだぞ
すごいんだぞ
0948デフォルトの名無しさん (スプッッ Sdaf-/sNf)2016/11/26(土) 09:55:58.09ID:8pCM43ozd
規格を勉強しなくたって動けばいいやレベルのアプリは作れるんだぞすごいだろ
0949デフォルトの名無しさん (ワッチョイ ab7b-sTmH)2016/11/26(土) 09:58:57.00ID:rJzIw0Ut0
挙動が想像できないとき、実地に動かしてみて様子を見るのではなくマニュアルみるだけでいいだろと
0950デフォルトの名無しさん (ワッチョイ ef98-sNoz)2016/11/26(土) 10:55:31.17ID:ZNjnwso20
>>940
exexlpのことも思いだしてやんな
0951デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/26(土) 12:02:22.24ID:DcGUsa730
>>950
「ボクのパソコンで動いたからおっけ」
という低能には通じないぞ
0952デフォルトの名無しさん (ワッチョイ 3702-lM3r)2016/11/26(土) 12:34:28.33ID:vsX+knqs0
日々標準ライブラリの一覧とか眺めたりしないんだろうか
入力条件によっては正しくない結果になるコードを標準ライブラリのものに置き換えたら変なの書かないでとか言われた
確かに滅多に見ることのない関数だけど知らずにクソコードを書いたのはお前だろと
0953デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/26(土) 12:58:23.51ID:Fi5OX5tAd
ありえない話ばかりだ
0954デフォルトの名無しさん (ワッチョイ ab7b-ZhbG)2016/11/26(土) 13:41:57.10ID:2mzxQ+Jn0
>>947
2chのバトルでさえ規格を知っていないと勝てないと言うべき
0955デフォルトの名無しさん (スフッ Sdaf-fx8a)2016/11/26(土) 13:47:42.47ID:Xq+4fQTTd
こんなことで荒れるとかやっぱりC++って糞だわ
0956デフォルトの名無しさん (ワントンキン MM6f-/sNf)2016/11/26(土) 13:55:11.70ID:7WVLI+NLM
>>952
ちなみになんて関数?
0957デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/26(土) 14:07:00.67ID:Fi5OX5tAd
>>952
日々標準ライブラリの一覧を眺めるって
0958デフォルトの名無しさん (ドコグロ MM8f-/sNf)2016/11/26(土) 14:07:07.98ID:TLqiuBGiM
環境やその関数がわからんのでなんとも言えんが誰も知らないような関数の使用をちょっとためらうのはわからなくもない
0959デフォルトの名無しさん (ワッチョイ cb02-lM3r)2016/11/26(土) 14:15:57.73ID:54WcECqw0
>>957
コードコンプリートにもその環境の標準のライブラリに該当するもを眺めるだけでもしとけと書いてあるんだよなあ
0960デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/26(土) 14:26:24.98ID:Fi5OX5tAd
それが日々かっていう
0961デフォルトの名無しさん (ワッチョイ 133c-PVnu)2016/11/26(土) 15:40:33.76ID:Wj5e7FXJ0
cmathの関数とか眺める気がしない
0962デフォルトの名無しさん (アウアウカー Sa27-PVnu)2016/11/26(土) 17:28:11.23ID:giKin0Q3a
C++の標準ライブラリは何があるのか大体把握してるなそんなに量ないし

細かい仕様は把握してないけど、何なら標準で出来るっていうのは知っといたほうがいいと思う
0963デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 17:45:19.88ID:zqAOB8hF0
STLから隔離された iostream 系は黒歴史。
0964デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/26(土) 18:50:55.92ID:Fi5OX5tAd
前さー、標準のコンテナクラスでって言ったらさー、CVectprとCListかとか使ってきやがってさー
0965デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 18:58:23.12ID:zqAOB8hF0
今時の charヒープ配列確保する推奨は、vector<char> と unique_ptr<char[]> どっちなのかね?
0966デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 19:04:48.12ID:zqAOB8hF0
unique_ptr<char[]> だとイテレータがないからコンテナ扱いしてもらえないので algorithm や function ヘッダーの恩恵をあまり得られない。
よって、vector<char> が多少優勢ぽいね。
0967デフォルトの名無しさん (ワッチョイ 1bbf-/sNf)2016/11/26(土) 19:28:00.29ID:WBFBXDid0
>>964
そうかー、CVectprは意味不明だなー、確かに確かに。
0968デフォルトの名無しさん (ワッチョイ 2741-Kail)2016/11/26(土) 20:30:52.93ID:CWhhCCap0
stlなんて実際に使われてるのか?
どのような型でも入れれるコンテナなんて必要になったことが無い
設計完了した時点で、扱うデータ型はすべて決定するからな
0969デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 20:41:58.69ID:zqAOB8hF0
今時のC++を使った開発プロジェクトでSTLを使わない方が珍しいけど、
他に信頼できるライブラリが既にあるからSTL使わずに済んでいるならそれでいいんじゃないかな。
0970デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/26(土) 20:45:54.15ID:DcGUsa730
むしろ現代でSTLなどという過去の異物を使っている方が奇特
0971デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/26(土) 20:48:48.89ID:HvpdkzZSa
ostreamがprintfに比べて遅いというのが許せない
ゼロオーバーヘッドでないものを採り入れるな
0972デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 20:56:08.43ID:zqAOB8hF0
>>971
endl はfflush()を兼ねてるので遅くなる傾向がある。改行にendl使うのをやめてみては?
0973デフォルトの名無しさん (ワッチョイ 27ba-lM3r)2016/11/26(土) 21:10:24.88ID:DpTe/bJe0
endl使わなくてもだいぶ遅いよな
0974デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 21:27:40.73ID:zqAOB8hF0
fstream より FILEをデストラクタ定義付きのスマートポインタに入れたものの方が便利だし。
0975デフォルトの名無しさん (ワッチョイ 6f17-/sNf)2016/11/26(土) 21:46:10.15ID:Y9hphvTE0
>>968
stlは何でも入れられるコンテナじゃなくて、むしろ特定のものしか入れられないコンテナを自由自在にサクッと用意できるものなんだが

なんか経験ありげな雰囲気醸し出してるけど、とても経験ある人間の物言いとは思えない
0976デフォルトの名無しさん (ワッチョイ 2741-v8Z5)2016/11/26(土) 22:09:09.20ID:CWhhCCap0
>>975
屁理屈で言い回し変えてるだけじゃん(w
0977デフォルトの名無しさん (ワッチョイ 3fa6-lM3r)2016/11/26(土) 22:14:28.86ID:MLN6Ajtw0
何でも入れられるコンテナなんてSTLにないだろ
0978デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 22:19:01.54ID:zqAOB8hF0
vectorとlistは、比較関数呼び出しされなければ何でも入れられるんじゃまいか?
0979デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/26(土) 22:20:39.85ID:gZtoP9KV0
こういう奴はどう言っても理解する事は無いから相手するだけ無駄だよ。
理解する力がないのか理解する気が無いのかどっちかは解らないけど(大抵の奴は外に原因を求めるか開き直って理解する気が無いと宣うか)外から見たらどれでも一緒
0980デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:23:58.17ID:03mXNO3+0
std::shared_ptrが生ポインタと比較して有意な速度差が無いように見えるのですが。
どのような点に気を付けると現実的なbenchmarkが出来ますか?
確保、コピー、解放を繰り返すだけでは、生ポインタと比べて1%しか速度差が出ませんでした。
流石にこれはおかしいと思うのです。
0981デフォルトの名無しさん (ワッチョイ 2741-v8Z5)2016/11/26(土) 22:25:09.41ID:CWhhCCap0
>>977
勉強してこい
0982デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 22:25:11.71ID:zqAOB8hF0
C++は一般に実行速度の優れた言語と思われているが、ハッシュテーブルに相当するstd::mapの参照の速度はC#, Java, Perl, Python などにくらべあまりに遅かった。
C++11のunordered_mapの導入でようやく他言語のハッシュテーブルと同じ速度で要素を参照できるようになった。
0983デフォルトの名無しさん (アウアウカー Sa27-v8Z5)2016/11/26(土) 22:26:10.15ID:Dq94a8xOa
インタプリタに負けるのかよw
0984デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:27:35.60ID:03mXNO3+0
追伸。
std::make_sharedが悪さをするらしいと聞いたので、使わないようにすると、
+60%まで速度差が付きました。
0985デフォルトの名無しさん (ワッチョイ 3fa6-lM3r)2016/11/26(土) 22:28:19.14ID:MLN6Ajtw0
>>981
何をだよwww
0986デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:29:25.46ID:03mXNO3+0
色々なサイトに10倍くらい速度差があると書いてあるのですが。
どこが悪いんだろう。
0987デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:31:37.22ID:03mXNO3+0
逆に考えるとstd;:make_sharedは必ず使うべきなんですね。
今回はベンチなので余計な最適化してほしくないですが。
0988デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:33:31.02ID:03mXNO3+0
単一スレッドでバスロックの影響があるか調べたいのですが。
0989デフォルトの名無しさん (スップ Sdaf-PVnu)2016/11/26(土) 22:34:42.46ID:Fi5OX5tAd
2chなんてプロの来るところじゃないけど、仕事としてプログラムを書いている人間がアマチュアより低レベルな
発言を繰り広げる稀有な場所だよな。
例えば>>968とか
0990デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/26(土) 22:35:15.26ID:gZtoP9KV0
>>987
sizeof(T)が大きいかつweak_ptrを多用するなら使うべきではないかな
0991デフォルトの名無しさん (ワッチョイ cb02-lM3r)2016/11/26(土) 22:43:33.99ID:54WcECqw0
ID:CWhhCCap0こいつやばい
0992デフォルトの名無しさん (ワッチョイ 3712-PVnu)2016/11/26(土) 22:44:46.42ID:DcGUsa730
>ハッシュテーブルに相当するstd::mapの

まずこの認識が間違っているか、若しくは日本語が不自由か
0993デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:46:22.77ID:03mXNO3+0
algorithmは実にいろいろなことが出来ますが、組み合わせないといけないので
我々にはちょっと難しいですよね。
仕様に従いエンコーディングやURLを実装してみたら、リンクが終わらない現象に遭遇しました。
スタティックライブラリはソースより多くの情報を含んでるようですね。
リンク時の最適化をやめるとリンクがかなり早くなりました。
0994デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 22:46:37.17ID:zqAOB8hF0
>>992
ハッシュじゃないことは承知。代替品という意味で使った。
連想配列に“似た”標準機能は、std::mapしかなかった。
0995デフォルトの名無しさん (ワッチョイ 5b3c-+bTa)2016/11/26(土) 22:49:30.21ID:03mXNO3+0
>>990
そうなのですか。
C++は性能が要求される用途に使われるのでいろいろ難しいです。
0996デフォルトの名無しさん (アウアウカー Sa27-c6cb)2016/11/26(土) 22:56:49.14ID:HvpdkzZSa
STL2.0の登場が待たれる
0997デフォルトの名無しさん (ワッチョイ cb02-lM3r)2016/11/26(土) 23:05:21.91ID:54WcECqw0
STLという名称は公式のものではないし
狭義の意味ではHPで作られたのち標準に取り込まれたライブラリことだったり
広義の意味ではC++の標準ライブラリ全部を指していたり
vectorとかのコンテナクラスだけを指していたり意味が曖昧だから使わない方が良いと思う
0998デフォルトの名無しさん (ワッチョイ f39b-/sNf)2016/11/26(土) 23:07:34.45ID:FvfiZEi80
STLって公式じゃなかったんだ
0999デフォルトの名無しさん (ワッチョイ 3717-lM3r)2016/11/26(土) 23:23:36.58ID:zqAOB8hF0
STL なだけにすてる
1000デフォルトの名無しさん (ワッチョイ f37b-sOXq)2016/11/26(土) 23:47:12.25ID:gZtoP9KV0
ハゲも使ってる言葉だけどな
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 64日 1時間 35分 41秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。