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


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

C++相談室 part129



1 名前:デフォルトの名無しさん(ワッチョイ dfcf-HvS5) mailto:sage [2017/01/09(月) 14:49:27.56 ID:p96WJVyd0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part128
echo.2ch.net/test/read.cgi/tech/1480172629/

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

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

136 名前:デフォルトの名無しさん (ワッチョイ 1f7b-cG99) mailto:sage [2017/01/16(月) 01:02:26.19 ID:4D4bT+Tb0.net]
>>132
6.3.2を参照してるのはConstant initializerの定義だけ、
その初期化が行われるタイミングは6.7に書かれている通りブロックに入る前
ロード後、プログラムに制御が移る前かもしれないし、mainが呼び出された後かもしれない

137 名前:デフォルトの名無しさん (ワッチョイ b2cf-YL17) mailto:sage [2017/01/16(月) 01:17:19.08 ID:5OapSwc60.net]
>>134
Constant initializer じゃなくて

138 名前: Constant initialization の定義ね。
その Constant initialization に対する規定がローカル static の場合だけ
無視できるとする根拠が何かあるの?
[]
[ここ壊れてます]

139 名前:デフォルトの名無しさん (ワッチョイ 1f7b-cG99) mailto:sage [2017/01/16(月) 02:10:36.59 ID:4D4bT+Tb0.net]
> その Constant initialization に対する規定がローカル static の場合だけ
> 無視できるとする根拠が何かあるの?
6.7で参照してるConstant initializationは
3.6.2のConstant initialization is performed:の下で3つ列挙されてる部分
定義であって、初期化のタイミングは参照していない それぞれに別の記述がある

タイミングは何度も引用してるけど6.7は
> Constant initialization (3.6.2) of a block-scope entity with static storage duration, if applicable, is performed before its block is first entered.

3.6.2は
> Together, zero-initialization and constant initialization are called static initialization; all other initialization is dynamic initialization. Static initialization shall be performed before any dynamic initialization takes place.

140 名前:デフォルトの名無しさん (ワッチョイ b2cf-YL17) mailto:sage [2017/01/16(月) 02:53:47.44 ID:5OapSwc60.net]
>>136
別の記述があることが根拠?
それら2つの規定の両方が適用され得るだろうと言ってるんだけど、
なんでどっちか片方しか適用されないと思ってるの?

A ⊃ B の場合に A に対する規定が B にも及ぶってことを認めないの?
(この場合は A = "Constant initialization", B = "Constant initialization of a block-scope entity")

141 名前:デフォルトの名無しさん (オッペケ Sr37-U8Ig) mailto:sage [2017/01/16(月) 07:40:40.27 ID:a6XjHitHr.net]
>>137
>>134の主張は3.6.2, 6.7のどちらとも矛盾しないように見えるのだが

142 名前:デフォルトの名無しさん (ワッチョイ 1f7b-cG99) mailto:sage [2017/01/16(月) 08:43:01.09 ID:4D4bT+Tb0.net]
むしろ
3.6.2 initialization of non-local variables
と、明確に分けられてる項の規定が全部適用されると言ってるのが不思議過ぎる

wg21.cmeerw.net/cwg/issue2026もバグ指摘されてるし、前途多難だ

143 名前:デフォルトの名無しさん (ワッチョイ b2cf-YL17) mailto:sage [2017/01/16(月) 09:38:47.49 ID:5OapSwc60.net]
>>138
タイミングについての言及だけ読めばそうだけど、彼は 3.6.2 にある静的初期化一般に対する規定が
ローカル static の場合に限っては及ばない、とする主張をしている。


新しい理由付けも出なくなって平行線みたいだし、次期規格ではざっくり改定される文面の話だし、
もういいかな。

144 名前:デフォルトの名無しさん (ワッチョイ 1f7b-cG99) mailto:sage [2017/01/16(月) 10:48:30.43 ID:4D4bT+Tb0.net]
3.6.2のnon-localに関する規定は6.7で「そのブロックに入る前」と上書きされてるだろ
3.6.2がlocal, non-local問わずに有効なら「そのブロックに入る前」と言う規定は矛盾する



145 名前:デフォルトの名無しさん (スプッッ Sdf2-9KqD) [2017/01/16(月) 11:01:51.83 ID:ULOq3Vpcd.net]
https://cpprefjp.github.io/reference/atomic/atomic.html
atomicを使ったspinlockなるmutexの例があるのですが
これを再帰ロック可能なrecursive_spinlockにするには
どのように実装すればいいですか。

146 名前:デフォルトの名無しさん (オッペケ Sr37-U8Ig) mailto:sage [2017/01/16(月) 19:11:32.79 ID:a6XjHitHr.net]
>>141
「ブロックに入る前、且つ、すべての動的初期化より前」
規格がUNKOなのはさておき、論理的にどこも矛盾していないのでは?

147 名前:デフォルトの名無しさん (ワントンキン MMe2-dqLr) [2017/01/16(月) 19:40:06.27 ID:LWQyQSVNM.net]
仮にブロックスコープのconstexpr変数が実行時に初期化されたとして、どんな問題が発生するという主張なん?

148 名前:デフォルトの名無しさん (ワッチョイ 3298-los8) [2017/01/16(月) 22:29:50.06 ID:UB1GTfE40.net]
翻訳時に評価せよと指定したものが
実行時に評価されるようなら
コンパイラを窓から投げ捨てて
アセンブラか機械語を使うしかない

int main() { return 1; }で0を返されるのと同じで
もはや何を言っても無駄、根本的に話にならないということ

149 名前:デフォルトの名無しさん (ワッチョイ 1f7b-cG99) mailto:sage [2017/01/16(月) 23:04:39.73 ID:4D4bT+Tb0.net]
>>145
初期化の意味がわからない子は参戦しないように

150 名前:デフォルトの名無しさん (オッペケ Sr37-U8Ig) mailto:sage [2017/01/16(月) 23:23:13.66 ID:+uglxnZcr.net]
>>144
特に実害はなくても>>94の『実行時の初期化とは無縁』が真実でないことを問題と考える者がいるのだと思っていた

151 名前:デフォルトの名無しさん (ワントンキン MMe2-dqLr) [2017/01/17(火) 03:28:47.43 ID:tvPWGsMMM.net]
なんというか糞の役にもたたんな
今現在そんな実装のコンパイラがあるわけでもなし、今から実装するにしてもわざわざ複雑にして実行速度落とすような実装にするとも思えないし

152 名前:デフォルトの名無しさん (ワッチョイ a258-rG+u) mailto:sage [2017/01/17(火) 04:25:31.38 ID:ngprCvv90.net]
最近猫でもわかるって奴読んで独学でちょくちょく勉強してんだけど、こんまま独学でプログラミング学んでったらオセロくらいなら作れるようになる?どんくらいかかるかな

153 名前:デフォルトの名無しさん (ドコグロ MM0a-8ZdN) mailto:sage [2017/01/17(火) 07:56:18.72 ID:ueZ17iDzM.net]
>>144
組み込みじゃ、ROMになるかRAMになるか大きな違いが出るな

154 名前:デフォルトの名無しさん (ワッチョイ 677b-dqLr) [2017/01/17(火) 13:27:45.10 ID:mkv39b380.net]
>>150
constすら付けなくても初期値が決まっていて変更する可能性のあるコードが無ければ最適化で定数に置き換えられる時代にそんな事気にするんだ?



155 名前:デフォルトの名無しさん (ワッチョイ b624-los8) [2017/01/17(火) 13:30:54.01 ID:Pbl2vPGV0.net]
>>146
おい間抜け
どこかに初期化って書いてあったか?
人を小馬鹿にしたつもりだろうがブーメラン刺さってるぞw

156 名前:デフォルトの名無しさん (ワッチョイ 3e5b-vSov) mailto:sage [2017/01/17(火) 22:57:29.19 ID:FvzokP9y0.net]
>>149
オセロくらいなら excel と vba で一週間くらい集中すればできんじゃないかね。

157 名前:デフォルトの名無しさん (ワッチョイ 4f17-0Plu) mailto:sage [2017/01/18(水) 01:28:58.03 ID:9W34sy+b0.net]
>>153
アスペ

158 名前:デフォルトの名無しさん (ワッチョイ 6296-8ZdN) mailto:sage [2017/01/18(水) 01:54:34.51 ID:an9uI7uk0.net]
>>151
定数が実行時に初期化されれば、それはROMじゃなくてRAMに配置されてるってことだろ?そりゃ組み込みなら気にならないほうがおかしい

159 名前:デフォルトの名無しさん (ワッチョイ 677b-dqLr) [2017/01/18(水) 02:36:42.52 ID:n1DpjkbT0.net]
>>155
int f(){static int v=5;return v;}

int f(){return 5;}
が最適化後は一緒になるって言ってんの。
そして
static constexpr int v=...;
にしたらそのvの初期化値はコンパイル時に求まるし変更出来ない。ここまで言えば最適化後にどうなるか解るよね?
まぁ、constexprの場合は最適化しなくてもなんだけどさ

160 名前:デフォルトの名無しさん (ワッチョイ b2cf-YL17) mailto:sage [2017/01/18(水) 03:40:09.16 ID:2vnfhfI50.net]
>>156
>>150>>144の言った「仮に・・・」へのレスなんだから現実のコンパイラがどうなってるかは関係ないと思われ

161 名前:デフォルトの名無しさん (ドコグロ MM9f-lGK7) mailto:sage [2017/01/18(水) 07:14:44.33 ID:KfZHaLf7M.net]
定数であることと ROM に置くかどうかは別の話だし

162 名前:デフォルトの名無しさん (ワッチョイ 573c-U8Ig) mailto:sage [2017/01/18(水) 08:00:45.61 ID:+X3tak3t0.net]
>>156
>最適化後は一緒になるって言ってんの
デバッグ中の挙動を無視されると困ります

163 名前:デフォルトの名無しさん (ワッチョイ 677b-dqLr) [2017/01/18(水) 08:42:08.41 ID:n1DpjkbT0.net]
>>157
ごもっとも。規格がどうかも関係なかったね。
>>159
なんで?

164 名前:デフォルトの名無しさん (ブーイモ MMd2-a69X) mailto:sage [2017/01/18(水) 08:52:41.79 ID:ZS0nd/enM.net]
>>158
定数であるからromにも置けるって話なんで関係ない訳がない。



165 名前:デフォルトの名無しさん (ドコグロ MM4e-lGK7) mailto:sage [2017/01/18(水) 18:41:42.82 ID:Abs9KEqJM.net]
>>161
> 定数であるからromにも置ける
だからと言ってROMに置くとは限らない
って話なんだがお前には難しすぎたか?

166 名前:デフォルトの名無しさん (アウアウカー Sa5f-YGRn) mailto:sage [2017/01/18(水) 21:27:37.78 ID:4GI0Tt+ca.net]
このスレを見て、C++って永遠に喧嘩できて寂しくない言語だと判った

167 名前:デフォルトの名無しさん (ワッチョイ 3e5b-vSov) mailto:sage [2017/01/18(水) 21:56:10.60 ID:qB5vepR/0.net]
こういうやりとり見てるとやっぱリーナスの c++観は正しいなと思う。

168 名前:デフォルトの名無しさん (ブーイモ MM8b-a69X) mailto:sage [2017/01/18(水) 23:18:53.09 ID:0GLHJE+5M.net]
>>162
置けるってのは置くこともできるって意味だが、随分日本語不自由なやつだな

169 名前:デフォルトの名無しさん (ドコグロ MM7f-j6UX) mailto:sage [2017/01/19(木) 06:46:32.74 ID:JadLiFtgM.net]
>>165
> 随分日本語不自由なやつだな
「置ける」と言う可能性の話と「置く」と言う実際の動作の区別がつかない奴に言われても...
でっかいブーメラン乙としか言いようがないわな w

170 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/19(木) 06:57:37.47 ID:bO+XZlhy0.net]
何を言い争ってんのか解らん
直値でもROMに置けると言えるだけでなんの違いも無いんだが。

