次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part133
http://mevius.5ch.net/test/read.cgi/tech/1511509970/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
■長いソースを貼るときはここへ。■
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++相談室 part134
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-Q2eK)
2018/01/20(土) 09:05:42.21ID:mJKRg6iz040デフォルトの名無しさん (ワッチョイ aa7e-rgA5)
2018/01/27(土) 19:13:43.71ID:IajdzWB80 simd
41デフォルトの名無しさん (ワッチョイ 6e62-WBz1)
2018/01/27(土) 19:44:42.49ID:MtS5alc90 unordered_mapにsha256の関数渡せばええやん
42デフォルトの名無しさん (ブーイモ MMda-FYQJ)
2018/01/27(土) 20:08:58.78ID:6QrTsC7zM fpga
43デフォルトの名無しさん (ワッチョイ ba34-0fOh)
2018/01/27(土) 22:07:02.09ID:bqR9C45e0 mapじゃなくてハッシュを実装しろとしか
44デフォルトの名無しさん (アウアウウー Sa77-fQjY)
2018/01/27(土) 22:15:03.18ID:Im+FAy1Qa45デフォルトの名無しさん (ワッチョイ 9ae7-fPTX)
2018/01/27(土) 22:53:57.64ID:ZP0gkUPd0 Compareの自作で何がいけなかったのかわからないけど解決おめ
46デフォルトの名無しさん (スップ Sd7a-4fyU)
2018/01/27(土) 23:05:46.83ID:r2gR5oNyd 赤黒木ってスマートポインタを使って実装できますか?
親を弱参照で書いたらわけわかめに
親を弱参照で書いたらわけわかめに
47デフォルトの名無しさん (スプッッ Sd7a-g7kd)
2018/01/28(日) 01:55:54.91ID:B1112Jntd ハッシュをソートかあ
48デフォルトの名無しさん (ワッチョイ 9abd-xSVK)
2018/01/28(日) 03:22:06.75ID:vIDP+sWr0 コピーしたくないオブジェクトへのポインタ(ていうか全体をシリアライズするの可能性も考えたらindexがマジお勧め)の配列おソートすれば良い
そういった実装の詳細はクラスの中に隠すことができる 何のためにC++を使っているのやヽ(`Д´)ノ!!!11!1
そういった実装の詳細はクラスの中に隠すことができる 何のためにC++を使っているのやヽ(`Д´)ノ!!!11!1
49デフォルトの名無しさん (ワッチョイ aee8-7ZJK)
2018/01/28(日) 08:17:39.92ID:abHZXNlp0 >>47
なんかモヤモヤするなそれw
なんかモヤモヤするなそれw
50デフォルトの名無しさん (ブーイモ MMaf-nzgF)
2018/01/28(日) 11:41:38.50ID:/ypN0hd6M >>39
hashは値に対してユニークじゃないけどいいの?
hashは値に対してユニークじゃないけどいいの?
51デフォルトの名無しさん
2018/01/28(日) 14:41:11.23 そりゃハッシュ衝突用のフィールドくらい作ってるだろうよ
質問にないことは心配しなくていいよ
質問にないことは心配しなくていいよ
52デフォルトの名無しさん (ワッチョイ f723-g7kd)
2018/01/28(日) 15:09:59.60ID:RaXbFAH70 心配してるんじゃなくてバカにしてるんだよw
53デフォルトの名無しさん (ワッチョイ bab3-dVd5)
2018/01/28(日) 15:44:58.16ID:C2Jb//yt0 バカにしようとして失敗してるとしか見えないけど w
54デフォルトの名無しさん (ワッチョイ bbb3-rgA5)
2018/01/28(日) 20:33:36.08ID:NzqukFwp0 Impliment.h
class Impliment
{
public: base;
};
Interface.h
class Interface
{
class Impliment
{
public: base;
};
Interface.h
class Interface
{
55デフォルトの名無しさん (ワッチョイ bbb3-rgA5)
2018/01/28(日) 20:42:03.84ID:NzqukFwp0 すいません。途中で書き込んでしまいました。
以下のようなクラスを作ったのですが、
derivedがImp::baseを継承しているため、
インクルードの順番が固定されてしまいます。(Impliment.hが先でないといけない)
こういったクラスは使う人から見て嫌がられるでしょうか。
ご意見をいただけるとありがたいです。
Impliment.h
class Impliment
{
public:
class base {}
};
Interface.h
template<class Imp>
class Interface
{
private:
class derived : public Imp::base {}
}
以下のようなクラスを作ったのですが、
derivedがImp::baseを継承しているため、
インクルードの順番が固定されてしまいます。(Impliment.hが先でないといけない)
こういったクラスは使う人から見て嫌がられるでしょうか。
ご意見をいただけるとありがたいです。
Impliment.h
class Impliment
{
public:
class base {}
};
Interface.h
template<class Imp>
class Interface
{
private:
class derived : public Imp::base {}
}
56はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-rgA5)
2018/01/28(日) 20:56:07.47ID:Xl/BPHGJ0 >>55
「XXの実装とインターフェイスが分かれている」ということをユーザが意識しないといけないのは抽象化の不足だと思う。
分離した形のデザインで開発するのはかまわないけど、ユーザに対してはなるべく隠すのが望ましい。
#include<Implement.h>
#include<Interface.h>
と書いたヘッダファイルを用意しておく程度のことでもだいぶんマシになる。
(インクルードガードはしておくこと)
「XXの実装とインターフェイスが分かれている」ということをユーザが意識しないといけないのは抽象化の不足だと思う。
分離した形のデザインで開発するのはかまわないけど、ユーザに対してはなるべく隠すのが望ましい。
#include<Implement.h>
#include<Interface.h>
と書いたヘッダファイルを用意しておく程度のことでもだいぶんマシになる。
(インクルードガードはしておくこと)
57デフォルトの名無しさん (ワッチョイ f723-g7kd)
2018/01/29(月) 02:50:08.46ID:gQcv+kbG0 >>55
普通は interface.h の冒頭で implement.h をインクルードしておく
普通は interface.h の冒頭で implement.h をインクルードしておく
58デフォルトの名無しさん (ワッチョイ efef-WRop)
2018/01/29(月) 05:39:18.37ID:+mqzfkB+0 >>55
このコードだけならインクルード順が逆でも問題ない。
このコードだけならインクルード順が逆でも問題ない。
59デフォルトの名無しさん (ワッチョイ bbb3-rgA5)
2018/01/30(火) 20:17:26.27ID:fsahOVUj060デフォルトの名無しさん (ワッチョイ 16e7-fPTX)
2018/01/30(火) 21:08:08.01ID:VkcoBYQV0 Implement入れ替えさせたいならユーザーに適当な所で
template Interface<MyImplement>;
って書かせりゃいいだけじゃないの?
template Interface<MyImplement>;
って書かせりゃいいだけじゃないの?
61デフォルトの名無しさん (ワッチョイ ba34-0fOh)
2018/01/30(火) 21:19:19.29ID:Lbh+cCVN0 typename imp::base
62デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/04(日) 11:20:04.76ID:r6E1M8790 質問ですが
「このクラスはバイト列としてコピーできる」ということを明らかにするために
明示的にコピーコンストラクタを書くとして、
どう書けば処理系に依存することなくデフォルトのコピーコンストラクタ以上の性能になることを保証できますか
(もしくは、「このクラスはバイト列としてコピーできる」ということを明示する構文はありますか)
「このクラスはバイト列としてコピーできる」ということを明らかにするために
明示的にコピーコンストラクタを書くとして、
どう書けば処理系に依存することなくデフォルトのコピーコンストラクタ以上の性能になることを保証できますか
(もしくは、「このクラスはバイト列としてコピーできる」ということを明示する構文はありますか)
63片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdbf-vcz1)
2018/02/04(日) 11:26:54.06ID:i7yJvuTcd >>62
MyClass(const MyClass&) = default;
MyClass(const MyClass&) = default;
64はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-wbgk)
2018/02/04(日) 11:36:31.71ID:H9FebDBN0 デフォルトのコピーコンストラクタはメンバのコピーコンストラクタを起動するので、
そのクラス (に属するオブジェクト) 全体がバイト列としてコピーするわけではない。
trivially copyable class の要件を満たすように書けばバイト列としてコピー可能と保証される。
コンストラクタの書き方だけでは保証できない。
そのクラス (に属するオブジェクト) 全体がバイト列としてコピーするわけではない。
trivially copyable class の要件を満たすように書けばバイト列としてコピー可能と保証される。
コンストラクタの書き方だけでは保証できない。
65デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/04(日) 13:04:56.23ID:WecC8o2P0 memcpyするコピコンをユーザー定義すればええやん
66デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/04(日) 13:46:35.82ID:r6E1M879067デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/04(日) 13:47:37.01ID:r6E1M8790 訂正
誤:バイト列としてのコピーが可能でないコード
正:バイト列としてのコピーを不可能にするコード
誤:バイト列としてのコピーが可能でないコード
正:バイト列としてのコピーを不可能にするコード
68デフォルトの名無しさん (ワッチョイ 1f7e-wbgk)
2018/02/04(日) 13:47:46.54ID:HBpG+TPK0 >>62
std::is_trivially_copyable<T>がtrueになるように書いて
https://cpprefjp.github.io/reference/type_traits/is_trivially_copyable.html
トリビアル型とは何かは検索して
std::is_trivially_copyable<T>がtrueになるように書いて
https://cpprefjp.github.io/reference/type_traits/is_trivially_copyable.html
トリビアル型とは何かは検索して
69デフォルトの名無しさん (ワッチョイ 1f7e-wbgk)
2018/02/04(日) 13:52:58.38ID:HBpG+TPK0 >>66
なおさらtype_traitsで条件に合わなければコンパイルを失敗させればよい
なおさらtype_traitsで条件に合わなければコンパイルを失敗させればよい
70デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/04(日) 14:08:05.83ID:r6E1M8790 >>69
おk
おk
71はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-wbgk)
2018/02/04(日) 16:47:05.72ID:H9FebDBN072はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-wbgk)
2018/02/04(日) 17:24:06.38ID:H9FebDBN0 流れをぶった切って質問するんだけど、
配列の一部をとる参照とかって作れない?
実際にはコンパイルが通らないけど、やりたいことはこんな感じ。
int a[3];
int (&b)[2] = static_cast<int (&)[2]>(a);
配列の一部をとる参照とかって作れない?
実際にはコンパイルが通らないけど、やりたいことはこんな感じ。
int a[3];
int (&b)[2] = static_cast<int (&)[2]>(a);
73デフォルトの名無しさん (ワッチョイ 9fa2-wbgk)
2018/02/04(日) 18:06:17.19ID:B+seqFts0 reinterpret_castすれば?
74デフォルトの名無しさん (ワッチョイ 7723-Us3F)
2018/02/04(日) 18:22:52.47ID:HJ1AdVlZ0 ポインタにして剥がせばいい
75デフォルトの名無しさん (ワッチョイ 1f7e-wbgk)
2018/02/04(日) 18:28:31.26ID:HBpG+TPK0 配列型はポインタではないので途中からとかない
76デフォルトの名無しさん (ワッチョイ bfe7-j4Dg)
2018/02/04(日) 18:55:06.41ID:i/oNqC3f0 一応うまく行ったけど規格で保証された挙動かどうかはよくわからない
https://ideone.com/wVzc6b
https://ideone.com/wVzc6b
77デフォルトの名無しさん (ワッチョイ 9fcb-qyJP)
2018/02/04(日) 19:14:07.38ID:NcR26d4z0 でもポインタにしてしまうと困るシチュエーションなんてありうるの?
マクロの中でsizeofしてるとか?
マクロの中でsizeofしてるとか?
78デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/04(日) 20:30:26.18ID:WecC8o2P079デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/05(月) 23:20:37.74ID:y5vbQcAP0 メンバのコピーコンストラクタを起動すべきところをmemcpy()しかしない手製コピーコンストラクタで済ませようとしたら破滅が訪れる
MyClass(const MyClass&) = default; なら勝手にやってくれるのでその心配が無いので安心
MyClass(const MyClass&) = default; なら勝手にやってくれるのでその心配が無いので安心
80デフォルトの名無しさん (ワッチョイ 9f23-Us3F)
2018/02/05(月) 23:28:20.73ID:QTKEhMlZ0 しかしまあ >>68 なんていう便利なモノがあるとは
フラフラこういうスレ読んでるのもためになるなあ
フラフラこういうスレ読んでるのもためになるなあ
81デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 07:54:17.35ID:CtmFRYuD082デフォルトの名無しさん (ワッチョイ ff8a-phf3)
2018/02/06(火) 08:05:48.85ID:cp/uvOeq083デフォルトの名無しさん (ワッチョイ 7723-Us3F)
2018/02/06(火) 08:27:38.08ID:rGp9SuaC084デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 09:14:20.61ID:CtmFRYuD0 バイト列コピーが = default; なわけねーだろアホ
85デフォルトの名無しさん (ワッチョイ 7723-Us3F)
2018/02/06(火) 11:45:28.85ID:rGp9SuaC086デフォルトの名無しさん (ワッチョイ 7723-Us3F)
2018/02/06(火) 11:48:04.39ID:rGp9SuaC0 そもそも「どうコンストラクタを書けば」ってのを質問してるんで
バイト列コピーでコンストラクタを書けってのは単に>>65の珍解答に過ぎない
バイト列コピーでコンストラクタを書けってのは単に>>65の珍解答に過ぎない
87デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 11:51:41.68ID:CtmFRYuD0 すまんが日本語でたのむ
88デフォルトの名無しさん (ワッチョイ 7723-Us3F)
2018/02/06(火) 11:54:37.03ID:rGp9SuaC089デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 12:36:57.61ID:CtmFRYuD0 元質問: デフォルトのコピーコンストラクタ以上の性能
おまえ: デフォルトより遅くならないこと
よく読めをそのまま返す
おまえ: デフォルトより遅くならないこと
よく読めをそのまま返す
90デフォルトの名無しさん (ワッチョイ 9fe1-pzKJ)
2018/02/06(火) 12:57:03.34ID:bHMYZ9Vj0 以上っていうのは等しいかまたはそれを越えるという意味だぞ
91デフォルトの名無しさん (ワッチョイ 7723-Us3F)
2018/02/06(火) 14:01:35.47ID:rGp9SuaC0 そもそも memcpy は前者の性能保証も後者の仕様の保証もどちらも満たしてない
仕様が保証されてるなら多分性能的に大丈夫だろうという程度
間違いを認めると死ぬ病気なんだろうからもうこれ以上は言わない。
仕様が保証されてるなら多分性能的に大丈夫だろうという程度
間違いを認めると死ぬ病気なんだろうからもうこれ以上は言わない。
92デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 14:38:54.29ID:CtmFRYuD0 バイトコピーでmemcpyより高性能な手段を1つでも例示したらどうなんだ
> 間違いを認めると死ぬ病気なんだろうから
ああ、おまえがか
> 間違いを認めると死ぬ病気なんだろうから
ああ、おまえがか
93デフォルトの名無しさん (ワッチョイ ff8a-uMb5)
2018/02/06(火) 18:18:02.35ID:cp/uvOeq09462 (ワッチョイ 9fbd-CNA0)
2018/02/06(火) 22:02:19.27ID:MckGyr3K0 memcpy()より速いコピー手段Xが仮にあったとして
論理的にmemcpy()で済むケースについてコンパイラが提供する
デフォルトのコピーコンストラクタがコピー手段Xにならない理由がわからん…
個人的には「=default;」と書いたら最高性能なんなら毎回手でmemcpy()とか書きたくないカンジ
論理的にmemcpy()で済むケースについてコンパイラが提供する
デフォルトのコピーコンストラクタがコピー手段Xにならない理由がわからん…
個人的には「=default;」と書いたら最高性能なんなら毎回手でmemcpy()とか書きたくないカンジ
95デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 22:06:49.77ID:CtmFRYuD0 >>94
class A {
public:
A() {}
A(A const&) { std::cout << "aho"; }
};
class B {
public:
A a;
B() = default;
};
int main()
{
B b, c = b; //this will call you.
}
class A {
public:
A() {}
A(A const&) { std::cout << "aho"; }
};
class B {
public:
A a;
B() = default;
};
int main()
{
B b, c = b; //this will call you.
}
96デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/06(火) 22:09:42.68ID:MckGyr3K0 >>95は「論理的にmemcpy()で済むケース」では無いからちげう
97デフォルトの名無しさん (ワッチョイ ffd7-wbgk)
2018/02/06(火) 22:29:22.47ID:CtmFRYuD0 だから日本語でたのむって言っただろ
98デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/06(火) 22:29:24.08ID:MckGyr3K0 どうした?
訂正はよ
訂正はよ
99デフォルトの名無しさん (ブーイモ MMcf-9NhG)
2018/02/06(火) 23:07:57.82ID:hdfY5rL3M 間違いを認めて・・・死んだのか?
100デフォルトの名無しさん (ワッチョイ 9fbd-CNA0)
2018/02/06(火) 23:21:41.18ID:MckGyr3K0 仕方ないので漏れが訂正するわ;
ttps://ideone.com/TZnGv4
↑のコードの
(*1)は「=default;」でデフォルトのコピコンの使用を明示
(*2)は手でmemcpy()でコピーするように書いたコピコン
次の条件で試したら(*1)も(*2)も同じコードになったわ
x86-64 gcc 7.2
-O2 -fno-strict-aliasing -std=c++14 -pedantic -Wall -Wextra
こことかで試せるが保存と公開方法がわからんかったのでideoneを使わせてもろうた
ttps://gcc.godbolt.org/
漏れの国語力ではようわからんが、さすがに多分>>84は間違いなんジャマイカ、
ttps://ideone.com/TZnGv4
↑のコードの
(*1)は「=default;」でデフォルトのコピコンの使用を明示
(*2)は手でmemcpy()でコピーするように書いたコピコン
次の条件で試したら(*1)も(*2)も同じコードになったわ
x86-64 gcc 7.2
-O2 -fno-strict-aliasing -std=c++14 -pedantic -Wall -Wextra
こことかで試せるが保存と公開方法がわからんかったのでideoneを使わせてもろうた
ttps://gcc.godbolt.org/
漏れの国語力ではようわからんが、さすがに多分>>84は間違いなんジャマイカ、
101デフォルトの名無しさん (ワッチョイ 9f34-FPX7)
2018/02/06(火) 23:34:18.80ID:Ur4dB7lv0 Cから来た連中ってどうしてmemcpyやmemset使いたがるんだろうな
102はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-wbgk)
2018/02/07(水) 04:09:18.59ID:OAPGz/K+0 >>76
reinterpret_cast でなければ通らないときはだいたい駄目なときやわ。
reinterpret_cast でなければ通らないときはだいたい駄目なときやわ。
103はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-wbgk)
2018/02/07(水) 04:22:37.75ID:OAPGz/K+0104デフォルトの名無しさん (ブーイモ MMcf-EKSC)
2018/02/07(水) 05:00:09.29ID:1UF8v8gcM 開始アドレス、終了アドレス、サイズが64bit等で割り切れれば
バイトコピーより早いコピーはあるだろうね
バイトコピーより早いコピーはあるだろうね
105デフォルトの名無しさん
2018/02/07(水) 07:27:28.65 頭のいいコンパイラなら勝手にベクトル処理とかしてくれるんじゃないの?
知らんけど
知らんけど
106デフォルトの名無しさん (ワッチョイ 57b3-wbgk)
2018/02/07(水) 22:28:51.20ID:MTpdY7NJ0 "!"!"!MOHYO!"!"!"2"
1.[[[HUn≒MUL=POSI≠MAHO+Set*HUGE=SAGE=LOGE=NOISIA=0≒1]]]
2-[[[[[[[E=RAT%2^10%SPELAn!%]&!TOWA&!PEG#!NOLNOL8!#!HYAGO!2#]1*2=1]U]S]0]O]!#PAL!
3--->PAGODOL7&!@17,2222734.15&[[[%%RENRAK6,9,99"^10"]#$11.2%}]KAIJ]{
41.2SSS = RALQI2.β{{{RA4,0,238^97,1,$.S.L.E.I.L."Q5352.15Q"JOL"5*3>>>41.3q}}}>1.2<0
.3φTALHOSI"0">>>105.10<1.235<1.2>51≠52===55.632>V="E=0.835"of"1.32","632",0.683,1.end
{
1.[[[HUn≒MUL=POSI≠MAHO+Set*HUGE=SAGE=LOGE=NOISIA=0≒1]]]
2-[[[[[[[E=RAT%2^10%SPELAn!%]&!TOWA&!PEG#!NOLNOL8!#!HYAGO!2#]1*2=1]U]S]0]O]!#PAL!
3--->PAGODOL7&!@17,2222734.15&[[[%%RENRAK6,9,99"^10"]#$11.2%}]KAIJ]{
41.2SSS = RALQI2.β{{{RA4,0,238^97,1,$.S.L.E.I.L."Q5352.15Q"JOL"5*3>>>41.3q}}}>1.2<0
.3φTALHOSI"0">>>105.10<1.235<1.2>51≠52===55.632>V="E=0.835"of"1.32","632",0.683,1.end
{
107片山博文MZ ◆T6xkBnTXz7B0 (スププ Sd62-d/x4)
2018/02/10(土) 19:52:35.19ID:x9I4Wn6Pd C++では、
int i;
for (i = 0; i < 9; ++i) { ... }
が、
for (int i = 0; i < 9; ++i) { ... }
って書けるのは知っているだろう。( )の中で、変数を宣言できる。
だが、ifやwhileの( )の中で、変数を宣言できることを知らない人は多い。
int i;
for (i = 0; i < 9; ++i) { ... }
が、
for (int i = 0; i < 9; ++i) { ... }
って書けるのは知っているだろう。( )の中で、変数を宣言できる。
だが、ifやwhileの( )の中で、変数を宣言できることを知らない人は多い。
108デフォルトの名無しさん (ワッチョイ 99b3-BC1W)
2018/02/11(日) 04:31:12.99ID:9irhhPDg0 C++17では
if ( auto v = n; conditions ) {
...
}
が可能になるし、これからは広がってくれるかのう
if ( auto v = n; conditions ) {
...
}
が可能になるし、これからは広がってくれるかのう
109デフォルトの名無しさん (ワッチョイ 2ee8-8oIi)
2018/02/11(日) 06:11:03.22ID:l3GMmVaq0 >>108
これホント待ち遠しい
これホント待ち遠しい
110デフォルトの名無しさん (ワッチョイ 4539-102K)
2018/02/11(日) 17:00:15.07ID:RGzNlubj0 それほど待ち遠しいか?
111デフォルトの名無しさん (ワッチョイ 99b3-7Au1)
2018/02/11(日) 17:27:44.93ID:QA9xO9uU0 待ち遠しくない
112デフォルトの名無しさん (ドコグロ MM0a-/0XS)
2018/02/11(日) 17:34:07.64ID:A61Ds/EIM for( ) の制御変数はそのループでしか使わないことが多いから意味あったけど、if( ) でそんなケースはまれだしなぁ
あれば使うけど待ち遠しいって言うほどじゃない気がする
あれば使うけど待ち遠しいって言うほどじゃない気がする
114デフォルトの名無しさん (ワッチョイ ed9b-gPIt)
2018/02/11(日) 17:40:12.67ID:KWDwqk940 一瞬意図が分からなかったが
()の中が;で区切れるという話?
()の中が;で区切れるという話?
115デフォルトの名無しさん (ブーイモ MMb6-ZT4h)
2018/02/11(日) 17:41:52.24ID:rD0gl3AiM dynamic_castとの組み合わせで使うとかどうよ
116デフォルトの名無しさん (ワッチョイ c27c-jA6l)
2018/02/11(日) 19:11:10.58ID:av7bQMHG0 結構あると思うけどね
if(DWORD err = GetLastError(); err != NO_ERROR)
この場合NO_ERRORが0だって分かってるから
if(DWORD err = GetLastError())
で済むから無意味だけど
if(DWORD err = GetLastError(); err != NO_ERROR)
この場合NO_ERRORが0だって分かってるから
if(DWORD err = GetLastError())
で済むから無意味だけど
117デフォルトの名無しさん (ワッチョイ 22f9-YiuZ)
2018/02/11(日) 19:17:28.82ID:yo2OB3cP0 >>116
前者の方が意図が明確だし意味はあると思う
前者の方が意図が明確だし意味はあると思う
118デフォルトの名無しさん
2018/02/11(日) 20:06:43.52 >>116
>if(DWORD err = GetLastError(); err != NO_ERROR)
普通こうやろ
if((DWORD err = GetLastError()) != NO_ERROR)
変数宣言は少しは意味あるかもしれんが(Perlと同じことができるってこと)
複文書けるのは特にメリット感じないわ
>if(DWORD err = GetLastError(); err != NO_ERROR)
普通こうやろ
if((DWORD err = GetLastError()) != NO_ERROR)
変数宣言は少しは意味あるかもしれんが(Perlと同じことができるってこと)
複文書けるのは特にメリット感じないわ
119デフォルトの名無しさん (ワッチョイ 86e7-zMUp)
2018/02/11(日) 20:41:29.80ID:Ag9E1Urq0 それ通らんよ
こうだろ
DWORD err;
if((err = GetLastError()) != NO_ERROR)
if内でしか使わないerrが外部に漏れてるのがよろしくないってこと
こうだろ
DWORD err;
if((err = GetLastError()) != NO_ERROR)
if内でしか使わないerrが外部に漏れてるのがよろしくないってこと
120デフォルトの名無しさん
2018/02/11(日) 20:56:03.30121デフォルトの名無しさん (ワッチョイ d27e-jA6l)
2018/02/11(日) 22:10:23.49ID:p+z832PL0 if(init ; expr)だと初期化と式が関連していなくてもいいので>>120とは違う構文になる
だからこんなのでもよい
if(int err = GetLastError(); hoge.aho())
lock_guardもしておける
if(std::lock_guard<std::mutex> lock(m); flag)
構造化束縛も使える
if(auto [a, b, c] = f(); b > c){ std::cout << "b > c" << std::endl; }
だからこんなのでもよい
if(int err = GetLastError(); hoge.aho())
lock_guardもしておける
if(std::lock_guard<std::mutex> lock(m); flag)
構造化束縛も使える
if(auto [a, b, c] = f(); b > c){ std::cout << "b > c" << std::endl; }
122デフォルトの名無しさん (ワッチョイ ddc3-saCW)
2018/02/12(月) 12:22:30.52ID:sATukCOa0 Cでは名前空間っていうのをすごい扱っていた気がするんだけどC++は名前空間扱うことってないの?
一つのアプリケーションも完成させたことがないど素人の質問ですまんが
一つのアプリケーションも完成させたことがないど素人の質問ですまんが
123デフォルトの名無しさん (ワッチョイ 62cb-ZT4h)
2018/02/12(月) 12:43:48.54ID:qekpeHDJ0 >>122
まずは"C"の入門書を読んで、何を見間違えたのかはっきりさせてからにしようか。
まずは"C"の入門書を読んで、何を見間違えたのかはっきりさせてからにしようか。
124デフォルトの名無しさん (ワッチョイ e1eb-IGFW)
2018/02/12(月) 14:08:57.84ID:sGdsmrZD0 初心者スレに池
125デフォルトの名無しさん (ワッチョイ 319f-R9JW)
2018/02/12(月) 20:44:41.93ID:gfcybQxo0 >>122
気のせい。
気のせい。
126デフォルトの名無しさん (ワッチョイ 6e8a-9Kvu)
2018/02/13(火) 00:10:36.10ID:YGwN9DGw0 >>122
Cにnamespaceは無いだろ
Cにnamespaceは無いだろ
127はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 066f-jA6l)
2018/02/13(火) 17:30:20.31ID:tUR5ZBgZ0 構造体タグと型名の名前空間が分かれているといったような意味での名前空間は C に有るが
C++ では構造体タグはそのまま型名としても使えるし、そういう意味での名前空間の話かな?
C++ では構造体タグはそのまま型名としても使えるし、そういう意味での名前空間の話かな?
128デフォルトの名無しさん (ワッチョイ c26e-jA6l)
2018/02/13(火) 17:45:08.06ID:a1RYP/Gm0 こんな名前空間もあるね
int x;
int main(void)
{
x = 1;
int x;
x = 2;
{
int x;
x = 3;
}
return 0;
}
int x;
int main(void)
{
x = 1;
int x;
x = 2;
{
int x;
x = 3;
}
return 0;
}
129デフォルトの名無しさん (ブーイモ MM6d-ZT4h)
2018/02/13(火) 17:55:17.58ID:Xr6xvVy+M それはスコープでは
130デフォルトの名無しさん (ワッチョイ c26e-jA6l)
2018/02/13(火) 18:15:03.36ID:a1RYP/Gm0 変数だよ
代入でもあるね
代入でもあるね
131デフォルトの名無しさん (ワッチョイ d27e-jA6l)
2018/02/13(火) 20:09:02.02ID:NNOtJgpO0 謎すぎワロタがそこから上のスコープのxを参照してくれ
132デフォルトの名無しさん (ラクッペ MM61-cyyJ)
2018/02/13(火) 20:19:22.41ID:Za/EZbH7M ブロックって言ってる
133デフォルトの名無しさん (ワッチョイ c26e-jA6l)
2018/02/13(火) 21:49:01.90ID:a1RYP/Gm0 アホばっかり
がっかり
がっかり
134デフォルトの名無しさん (ワッチョイ 9f23-TT3E)
2018/02/15(木) 12:08:37.28ID:Sgd3BwBT0 std::mapのように文字列や構造体をキーにした高速アクセスができて、
要素の数が一定数を超えたらLRU形式で勝手に削除してくれる、
キャッシュのような機能を実装したいのだけど、
C++でそのような仕組みを作れるクラスはないですか?
要素の数が一定数を超えたらLRU形式で勝手に削除してくれる、
キャッシュのような機能を実装したいのだけど、
C++でそのような仕組みを作れるクラスはないですか?
135デフォルトの名無しさん (ワッチョイ 378a-TkRA)
2018/02/15(木) 17:00:44.45ID:GbCJk+7h0 自分で実装するならどうにでもなるだろ
そのための道具は全て標準で揃っている
そのための道具は全て標準で揃っている
136デフォルトの名無しさん (ワッチョイ ff8a-NmL4)
2018/02/15(木) 18:15:51.96ID:6url8MQd0 バックグラウンドならスレッド使うしかないんじゃないかな
137デフォルトの名無しさん (ブーイモ MMbf-4Nx+)
2018/02/15(木) 19:13:27.39ID:CSnzpiZpM C++のプログラマーって性格ねじ曲がってるなあ
初めてGo応援したくなったわ
初めてGo応援したくなったわ
138デフォルトの名無しさん (ワッチョイ 9f60-qi38)
2018/02/15(木) 19:34:35.63ID:95vLe5Bi0 >>137
どんな点が、性格悪い、と思わせるのですか?
どんな点が、性格悪い、と思わせるのですか?
139デフォルトの名無しさん (ワッチョイ d7eb-1VRC)
2018/02/15(木) 20:03:21.73ID:qihnyYvs0 それだよそれ
■ このスレッドは過去ログ倉庫に格納されています
