次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
C++相談室 part140
https://mevius.5ch.net/test/read.cgi/tech/1547326582/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part141
■ このスレッドは過去ログ倉庫に格納されています
2019/02/22(金) 03:07:43.52ID:MgOIx7iK
242237
2019/03/07(木) 01:49:48.32ID:7rstSYcJ >>241
スタック消費でヒーハー言う組み込み案件に進出するのもC++のひとつの課題なのでは有馬温泉
スタック消費でヒーハー言う組み込み案件に進出するのもC++のひとつの課題なのでは有馬温泉
243デフォルトの名無しさん
2019/03/07(木) 01:52:03.09ID:1uoKMGSD 組み込み界隈がC++を活用する目標があるのであってC++の目標ではない
244デフォルトの名無しさん
2019/03/07(木) 01:56:44.60ID:E2AqWV/D from_chars
to_chars使えって話だろ
それかfmt
to_chars使えって話だろ
それかfmt
245デフォルトの名無しさん
2019/03/07(木) 03:10:47.55ID:V0jGdMU/ class C : public std::function<int(int)>{};
というクラスを定義して、
int f(int i){ return i + 1; }
void main()
{
C c = f;
int i = c(1);
}
みたいな使い方って出来ないのでしょうか?
functional のヘッダを読んでみましたがさっぱりでした
というクラスを定義して、
int f(int i){ return i + 1; }
void main()
{
C c = f;
int i = c(1);
}
みたいな使い方って出来ないのでしょうか?
functional のヘッダを読んでみましたがさっぱりでした
246はちみつ餃子 ◆8X2XSCHEME
2019/03/07(木) 03:21:15.84ID:fFrTWbSf >>245
やりたいのはこういうこと?
class C : public std::function<int(int)>{
using std::function<int(int)>::function;
};
やりたいのはこういうこと?
class C : public std::function<int(int)>{
using std::function<int(int)>::function;
};
247はちみつ餃子 ◆8X2XSCHEME
2019/03/07(木) 03:25:38.52ID:fFrTWbSf めっちゃ雑にやったけど、
実際にはスライシングに気を付けてな。
実際にはスライシングに気を付けてな。
248デフォルトの名無しさん
2019/03/07(木) 03:42:38.23ID:V0jGdMU/ >>246
すいません、
知識不足でそのusingが何を意味しているのか分かりませんが、
std::function<int(int)> と、
class C : public std::function<int(int)>{} を、
外側から同じように使いたいという感じです。
現在は、
class C { std::function<int(int)> F; };
みたいになっており、
C c;
c.F = f;
int i = c.F(1);
と、こんな風に使われています。
std::function<int(int)> を継承させてしまい、.Fを消したい感じです。
すいません、
知識不足でそのusingが何を意味しているのか分かりませんが、
std::function<int(int)> と、
class C : public std::function<int(int)>{} を、
外側から同じように使いたいという感じです。
現在は、
class C { std::function<int(int)> F; };
みたいになっており、
C c;
c.F = f;
int i = c.F(1);
と、こんな風に使われています。
std::function<int(int)> を継承させてしまい、.Fを消したい感じです。
249はちみつ餃子 ◆8X2XSCHEME
2019/03/07(木) 04:00:06.05ID:fFrTWbSf >>248
単純に
class C : public std::function<int(int)>{}
とした場合、当然だけどクラス C にデフォルトで定義されるコンストラクタは
C::C(void); と C::C(const C&); だから、型が int (*)(int) であるような値を受け取る余地はない。
using std::function<int(int)>::function;
を入れると基底クラス std::function<int(int)> のコンストラクタである
std::function<int(int)>::function; をあたかも C のコンストラクタみたいにできる。
そんだけ。
public 継承してれば std::function<int(int)> の他のメンバはそのまま C のメンバとして
見えるからおおよそ期待する挙動になると思う。
単純に
class C : public std::function<int(int)>{}
とした場合、当然だけどクラス C にデフォルトで定義されるコンストラクタは
C::C(void); と C::C(const C&); だから、型が int (*)(int) であるような値を受け取る余地はない。
using std::function<int(int)>::function;
を入れると基底クラス std::function<int(int)> のコンストラクタである
std::function<int(int)>::function; をあたかも C のコンストラクタみたいにできる。
そんだけ。
public 継承してれば std::function<int(int)> の他のメンバはそのまま C のメンバとして
見えるからおおよそ期待する挙動になると思う。
250デフォルトの名無しさん
2019/03/07(木) 04:06:09.21ID:V0jGdMU/251デフォルトの名無しさん
2019/03/07(木) 08:20:27.58ID:Yz7Qf/Kl >>237
2ファイル同時に編集なんてしたらあっという間に食い潰しそうね
2ファイル同時に編集なんてしたらあっという間に食い潰しそうね
252デフォルトの名無しさん
2019/03/08(金) 01:15:31.98ID:jsJl1WSX テンプレートで何とかなりませんかね。
254237
2019/03/08(金) 06:55:44.25ID:orP5LHkV >>244 が提示してくれた from_chars, to_chars をgccに導入するにはどうしたらいい?
WSLのubuntuを使ってるんだけど規定でfrom_chars, to_charsの定義されたヘッダーファイルが入ってないっぽい。
WSLのubuntuを使ってるんだけど規定でfrom_chars, to_charsの定義されたヘッダーファイルが入ってないっぽい。
255デフォルトの名無しさん
2019/03/08(金) 08:26:54.11ID:ZyNdKvhR >>254
たしか8.0でまだ整数しか実装されてない
たしか8.0でまだ整数しか実装されてない
256デフォルトの名無しさん
2019/03/09(土) 11:07:13.09ID:jx9iLAiD C++テンプレートテクニック第三版っていつ出るんですかね?
257デフォルトの名無しさん
2019/03/10(日) 00:54:12.40ID:3tC9wBDx 待っていても何も始まらない!
君が書くんだよ!
君が書くんだよ!
258デフォルトの名無しさん
2019/03/10(日) 17:07:48.90ID:yzd/Af8M テンプレート引数がクラスでpush_back()メンバを持っているというようなことを検査することはできますかね?
259デフォルトの名無しさん
2019/03/10(日) 17:10:17.73ID:2Qm7LFrM std::is_classとdetection idiomで可能かと
260デフォルトの名無しさん
2019/03/10(日) 17:15:14.74ID:yzd/Af8M でてくしょんいでおむってどの本見ればわかりますかね?
261デフォルトの名無しさん
2019/03/10(日) 17:16:33.87ID:yzd/Af8M decltype使えばいいのかな。
262デフォルトの名無しさん
2019/03/10(日) 17:18:14.94ID:2Qm7LFrM 載ってる本あるのかなあ
どうやるのかだけなら、ここのサンプルコードを真似すればいいと思う
https://cpprefjp.github.io/reference/type_traits/void_t.html
どうやるのかだけなら、ここのサンプルコードを真似すればいいと思う
https://cpprefjp.github.io/reference/type_traits/void_t.html
263デフォルトの名無しさん
2019/03/10(日) 17:21:49.62ID:yzd/Af8M ありがとう。
ちょっと読んでみます。
ちょっと読んでみます。
264デフォルトの名無しさん
2019/03/10(日) 22:01:07.26ID:yzd/Af8M std::byteの使い方がよくわからない。
暗黙の何とかを避けるのに使うんだろか。
暗黙の何とかを避けるのに使うんだろか。
265デフォルトの名無しさん
2019/03/10(日) 22:11:27.82ID:2Qm7LFrM 単純にバイトを表現する型というのが必要となった
char8_tと同じようなもん
char8_tと同じようなもん
266デフォルトの名無しさん
2019/03/10(日) 22:30:00.78ID:yzd/Af8M ソケットやファイルの入出力に使うって事かな?
267デフォルトの名無しさん
2019/03/10(日) 22:49:36.48ID:8hqMg5Px 1バイトサイズの整数のつもりでcharを使ったらstreamで困ることがあったりしたしね。
268デフォルトの名無しさん
2019/03/10(日) 23:15:04.53ID:yzd/Af8M enum class byte : unsigned char { };
ってなってる。
ってなってる。
269デフォルトの名無しさん
2019/03/10(日) 23:21:10.96ID:6gF9+EwK そのベースの型は実装依存
型を取りだして使えってことなんだろうか
型を取りだして使えってことなんだろうか
270デフォルトの名無しさん
2019/03/10(日) 23:21:22.34ID:ketqiw2j なんでenum classなんだ?
typedefと何が違うの?
typedefと何が違うの?
271デフォルトの名無しさん
2019/03/10(日) 23:31:19.81ID:2Qm7LFrM 暗黙の型変換ができない
272デフォルトの名無しさん
2019/03/10(日) 23:54:49.98ID:vvRzWHgY こういうの行き過ぎた型安全に思えるけどね
273デフォルトの名無しさん
2019/03/10(日) 23:57:35.21ID:6gF9+EwK でも過去にそれで何かあったんでしょ
使うかどうかは任意だしある分には困らない
使うかどうかは任意だしある分には困らない
274デフォルトの名無しさん
2019/03/10(日) 23:57:38.91ID:ketqiw2j なるほど
275デフォルトの名無しさん
2019/03/11(月) 00:01:39.15ID:4nU22VRt is_enum_vがtrueになるとか違和感しかない
276デフォルトの名無しさん
2019/03/11(月) 05:30:01.20ID:pTTv+VC9277デフォルトの名無しさん
2019/03/11(月) 05:58:05.15ID:mFqdzmI2 既存のライブラリと衝突しまくるだろそれ
278デフォルトの名無しさん
2019/03/11(月) 11:02:11.57ID:9rO3q8tQ279デフォルトの名無しさん
2019/03/11(月) 13:49:05.84ID:kWR5MawD WPFってどうなの
280デフォルトの名無しさん
2019/03/11(月) 19:42:26.86ID:OenRxSRY 塵
281デフォルトの名無しさん
2019/03/11(月) 22:05:24.43ID:XA5PtgcF getoptの標準化マダーチンチン(AA略
282デフォルトの名無しさん
2019/03/12(火) 07:17:28.89ID:dEFL2K0T void foo(std::function<void()> &&f){}
int main(){
auto lamda = [](){};
foo(lamda);
}
なぜコンパイルできるの?
int main(){
auto lamda = [](){};
foo(lamda);
}
なぜコンパイルできるの?
283デフォルトの名無しさん
2019/03/12(火) 07:23:08.39ID:FSVt1tPQ >>281
オプションの渡し方がそもそも揺れてる
オプションの渡し方がそもそも揺れてる
284デフォルトの名無しさん
2019/03/12(火) 07:25:00.12ID:FSVt1tPQ285デフォルトの名無しさん
2019/03/12(火) 11:46:00.90ID:6Uu2j9Xc int main(std::function<void()> &&f){
return main([](){});
}
return main([](){});
}
286デフォルトの名無しさん
2019/03/12(火) 20:22:26.93ID:dEFL2K0T すいません、低レベルのかたたちばかりでした。
聞くところ間違えました
聞くところ間違えました
287デフォルトの名無しさん
2019/03/12(火) 20:30:56.16ID:Nd0ou12Q なぜc++ main return省略でググらないのか
288デフォルトの名無しさん
2019/03/12(火) 20:43:58.42ID:X3QnQcuN getoptを標準化してしまうとハイフンで始まる変態ファイル名が鬼門になってしまうかな。
289デフォルトの名無しさん
2019/03/12(火) 20:46:35.39ID:Zu3OGTTs is_iterator、is_containerメタ関数はどうやったら作れるんでしょうね?
290デフォルトの名無しさん
2019/03/12(火) 20:54:07.45ID:JuWddRAo SFINAEでググれ、でいいんだろうか
291デフォルトの名無しさん
2019/03/12(火) 20:55:53.60ID:Zu3OGTTs スフィ姉は知っているんですが。
そのあとが。
そのあとが。
292デフォルトの名無しさん
2019/03/12(火) 21:00:20.04ID:cgm/opRe iterator_traitsに通してメンバ型が得られるか確認する?
*とか++とかの操作について確認する?
containerはbeginとendでイテレータ取れるか確認する?
*とか++とかの操作について確認する?
containerはbeginとendでイテレータ取れるか確認する?
293デフォルトの名無しさん
2019/03/12(火) 21:34:26.86ID:Zu3OGTTs template <typename T>
using is_iterator = std::is_class<typename std::iterator_traits<T>::iterator_category>;
これは使えますかね?
using is_iterator = std::is_class<typename std::iterator_traits<T>::iterator_category>;
これは使えますかね?
294デフォルトの名無しさん
2019/03/12(火) 21:58:48.29ID:l3wdXFC4 ぐぐればstack overflowがひっかかる
295デフォルトの名無しさん
2019/03/12(火) 22:01:23.70ID:JuWddRAo 使えますかねって・・自分で試せるだろ
296デフォルトの名無しさん
2019/03/12(火) 22:12:53.32ID:6dDI1fa3 マウントしててワロス
297デフォルトの名無しさん
2019/03/12(火) 22:34:48.05ID:3laDxwEs マウントは取りたいけど教えるのはめんどくさい
298デフォルトの名無しさん
2019/03/12(火) 22:48:31.61ID:YKaKEG7g 結局はそれで何がしたいかによるんじゃね
標準のコンテナやそのイテレータで型分岐したいなら十分だけど、カスタム実装されたユーザー定義のイテレータがそのように実装されているかは分からんし
まあiterator_traitsの特殊化も追加で書くようにすれば使えるか
標準のコンテナやそのイテレータで型分岐したいなら十分だけど、カスタム実装されたユーザー定義のイテレータがそのように実装されているかは分からんし
まあiterator_traitsの特殊化も追加で書くようにすれば使えるか
299デフォルトの名無しさん
2019/03/12(火) 23:06:42.78ID:cgm/opRe C++20からは一応イテレータはコンセプトがあるなあ
コンテナは知らん
コンテナは知らん
300デフォルトの名無しさん
2019/03/12(火) 23:12:51.59ID:YKaKEG7g >>293
はダメな気がするな
template<typename T,typename=void>
struct is_iterator:std::false_type{};
template<typename T>
struct is_iterator<T,std::enable_if_v<std::is_class_v<typename std::iterator_traits<T>::iterator_category>>>:std::true_type{};
はダメな気がするな
template<typename T,typename=void>
struct is_iterator:std::false_type{};
template<typename T>
struct is_iterator<T,std::enable_if_v<std::is_class_v<typename std::iterator_traits<T>::iterator_category>>>:std::true_type{};
301デフォルトの名無しさん
2019/03/12(火) 23:14:38.07ID:JuWddRAo302デフォルトの名無しさん
2019/03/12(火) 23:27:20.69ID:Zu3OGTTs303デフォルトの名無しさん
2019/03/12(火) 23:39:14.10ID:YKaKEG7g 本は知らん
SFINAEが使えるのは宣言部分
そこで置換失敗すると宣言そのものが無かったことになる
SFINAEが使えるのは宣言部分
そこで置換失敗すると宣言そのものが無かったことになる
304デフォルトの名無しさん
2019/03/13(水) 12:04:15.67ID:lxBl+sTZ >>297
マウントが取りたいだけで教える知識がないだけやねんw
マウントが取りたいだけで教える知識がないだけやねんw
305デフォルトの名無しさん
2019/03/13(水) 12:37:00.35ID:mh4jyrHE そう
分からない質問には自分で試せ
これがC++使ってる奴の特徴
分からない質問には自分で試せ
これがC++使ってる奴の特徴
306デフォルトの名無しさん
2019/03/13(水) 12:47:27.60ID:QLyGxm6u307デフォルトの名無しさん
2019/03/13(水) 20:50:37.56ID:u/DrurAb 規約はあるけど「実装が規約」をやっちゃってる部分が多くて、
しかもコンパイラのバージョン依存がひどいってのがc++だからな。
規約は語れても実際にどう動作するか語れない輩も多いだろうね。
しかもコンパイラのバージョン依存がひどいってのがc++だからな。
規約は語れても実際にどう動作するか語れない輩も多いだろうね。
308デフォルトの名無しさん
2019/03/13(水) 21:07:13.50ID:QLyGxm6u そういう構図じゃないと思うよ
309デフォルトの名無しさん
2019/03/13(水) 21:25:53.81ID:Z/ka/TFK どなたか iostreamの存在価値について熱く語ってくれないか。
310デフォルトの名無しさん
2019/03/13(水) 21:34:23.99ID:VRJ3bLEu いやだ
311はちみつ餃子 ◆8X2XSCHEME
2019/03/13(水) 21:38:23.77ID:xQTh8hgU312デフォルトの名無しさん
2019/03/13(水) 21:55:23.80ID:780qHyAl VS2019って4月2日に出るのかな?
313デフォルトの名無しさん
2019/03/13(水) 22:19:08.88ID:DKlmxwmb 米国時間4/2にローンチイベント行ってるから日本だと3日かな
314デフォルトの名無しさん
2019/03/13(水) 22:44:27.53ID:mh4jyrHE >>306
だから分からないのにマウント取るのやめたら?
だから分からないのにマウント取るのやめたら?
315290=301
2019/03/13(水) 23:05:00.60ID:QLyGxm6u316デフォルトの名無しさん
2019/03/14(木) 18:41:51.50ID:qKfDR5xc >>313
待ちどおしいね。
待ちどおしいね。
317デフォルトの名無しさん
2019/03/14(木) 20:57:09.31ID:HZIDFMYl このスレの住人は、新しいVisual Studioでどんなことに期待してるの?
318デフォルトの名無しさん
2019/03/14(木) 20:58:50.91ID:30TndOaO >>317
マウントされないこと
マウントされないこと
319デフォルトの名無しさん
2019/03/14(木) 21:00:03.79ID:O0o087YX 仕様通りに動いてくれりゃそれでいいわ。
320デフォルトの名無しさん
2019/03/14(木) 21:20:35.00ID:nuZulfE1 C++20の早期対応
321デフォルトの名無しさん
2019/03/14(木) 21:25:28.09ID:xC4JJLNw clang対応
322デフォルトの名無しさん
2019/03/14(木) 21:29:12.31ID:vJRyyCPl C#での使い勝手向上
323デフォルトの名無しさん
2019/03/14(木) 21:36:15.68ID:r+Z4K3kn フロントエンドをVSCodeにしてくれ
324デフォルトの名無しさん
2019/03/14(木) 21:45:44.62ID:rlbQlqp5 メモリ喰わずに軽くなって…
325デフォルトの名無しさん
2019/03/14(木) 22:54:08.60ID:qKfDR5xc 何個まで願い事聞いてくれるんだろ。
326デフォルトの名無しさん
2019/03/14(木) 23:13:56.40ID:3EvgP48J >>317
Expressを出してくれ
Expressを出してくれ
>>317
MFC…
MFC…
328デフォルトの名無しさん
2019/03/15(金) 06:01:20.22ID:qA/WFgyI Windows formsのC++へ移植してmfcを完全に抹消してくれ
329デフォルトの名無しさん
2019/03/15(金) 06:06:32.23ID:nvk7uoI+ >>317
オープンソース化
オープンソース化
330デフォルトの名無しさん
2019/03/15(金) 08:11:25.59ID:2KXTO6ja331デフォルトの名無しさん
2019/03/15(金) 08:17:17.58ID:qA/WFgyI ゴミ
332デフォルトの名無しさん
2019/03/15(金) 08:54:09.40ID:fLDhqMRG けっこう癖が強いよね。例外やpimpl否定したり。
333デフォルトの名無しさん
2019/03/15(金) 08:57:01.66ID:LNWMUSed 危険思想だなw
ヤバすぎてヘドが出るw
ヤバすぎてヘドが出るw
334デフォルトの名無しさん
2019/03/15(金) 09:06:08.50ID:Uugk/tx2 まあでかいプロジェクトはこんなもんだろう。
例外は実際よくないと思うわ。
例外は実際よくないと思うわ。
335デフォルトの名無しさん
2019/03/15(金) 09:48:31.74ID:Af9j6Fb3 pimpl否定ってあったっけ?
うちのプロジェクトも原則例外禁止
むかしは一律禁止だったけど
うちのプロジェクトも原則例外禁止
むかしは一律禁止だったけど
336デフォルトの名無しさん
2019/03/15(金) 11:11:39.02ID:t9j+keaC >>330
古くさいって言われてなかった?
古くさいって言われてなかった?
337デフォルトの名無しさん
2019/03/15(金) 11:55:34.06ID:E1i6RSEf googleのスタイルガイドは和訳が古くて英語版しか読まなくなって何年にもなるが追いついてるのか?
338デフォルトの名無しさん
2019/03/15(金) 12:05:48.86ID:PdhXv0FK 例外無しとか小規模の組み込み以外で意味あるのかね?
339デフォルトの名無しさん
2019/03/15(金) 12:37:29.90ID:hyh/CKnF 例外使った時点で疎結合もへったくれもなくなると思うわ。
能力的に幅のあるプロジェクトで使うには難しいよ。
能力的に幅のあるプロジェクトで使うには難しいよ。
340デフォルトの名無しさん
2019/03/15(金) 12:56:39.19ID:ng8+eCdq >>339
> 能力的に幅のあるプロジェクトで使うには難しいよ。
これには同意するけど
> 例外使った時点で疎結合もへったくれもなくなると思うわ。
意味不明
例外以外の方法使っても似たようなことをする羽目になるだけ
なら意図が明確な例外のほうがマシ
> 能力的に幅のあるプロジェクトで使うには難しいよ。
これには同意するけど
> 例外使った時点で疎結合もへったくれもなくなると思うわ。
意味不明
例外以外の方法使っても似たようなことをする羽目になるだけ
なら意図が明確な例外のほうがマシ
341デフォルトの名無しさん
2019/03/15(金) 14:16:54.97ID:9vyMIRpZ 戻り値なら呼び出し元と呼び出し先の間の結合だけだが、例外はよりコールスタックの根本の方へ結合が及ぶことがある
フレームワークのように、例外を使ってあえて中間をすっ飛ばしてコールスタックの上と下を結合させるケースもあるけどね
フレームワークのように、例外を使ってあえて中間をすっ飛ばしてコールスタックの上と下を結合させるケースもあるけどね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 【千葉】特養ホームで90歳女性を殴った疑い 女性は死亡 介護福祉士の男(48)傷害容疑で逮捕 成田市 [ぐれ★]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 高市早苗「竹島は日本領土」 [834922174]
- あくたんのおまんこって甘そうだよな🤤
- 今日初めてケンタッキー行ってきたんだけどさ
- ヨドバシ店員「転売対策です。エヴァに出てくるロボットの名前をどれかひとつ言ってください」 [268718286]
- 🏡