171 名前:デフォルトの名無しさん (ワッチョイ 637b-voKO) mailto:sage [2017/01/19(木) 08:39:21 ]
[ここ壊れてます]

172 名前:.82 ID:4Gh/dudO0.net mailto: >>152
初期化==評価と考えてなけりゃ >>145は出てこねーんだよ バーカ
[]
[ここ壊れてます]

173 名前:デフォルトの名無しさん (スプッッ Sd1f-xrkK) [2017/01/19(木) 10:16:43.40 ID:CldDY8MLd.net]
int a=100;
int&& b=std::move(static_cast<int>(a));
b=200;
aは100、bは200になるのですが
キャストすると必ず一時オブジェクトが生成されるのでしょうか
環境によってaもbも200になったりしますか。

174 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/19(木) 10:39:40.20 ID:gPdsJo1i0.net]
>>169
必ず生成される。
https://timsong-cpp.github.io/cppwp/n4140/expr.static.cast#4



175 名前:デフォルトの名無しさん (スプッッ Sd1f-xrkK) [2017/01/19(木) 10:50:03.86 ID:CldDY8MLd.net]
わかりました

176 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/19(木) 11:10:02.61 ID:ipEwSksA0.net]
次に、「ボクのパソコンではaが200になるんてすけど」というレスが来るに違いない

177 名前:デフォルトの名無しさん (ドコグロ MMff-j6UX) mailto:sage [2017/01/19(木) 12:54:31.63 ID:Ccs4bPhGM.net]
>>167
わからないなら絡んでくるなよ w

178 名前:デフォルトの名無しさん (オッペケ Sr87-mcUU) mailto:sage [2017/01/19(木) 14:28:16.75 ID:oLhGNghYr.net]
>>169
>環境によってaもbも200になったりしますか

Yes

179 名前:デフォルトの名無しさん (ワッチョイ bfcb-SmTw) [2017/01/19(木) 20:26:21.94 ID:+cE5RWPo0.net]
どっちですか

180 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/19(木) 21:29:45.00 ID:x+icVyy10.net]
>>173
わからないなら絡まれたフリをするなよw
おまえに教えを請うようなクズの中のクズはさすがにこのスレにもいないだろうから

181 名前:デフォルトの名無しさん (ドコグロ MMff-j6UX) mailto:sage [2017/01/19(木) 21:35:22.14 ID:ylWIT8ZQM.net]
>>176
わからんって言ってるのは俺じゃなくて >>167 なんだが...
色々お前には難しすぎたか? w

182 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/19(木) 21:54:21.33 ID:bO+XZlhy0.net]
何を言い争ってんのかわからん。

183 名前:デフォルトの名無しさん (ワッチョイ ff6c-L1Ju) mailto:sage [2017/01/19(木) 21:55:13.80 ID:f8wSWc2J0.net]
いいのよ

184 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/19(木) 21:56:39.26 ID:bO+XZlhy0.net]
>>179
ありがとう



185 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/20(金) 02:35:51.43 ID:WXRyG1p+a.net]
最近この喧嘩は自演じゃないかと思ってる

186 名前:デフォルトの名無しさん (ワッチョイ f302-JQ1R) mailto:sage [2017/01/20(金) 08:56:02.47 ID:1CC8R4dK0.net]
ここで出た話題のTips集を出したら売れるんじゃないかと思えてきたわ

187 名前:デフォルトの名無しさん (スプッッ Sd1f-ddg/) mailto:sage [2017/01/20(金) 18:53:55.75 ID:zIVGmPHgd.net]
32bitのソフトを64bit対応させようかなって考えてるのだけど
printf, winapi, _t型変数以外気を付けることある?俺これやってはまったわみたいなのが知りたい

188 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/20(金) 23:36:02.52 ID:GZ99lyBK0.net]
>>168
いーや、初期値==評価とは考えずに書いた
事実とおまえの考えは完全が食い違っているんだよ
せいぜい妄想の世界で自画自賛してろナルシスト

189 名前:デフォルトの名無しさん (ワッチョイ 637b-voKO) mailto:sage [2017/01/21(土) 01:01:56.19 ID:v+i75+9D0.net]
>>184
引っかかりやがった
初期化の話題で評価と言い出しのはテメーだ バーカ

190 名前:デフォルトの名無しさん (ワッチョイ cf7b-5ScM) mailto:sage [2017/01/21(土) 01:52:25.87 ID:RmTA4cQd0.net]
江添はなんて言ってる?

191 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/21(土) 11:02:38.55 ID:Bf4L6OzOa.net]
それワイのやつや!

192 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/22(日) 00:06:25.08 ID:LwmXYJhf0.net]
>>185
だから初期化ってどこに書いてあるんだよ
幻視か? だからリスパダールちゃんと飲めとあれほど・・・

193 名前:デフォルトの名無しさん (ワッチョイ cf7b-rTuY) [2017/01/22(日) 00:24:56.56 ID:77/TNfJH0.net]
>>182
こんなのどうやってまとめるんだ…

194 名前:デフォルトの名無しさん (ワッチョイ bfcb-xrkK) [2017/01/22(日) 02:31:51.43 ID:hchjfZjx0.net]
江口はなんて?



195 名前:デフォルトの名無しさん (ワッチョイ 6f56-3qL8) mailto:sage [2017/01/22(日) 02:40:24.62 ID:rrJzCAZR0.net]
教えて下さい。
環境は VisualC++2015 x64 です。

与えられた文字列の引数について、1文字が1バイトなのか、2バイトなのかで呼び出す関数を切り分けたいと思い、SFINAE で以下のようなコードを書きました。
しかし、こののコードで「関数A」を呼んで欲しいのに、「関数B」が呼ばれてしまいます。

- なぜ関数Bが呼ばれるのか
- 1文字のバイト数で切り替える手段

この2点について、教えて下さい。よろしくお願いします。

extern void* enabler;

// 関数A (本当は1文字が1バイトの時用の関数)
template <typename STR, std::enable_if_t<sizeof(decltype(std::remove_all_extents<STR>::type()[0])) == 1> *& = enabler>
void hoge(const STR&)
{
}

// 関数B (本当は1文字が2バイトの時用の関数)
template <typename STR, std::enable_if_t<sizeof(decltype(std::remove_all_extents<STR>::type()[0])) != 1> *& = enabler>
void hoge(const STR&)
{
int tmp;
tmp = sizeof(decltype(std::remove_all_extents<STR>::type()[0])); // どういう訳か tmp == 1 となる
}

void main()
{
std::string s;
hoge(s); // 1バイト版である、関数Aを呼んで欲しい
}

196 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK27-o4cX) mailto:sage [2017/01/22(日) 03:05:41.88 ID:NkQzBql/K.net]
>>191
1 charは常に2バイトではない。あなたはマルチバイト文字列の基礎を理解していないようだ。
マルチバイト文字列中の複数のcharが一文字になっているか否かは、
文字列の先頭から1charごとにcharの値の範囲を確認し、lead byteかtrail byteかを判定するしかない。

197 名前:デフォルトの名無しさん (ワッチョイ bfcb-SmTw) [2017/01/22(日) 03:12:07.68 ID:hchjfZjx0.net]
ビルド通らないからなんでかはわかんない

template <typename STR, std::enable_if_t< sizeof( typename STR::value_type ) == 1, std::nullptr_t > SFINAE = nullptr >
void hoge(const STR&)
{
}

template <typename STR, std::enable_if_t< sizeof( typename STR::value_type ) != 1, std::nullptr_t > SFINAE = nullptr >
void hoge(const STR&)
{
}

これでいけない?

198 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK47-o4cX) mailto:sage [2017/01/22(日) 03:12:21.28 ID:NkQzBql/K.net]
型情報からはマルチバイト文字列のlead/trailに関する情報は得られない。よって、各charの値の範囲を実際に確認しないと、わからない。

199 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 07:14:06.66 ID:7mC+0LM10.net]
>>192
日本語が理解できないボケ老人は去れ

200 名前:デフォルトの名無しさん (ワッチョイ a37d-wsSS) mailto:sage [2017/01/22(日) 08:04:55.45 ID:5o7PrILb0.net]
>>191
例のコンパイラがぶっ壊れてるんだろうね
gccは期待通り
ideone.com/9pSqel

201 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/22(日) 08:28:45.75 ID:gigvK4EO0.net]
オーバーロードでよくね

202 名前:191 (ワッチョイ 6f56-3qL8) mailto:sage [2017/01/22(日) 08:37:36.49 ID:rrJzCAZR0.net]
>192-196
ありがとうございます。

>193
確かに期待通りの動作をします。
ただ、この先 MFC の CStringA, CStringW, 生配列などを仮引数として与えたいため、operator[] の戻り値で判定出来ないか考えていました。

>196
なるほど。コンパイラの問題くさいので代替案を考えてみます。
ありがとうございました。

203 名前:191 (ワッチョイ 6f56-3qL8) mailto:sage [2017/01/22(日) 08:50:18.71 ID:rrJzCAZR0.net]
>192-197

下の様に、sizeof, decltype を移動させたら、あっさり動きました。失礼しました。

template <typename STR>
struct helper
{
enum {
item_size = sizeof(decltype(STR()[0])),
};
};

extern void* enabler;

// 1バイト版
template <typename STR, typename std::enable_if<helper<STR>::item_size == 1>::type *& = enabler>
void hoge(const STR&)
{
}

// 2バイト版
template <typename STR, typename std::enable_if<helper<STR>::item_size == 2>::type *& = enabler>
void hoge(const STR&)
{
}

void main() {
std::string a;
hoge(a); // 1バイト版
std::wstring w;
hoge(w); // 2バイト版
}

204 名前:デフォルトの名無しさん (ワッチョイ 237b-rTuY) [2017/01/22(日) 09:58:50.62 ID:iEDujvJA0.net]
https://youtu.be/quIHgwuF6r4



205 名前:デフォルトの名無しさん (ワッチョイ f302-JQ1R) mailto:sage [2017/01/22(日) 13:37:19.35 ID:gnARoY8z0.net]
CStringとかまだ存在してたのかよ

206 名前:デフォルトの名無しさん (ワンミングク MM9f-aDhR) mailto:sage [2017/01/22(日) 14:40:31.27 ID:hBhrTyQGM.net]
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

207 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/22(日) 15:06:13.66 ID:paMlvMvI0.net]
>>199
sizeof(decltype(STR()[0])) って sizeof(STR()[0]) と何か違ったっけ?

208 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 15:53:04.56 ID:7mC+0LM10.net]
mainがvoidなレベルの人にそんな突っ込みをしても…

209 名前:デフォルトの名無しさん (ワッチョイ cf24-RK9q) [2017/01/22(日) 20:43:26.81 ID:LwmXYJhf0.net]
戻らないmainについてもガタガタ言っちゃう人がねえ

210 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/22(日) 22:57:58.70 ID:gigvK4EO0.net]
mainのreturnは省略したら0が返ることが保証されている

211 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 22:59:58.14 ID:7mC+0LM10.net]
>>206
当たり前のことを言い出して、いきなりどうした

212 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/22(日) 23:01:08.57 ID:gigvK4EO0.net]
>>207
戻らないmain(?)へ宛

213 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 23:14:20.58 ID:7mC+0LM10.net]
>>208
なるほど理解した
『戻らないmain』は[[noreturn]]のことだと思ったので理解できずスルーしていた
人に『リスパダールちゃんと飲めとあれほど』と言って自分が飲み忘れたのかと

214 名前:デフォルトの名無しさん (ワッチョイ 23c9-mcUU) mailto:sage [2017/01/22(日) 23:26:22.29 ID:7mC+0LM10.net]
>>203
CStringは知らないが、stringは恐らく同じ
sizeof(STR()[0])
 →sizeof (char &型の左辺値)
 →sizeof (char)と同じ
sizeof(decltype(STR()[0]))
 →sizeof (decltype(char &型の左辺値))
 →sizeof (char &型)
 →sizeof (char)と同じ



215 名前:191 (アウアウカー Sac7-/Qox) mailto:sage [2017/01/23(月) 09:48:36.48 ID:SwVOU3U8a.net]
>203
vc++2015で deltype をぬくと、関数に[] は出来ません、みたいなエラーで通りませんでした。
STR()をコンストラクタではなく、関数と思ってるんだと思います。

216 名前:デフォルトの名無しさん (オッペケ Sr87-mcUU) mailto:sage [2017/01/23(月) 17:40:29.94 ID:oJYEiyR6r.net]
宣言に解釈できるときは宣言として解釈
みたいなルールだっけ

217 名前:デフォルトの名無しさん (ワッチョイ ff9f-tc54) mailto:sage [2017/01/23(月) 18:40:50.71 ID:FReCyx8S0.net]
コンストラクタ ⊆ 関数

218 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/23(月) 19:40:02.64 ID:Ij4EmhsFa.net]
アンダーバー要らなくね?

219 名前:デフォルトの名無しさん (ワッチョイ ffcc-DOWB) mailto:sage [2017/01/24(火) 03:03:03.61 ID:ch78KtiL0.net]
MFCとか何処のバカが設計したんだろうな
とっくに絶滅しているもんだとおもっていたぜw

220 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/24(火) 03:50:21.48 ID:nvNd8iP10.net]
それより優れたものを設計してから言えよな

221 名前:デフォルトの名無しさん (ワッチョイ f302-JQ1R) mailto:sage [2017/01/24(火) 03:56:08.97 ID:Af36V4kC0.net]
>>216←今日のバカ

222 名前:デフォルトの名無しさん (ワッチョイ 137b-Eksc) [2017/01/24(火) 11:11:02.03 ID:dVVoZ7Su0.net]
MFCが作られた時代を考えられないやつのほうがバカなんだよなあ
あれはWin32APIの薄いラッパでしかないから
文句あるなら別のライブラリを使えばいいだけの話、それも出来ないならやっぱりお前が無能でバカ

223 名前:デフォルトの名無しさん (スップ Sd1f-xrkK) [2017/01/24(火) 11:33:11.15 ID:9X3I9Jqtd.net]
int (*func)(int) = &hoge;
func = nullptr;

funcへの代入をできないようにconst付けたいのですが
どう書けばいいですか。
usingやtypedefは使わない方法でお願いします。

あとメンバ関数への参照はどう記述すればいいですか
int (hage::*func)(int) = &hage::test;
の参照版です

224 名前:デフォルトの名無しさん (アウアウカー Sac7-WqDQ) mailto:sage [2017/01/24(火) 11:41:16.20 ID:GCEfrzc1a.net]
益のない煽りはよしなよ(・ิω・ิ)



225 名前:デフォルトの名無しさん (ワッチョイ 7330-J7L1) mailto:sage [2017/01/24(火) 12:11:20.65 ID:ekWjtoGq0.net]
>>219
int (* const func)(int) = &hoge;

int (piyo::* mf0)(int) = &piyo::test;
int (piyo::* & mf1)(int) = mf0;

int (piyo::* const & mf2)(int) = &piyo::test;

226 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/24(火) 12:13:02.49 ID:NfDXKGen0.net]
>>211
そっか sizeof だと式と型の曖昧さが問題になるけど decltype なら式しか取らないから曖昧さを消せるのか。

227 名前:デフォルトの名無しさん (ワッチョイ ffcf-JQ1R) mailto:sage [2017/01/24(火) 12:13:28.46 ID:NfDXKGen0.net]
>>219
[dcl.mptr]/3 (Note) "There is no "reference-to-member" type in C++."

228 名前:デフォルトの名無しさん (スップ Sd1f-xrkK) [2017/01/24(火) 12:19:40.53 ID:9X3I9Jqtd.net]
>>221
それだとメンバ関数のポインタの参照になってませんか
int (&func)(int) = hoge;
のメンバ関数版はできないでしょうか

constの件はうまくいきました

229 名前:デフォルトの名無しさん (ワッチョイ ffd9-iijN) mailto:sage [2017/01/24(火) 13:24:18.69 ID:kmpgWA440.net]
>>224
thisが必要になるから無理なんじゃないの
それよりクラス内でメンバ関数へのポインタを書くとthisが必要になる

230 名前:デフォルトの名無しさん (ワッチョイ 6f5b-OQjX) mailto:sage [2017/01/24(火) 21:23:55.09 ID:GIi5sfFU0.net]
一生こういう些末なところに引っかかって
中身を書けない人生を送るんだろうな〜

231 名前:デフォルトの名無しさん (ワッチョイ cf42-Wde1) mailto:sage [2017/01/25(水) 00:27:17.93 ID:I9ZrCxSQ0.net]
uint8_tとbasic_ifstream組み合わせるといろいろ面倒なんだけど、みなバイナリファイル読み込むときどうしてんの?普通にchar使っ使う?

232 名前:デフォルトの名無しさん (オッペケ Sr87-mcUU) mailto:sage [2017/01/25(水) 00:35:21.87 ID:KGxAJ6V6r.net]
バイナリでchar使うのは30年前の老人の発想

233 名前:デフォルトの名無しさん (ササクッテロレ Sp87-Taza) mailto:sage [2017/01/25(水) 00:51:14.53 ID:/+qbj4+Vp.net]
fopenでおk

234 名前:デフォルトの名無しさん (ワッチョイ 037b-rTuY) [2017/01/25(水) 01:30:42.64 ID:5KwEWhG70.net]
他の型をバイト列として解釈するときは(unsigned )charしか許されてないから普通にchar使う



235 名前:デフォルトの名無しさん (ワッチョイ ff17-SmTw) [2017/01/25(水) 02:33:17.29 ID:LUWqNFoa0.net]
fgetc() の戻り値を直接 char 変数に代入して EOF(=-1)判定するヘマ。あるある

236 名前:デフォルトの名無しさん (ワンミングク MM9f-cBXx) mailto:sage [2017/01/25(水) 04:12:15.84 ID:nJO+CT7AM.net]
ねぇよ






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

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

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