C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part143
https://mevius.5ch.net/test/read.cgi/tech/1560574313/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
探検
C++相談室 part144
■ このスレッドは過去ログ倉庫に格納されています
2019/07/22(月) 13:18:35.52ID:gptRHpgT
154デフォルトの名無しさん
2019/08/01(木) 02:20:44.23ID:53RNnp/+ 意味無いと思うなら参加しなければいいだけ
趣味なら好きにすれば
趣味なら好きにすれば
155デフォルトの名無しさん
2019/08/01(木) 02:21:00.23ID:EAAzAfmw >>152
オレオレコードを一人で書いて満足するのが好きなら、別に止めはしない。
でもそんな主張をここでされても多分同意は得られないと思うよw
議論する気があるなら、みんなが分かるコードを書かないとだめでしょ。
オレオレコードを一人で書いて満足するのが好きなら、別に止めはしない。
でもそんな主張をここでされても多分同意は得られないと思うよw
議論する気があるなら、みんなが分かるコードを書かないとだめでしょ。
156デフォルトの名無しさん
2019/08/01(木) 02:21:21.39ID:xENMcR2S157デフォルトの名無しさん
2019/08/01(木) 02:52:55.71ID:EzhbGyK1 stdだけusingしてライブラリはusingしなければいいだけちゃうの?
158デフォルトの名無しさん
2019/08/01(木) 03:13:40.26ID:xENMcR2S それが都合がいいなら好きにすればいいんだよ
誰もstd名前空間は取り込んじゃいけないとは言ってない
そんなのは個々の設計の意思決定と責任の話で、std取り込む奴がアホとか取り込まないのがアホとかいう話じゃない
誰もstd名前空間は取り込んじゃいけないとは言ってない
そんなのは個々の設計の意思決定と責任の話で、std取り込む奴がアホとか取り込まないのがアホとかいう話じゃない
159デフォルトの名無しさん
2019/08/01(木) 05:07:42.89ID:z8lvaa68 ヘッダにusing namespace書くやつは許さんけど、実装部分では好きにさせてやれよ
160デフォルトの名無しさん
2019/08/01(木) 07:34:07.43ID:RgaAx32e >>151
「他の環境に持っていったときに動かない」って、どういうこと?
ソース丸ごと持っていくなら、ソースにusing namespace std;が含まれるから動くでしょ。
もしかして、ソースの一部だけコピペして持っていく場合の話?
「コピペでも動くソースにしなければならない」という主張はちょっとどうかとおもうけど。
「他の環境に持っていったときに動かない」って、どういうこと?
ソース丸ごと持っていくなら、ソースにusing namespace std;が含まれるから動くでしょ。
もしかして、ソースの一部だけコピペして持っていく場合の話?
「コピペでも動くソースにしなければならない」という主張はちょっとどうかとおもうけど。
161デフォルトの名無しさん
2019/08/01(木) 07:36:43.17ID:crx0fETR ソースレベルのライブラリを持ってくとか
162デフォルトの名無しさん
2019/08/01(木) 07:59:03.96ID:dXXftso1163デフォルトの名無しさん
2019/08/01(木) 08:05:18.75ID:xENMcR2S >>160
標準以外のライブラリの存在が全く想定できてない
自前のちょっとしたライブラリのヘッダでもusing namespace stdって書いてたら
その後or中でインクルードしたヘッダ類が全部巻き込まれて名前の衝突が起きうる
ソースでusingした後にインクルードした場合も同じ(これはあんま無いと思うけど
仮にライブラリとしてファイルが綺麗に別けられてても別のプロジェクトに移して動かない場合があるってのはこれのことでしょ
標準以外のライブラリの存在が全く想定できてない
自前のちょっとしたライブラリのヘッダでもusing namespace stdって書いてたら
その後or中でインクルードしたヘッダ類が全部巻き込まれて名前の衝突が起きうる
ソースでusingした後にインクルードした場合も同じ(これはあんま無いと思うけど
仮にライブラリとしてファイルが綺麗に別けられてても別のプロジェクトに移して動かない場合があるってのはこれのことでしょ
164デフォルトの名無しさん
2019/08/01(木) 08:20:05.74ID:RgaAx32e ヘッダの話なら最初からそう書いてほしい
165デフォルトの名無しさん
2019/08/01(木) 08:24:27.74ID:OXlLEF/q >>163はヘッダの話と一緒くたにしてるのか…
166デフォルトの名無しさん
2019/08/01(木) 08:30:48.58ID:EAAzAfmw ヘッダーにインラインで書くときはstd::つけて、ソースには個別にusingしてstd::を省略するってこと?
そんな面倒なことしてなにか良いことあるの?
そんな面倒なことしてなにか良いことあるの?
167デフォルトの名無しさん
2019/08/01(木) 08:41:54.03ID:xENMcR2S あーすまん、ヘッダには一切書かないのならわかる
ただ、標準と別のライブラリで衝突する名前があるならどちらかはusingしない、あるいは衝突するものはいちいち指定するかしなきゃいかんでしょ
ただ、標準と別のライブラリで衝突する名前があるならどちらかはusingしない、あるいは衝突するものはいちいち指定するかしなきゃいかんでしょ
168デフォルトの名無しさん
2019/08/01(木) 08:48:03.19ID:xENMcR2S169デフォルトの名無しさん
2019/08/01(木) 09:12:15.95ID:+lGsNRBr させたくないならそれが出来ないようにルールそのものが無いはずだ
でもルールがあるなら使っていいでしょう
それが出来るようにそのルールがあるんだから
それともルールはあるが使ってはいけないという宗教なの?
でもルールがあるなら使っていいでしょう
それが出来るようにそのルールがあるんだから
それともルールはあるが使ってはいけないという宗教なの?
170デフォルトの名無しさん
2019/08/01(木) 09:20:25.62ID:z8lvaa68 そういうのはもういいから
171デフォルトの名無しさん
2019/08/01(木) 09:21:49.05ID:53RNnp/+ 勝手にすれば?
172デフォルトの名無しさん
2019/08/01(木) 09:44:39.86ID:lFlDu5J/173デフォルトの名無しさん
2019/08/01(木) 09:53:26.68ID:cScMcWqS おれの職場ではコード規約でusing stdはもちろんその他の名前空間も省略禁止
ファイルローカルでaliasは可能というか推奨
基本的にコードは後で誰でもすぐ読めるように書く方針だからね
仕事で使うときはこんなもんだよ
似たようなの話でauto多用が読みやすいか読みにくいかは結構議論になる
こっちはまだ規約化されてないな
ファイルローカルでaliasは可能というか推奨
基本的にコードは後で誰でもすぐ読めるように書く方針だからね
仕事で使うときはこんなもんだよ
似たようなの話でauto多用が読みやすいか読みにくいかは結構議論になる
こっちはまだ規約化されてないな
174デフォルトの名無しさん
2019/08/01(木) 10:40:45.28ID:X8QVfxL8 関数の返り型にauto使いまくりなんですけどまずいですかね?
175デフォルトの名無しさん
2019/08/01(木) 12:15:50.33ID:RwOvmdDx auto & shared_data = *this->m_data;
とか多用してる
とか多用してる
176デフォルトの名無しさん
2019/08/01(木) 17:35:55.46ID:H6AbKfkF 構造体メンバ間のパディングをコンパイル時に知る方法
178デフォルトの名無しさん
2019/08/01(木) 18:18:03.26ID:tmRbumxZ auto導入によってハンガリアン記法が再評価の機運
179デフォルトの名無しさん
2019/08/01(木) 19:18:28.91ID:Ag3GiCEL >>156
流れ読んでないし本題には触れずにレスするけど同意
「ニワカなやつほど語りたがる」のは世の常だけど
C++ちょっと触っただけくらいの駆け出しのカスが
「C++は〜」なんて知った風に語ってるのたまにあるよなw
それも、スレに参加してるなかでお前一番素人やろってやつが
平然と調子こいてきたりするから驚く
流れ読んでないし本題には触れずにレスするけど同意
「ニワカなやつほど語りたがる」のは世の常だけど
C++ちょっと触っただけくらいの駆け出しのカスが
「C++は〜」なんて知った風に語ってるのたまにあるよなw
それも、スレに参加してるなかでお前一番素人やろってやつが
平然と調子こいてきたりするから驚く
180デフォルトの名無しさん
2019/08/01(木) 22:39:23.89ID:re8BbLkf すまないC++20の新機能諳じて言えない奴は例外なく初心者なので出ていってくれないか
181デフォルトの名無しさん
2019/08/01(木) 22:41:32.13ID:IjUNQuw2182デフォルトの名無しさん
2019/08/01(木) 22:51:01.89ID:i4bRK0c3 alignofとsizeof使えばわかるんじゃね
183デフォルトの名無しさん
2019/08/01(木) 22:56:22.56ID:8zpMvWHA パディングの有無ならstd::has_unique_object_representationsでわかると思う
どこにいくつあるかは難しい・・・
どこにいくつあるかは難しい・・・
184デフォルトの名無しさん
2019/08/01(木) 23:14:16.19ID:Phw6FYmd185デフォルトの名無しさん
2019/08/02(金) 01:30:02.97ID:Baufd8HM メンバポインタの差取る方法もありそう
規格の保証はなさそうだけど
規格の保証はなさそうだけど
186デフォルトの名無しさん
2019/08/02(金) 02:03:55.33ID:zOtmkI/7 >>151
using を絶対に全く使わないのであれば、そもそも namespace の概念自体が
意味が無いと思いますよ。タイプ量を減らすことはとても大切だからこそ、
衝突しない場合には、using を使えるように設計してされているわけですから。
もし絶対に std:: を付けるのであれば、例えば、std::vector と書かずに
最初から StdVector などと固定の名前でも良かったわけです。しかし
それだと長くなってコーディング効率が下がるので、可能ならば
std:: を省略して vector と書けるように設計されているわけです。
それこそが namespace の思想なのでしょう。
using を絶対に全く使わないのであれば、そもそも namespace の概念自体が
意味が無いと思いますよ。タイプ量を減らすことはとても大切だからこそ、
衝突しない場合には、using を使えるように設計してされているわけですから。
もし絶対に std:: を付けるのであれば、例えば、std::vector と書かずに
最初から StdVector などと固定の名前でも良かったわけです。しかし
それだと長くなってコーディング効率が下がるので、可能ならば
std:: を省略して vector と書けるように設計されているわけです。
それこそが namespace の思想なのでしょう。
187デフォルトの名無しさん
2019/08/02(金) 02:09:48.23ID:zOtmkI/7 >>173
usingを使わない方針は気持ちは分かります。しかし、usingを使い辛くなって
しまうのは想像力を働かせればSTLやC++の言語使用設計の段階から
最初から分かっていたはずで、そもそもSTLが最初からstd という
namespace に入れて有ること自体が余りセンスが無かった可能性があると
自分は思ってます。
usingを使わない方針は気持ちは分かります。しかし、usingを使い辛くなって
しまうのは想像力を働かせればSTLやC++の言語使用設計の段階から
最初から分かっていたはずで、そもそもSTLが最初からstd という
namespace に入れて有ること自体が余りセンスが無かった可能性があると
自分は思ってます。
188デフォルトの名無しさん
2019/08/02(金) 02:16:04.07ID:zOtmkI/7 1. std::string
2. StdString
3. CString
最も効率がいいのは、3 の CString でその意味では CString の設計者は
センスが良かったと私は思っています。using を使って std:: を書かないように
した場合、確かに何かのライブラリと衝突の危険性が出てきます。
ならば、標準のライブラリ(STL)は、デフォルトでは namespace の中に入れる
べきではなかったのではないかとも思います。
namespaceは、たまたま衝突が起きた場合には、その時点で使うと助かる場合が
あると思いますが、最初から入れてしまった事で新たな問題が入ってしまった
可能性があります。
2. StdString
3. CString
最も効率がいいのは、3 の CString でその意味では CString の設計者は
センスが良かったと私は思っています。using を使って std:: を書かないように
した場合、確かに何かのライブラリと衝突の危険性が出てきます。
ならば、標準のライブラリ(STL)は、デフォルトでは namespace の中に入れる
べきではなかったのではないかとも思います。
namespaceは、たまたま衝突が起きた場合には、その時点で使うと助かる場合が
あると思いますが、最初から入れてしまった事で新たな問題が入ってしまった
可能性があります。
189デフォルトの名無しさん
2019/08/02(金) 02:35:42.08ID:TGlmBsBg >>186
namespaceってその名の通り名前空間を分割することで識別子名の競合を避けて、命名の自由度を上げる(楽をする)ための機能でしょ。
ある程度大きな規模のプロジェクトでは大変重宝するものだと思うんだけど、なんかものすごく偏った理解のしかたしてない?
namespaceってその名の通り名前空間を分割することで識別子名の競合を避けて、命名の自由度を上げる(楽をする)ための機能でしょ。
ある程度大きな規模のプロジェクトでは大変重宝するものだと思うんだけど、なんかものすごく偏った理解のしかたしてない?
190デフォルトの名無しさん
2019/08/02(金) 02:46:27.31ID:TGlmBsBg >>188
CStringとタイプするには、shiftを押したり離したりしないといけないし、手間としてはstd::とそれほどかわらないと思うんだけどw
CStringとタイプするには、shiftを押したり離したりしないといけないし、手間としてはstd::とそれほどかわらないと思うんだけどw
191デフォルトの名無しさん
2019/08/02(金) 02:49:52.24ID:zOtmkI/7192デフォルトの名無しさん
2019/08/02(金) 02:51:05.19ID:zOtmkI/7193デフォルトの名無しさん
2019/08/02(金) 02:54:02.02ID:TGlmBsBg >>191
いやいや、実際はshiftを若干早くおしとかないと、cStringになっちゃったりするだろw
離す時も気をつけないとCSTringになっちゃったりするし。
それに最近のエディタ(統合開発環境)には補完機能が付いてるから、std::で候補が絞られる分、選択に有利に働く。
いやいや、実際はshiftを若干早くおしとかないと、cStringになっちゃったりするだろw
離す時も気をつけないとCSTringになっちゃったりするし。
それに最近のエディタ(統合開発環境)には補完機能が付いてるから、std::で候補が絞られる分、選択に有利に働く。
194デフォルトの名無しさん
2019/08/02(金) 02:54:16.42ID:1bW2v8eW >>186
外から使うことだけしか考えてないみたいだけど、名前空間内の実装を読み書きしやすくする効果もあるでしょ。
外から使うことだけしか考えてないみたいだけど、名前空間内の実装を読み書きしやすくする効果もあるでしょ。
195デフォルトの名無しさん
2019/08/02(金) 02:55:50.33ID:TGlmBsBg196デフォルトの名無しさん
2019/08/02(金) 03:01:42.94ID:zOtmkI/7 >>195
namespace std で囲まれている事で気が緩んで hoge みたいな短い名前付けて
しまうことで、std:: を外すことが不可能になってしまう恐れが有る。
結局なんのための名前空間なのか分からなくなってしまうという。
外せない名前空間なら、std_ でも Std でも Stl を付けた方がタイプ量が
少なく済んだのに。
namespace std で囲まれている事で気が緩んで hoge みたいな短い名前付けて
しまうことで、std:: を外すことが不可能になってしまう恐れが有る。
結局なんのための名前空間なのか分からなくなってしまうという。
外せない名前空間なら、std_ でも Std でも Stl を付けた方がタイプ量が
少なく済んだのに。
197デフォルトの名無しさん
2019/08/02(金) 03:04:55.47ID:TGlmBsBg >>196
あくまで外すことが前提なのかw
あくまで外すことが前提なのかw
198デフォルトの名無しさん
2019/08/02(金) 03:07:18.69ID:zOtmkI/7 >>195
大丈夫だと思って i という一文字のグローバル変数を定義したとしよう。
すると、std::i としている場合には問題ないが、using namespace std;
とした場合、大変な現象が起きる。伝統的な for のループ変数と衝突
するから。
大丈夫だと思って i という一文字のグローバル変数を定義したとしよう。
すると、std::i としている場合には問題ないが、using namespace std;
とした場合、大変な現象が起きる。伝統的な for のループ変数と衝突
するから。
199デフォルトの名無しさん
2019/08/02(金) 03:07:57.71ID:zOtmkI/7 >>197
絶対に外さないなら namespace に何のメリットが有るの。
絶対に外さないなら namespace に何のメリットが有るの。
200デフォルトの名無しさん
2019/08/02(金) 03:08:43.92ID:zOtmkI/7 >>197
外さないなら、StdVector, StdList で良かったはず。
外さないなら、StdVector, StdList で良かったはず。
201デフォルトの名無しさん
2019/08/02(金) 03:10:27.53ID:tRQdKQsJ 別に外さなくとも、その名前空間内で書くときは省略できるんで楽なんだけどな
(ライブラリ書いてるときとか
(ライブラリ書いてるときとか
202デフォルトの名無しさん
2019/08/02(金) 03:10:40.06ID:zOtmkI/7203デフォルトの名無しさん
2019/08/02(金) 03:11:25.60ID:zOtmkI/7204デフォルトの名無しさん
2019/08/02(金) 03:14:20.48ID:Baufd8HM この世の名前空間はstdしかないと思ってるのかな?
mylib::vectorとかyourlib::vectorとかを安心して作れるようにするための機能が名前空間だぞ
mylib::vectorとかyourlib::vectorとかを安心して作れるようにするための機能が名前空間だぞ
205デフォルトの名無しさん
2019/08/02(金) 03:15:42.09ID:zOtmkI/7 >>201
もしかしてアプリなどでは使わないのにライブラリを作ることだけで
満足している人たちが多いのでしょうか。
なるほど、それで stl や boost が究極にセンスの悪い代物になっているのかも
知れない。コンテナ類は、C/C++のリストの概念が全く理解できて無い人
が作ったとしか思えない。リストは構造がリストであればリスト足りえると
思っているのが頭が悪い。ポインタでアクセスできないリストはリストじゃない。
O(1)で済むところがO(N)になってしまっていて、stlは全くセンスの
悪い欠陥ライブラリ。
もしかしてアプリなどでは使わないのにライブラリを作ることだけで
満足している人たちが多いのでしょうか。
なるほど、それで stl や boost が究極にセンスの悪い代物になっているのかも
知れない。コンテナ類は、C/C++のリストの概念が全く理解できて無い人
が作ったとしか思えない。リストは構造がリストであればリスト足りえると
思っているのが頭が悪い。ポインタでアクセスできないリストはリストじゃない。
O(1)で済むところがO(N)になってしまっていて、stlは全くセンスの
悪い欠陥ライブラリ。
206デフォルトの名無しさん
2019/08/02(金) 03:17:07.37ID:zOtmkI/7 >>204
だったら MylibVector で十分。そのほうが短い。
接頭辞を変えたければ、grep置換すればいいだけ。wz grepで一発。
それともstlの設計者はgrep置換使ったことが無いんだろうか。
とても頭が悪い感じがする。
だったら MylibVector で十分。そのほうが短い。
接頭辞を変えたければ、grep置換すればいいだけ。wz grepで一発。
それともstlの設計者はgrep置換使ったことが無いんだろうか。
とても頭が悪い感じがする。
207デフォルトの名無しさん
2019/08/02(金) 03:37:49.81ID:Baufd8HM 最初にusing mylib::vector;って書いとけば以後は単にvectorと書いたらmylib::vectorの意味になるんだよ
vectorを100回使うならその方が短いだろ?
後でyourlibやmylib_ver2のvectorを使いたくなればgrep(笑)なんかしなくても最初のusing宣言を一箇所書き換えるだけでいい
名前空間ってのはそういう機能で、ただの接頭辞じゃねえんだよわかったか知恵遅れ
vectorを100回使うならその方が短いだろ?
後でyourlibやmylib_ver2のvectorを使いたくなればgrep(笑)なんかしなくても最初のusing宣言を一箇所書き換えるだけでいい
名前空間ってのはそういう機能で、ただの接頭辞じゃねえんだよわかったか知恵遅れ
208デフォルトの名無しさん
2019/08/02(金) 03:53:52.52ID:tRQdKQsJ209デフォルトの名無しさん
2019/08/02(金) 04:05:35.16ID:HNnVO++M >>186
タイプ量を減らすなんてのは開発において些末なことだろ。通常は開発時間の多くは設計、思考に費やして、コードをタイプする時間の比率なんて誤差程度のものだよ。
お前さんのプログラミングではほんの数文字のタイプがそれほど重みがあるのか?もしかして頭使わずに写経だけしてるのか?
タイプ量を減らすなんてのは開発において些末なことだろ。通常は開発時間の多くは設計、思考に費やして、コードをタイプする時間の比率なんて誤差程度のものだよ。
お前さんのプログラミングではほんの数文字のタイプがそれほど重みがあるのか?もしかして頭使わずに写経だけしてるのか?
210デフォルトの名無しさん
2019/08/02(金) 04:13:12.69ID:HNnVO++M >>200
どうして外すか外さないかの二択しかないのか?
外すことでメリットがある使い方をするときは外せばいいよ。
外すための方法がいくつかあるのは分かるか?その書き方の違いや、それを使う場面や文脈で良し悪しが変わるというのは理解できるか?
お前さんは名前空間に関する仕様の理解と現実の開発作業の経験が少ないのにその自覚がなく、自分の考えに凝り固まってるから議論が進まない。
どうして外すか外さないかの二択しかないのか?
外すことでメリットがある使い方をするときは外せばいいよ。
外すための方法がいくつかあるのは分かるか?その書き方の違いや、それを使う場面や文脈で良し悪しが変わるというのは理解できるか?
お前さんは名前空間に関する仕様の理解と現実の開発作業の経験が少ないのにその自覚がなく、自分の考えに凝り固まってるから議論が進まない。
211デフォルトの名無しさん
2019/08/02(金) 04:26:28.62ID:HNnVO++M >>206
自分のコードを再利用しやすくするためにライブラリ化する。その歳に名前の衝突を容易に回避できるよう名前空間を使用する。
名前がぶつかるからって安易にコピペして置換するなんて愚の骨頂だろう。
そんなやり方を良しとするというのは、規模が小さく保守の必要もない使い捨てのような小さなプログラムしか作ったことがないのだろうか。
自分のコードを再利用しやすくするためにライブラリ化する。その歳に名前の衝突を容易に回避できるよう名前空間を使用する。
名前がぶつかるからって安易にコピペして置換するなんて愚の骨頂だろう。
そんなやり方を良しとするというのは、規模が小さく保守の必要もない使い捨てのような小さなプログラムしか作ったことがないのだろうか。
212デフォルトの名無しさん
2019/08/02(金) 05:07:02.54ID:qy++cDJt なんかやべーやついる
213デフォルトの名無しさん
2019/08/02(金) 06:16:59.13ID:DB/RmtTt 長文なのに書いてある事はスカスカだな
腐ってもプログラマーの端くれなら言いたい事は短く簡潔に書いてくれ
腐ってもプログラマーの端くれなら言いたい事は短く簡潔に書いてくれ
214デフォルトの名無しさん
2019/08/02(金) 06:29:04.32ID:QcV1urKo 夏休み恒例爆釣り天国(゚∀゚)
215デフォルトの名無しさん
2019/08/02(金) 06:49:45.16ID:CuK6m4Hq どこのスレも荒れてると思ったら夏休みだった
216デフォルトの名無しさん
2019/08/02(金) 07:04:11.63ID:OZv2fXQJ 名前空間やクラスに別名付けれるの忘れてね?
217デフォルトの名無しさん
2019/08/02(金) 07:27:30.51ID:uj4cDNt2 だいたい標準ライブラリがvectorとあstringみたいなきわめて衝突しやすい名前を使っているのが悪い
諸悪の根源すぎて死ぬ
std_vectorとかstd_stringとか衝突しにくい名前にすれば済んだ話
しかしそれだと標準ライブラリ内部のコードがダサくなって逝けてないから、という理由で導入されたのがstd名前空間。
所詮センスの問題なためにいつまでたっても議論が収束しない
ここはRustのパッケージのようにパッケージが公開/非公開の唯一の境界、みたいに割り切って
名前空間の設定に論理的必然を持たせたらよかったんじゃ…
諸悪の根源すぎて死ぬ
std_vectorとかstd_stringとか衝突しにくい名前にすれば済んだ話
しかしそれだと標準ライブラリ内部のコードがダサくなって逝けてないから、という理由で導入されたのがstd名前空間。
所詮センスの問題なためにいつまでたっても議論が収束しない
ここはRustのパッケージのようにパッケージが公開/非公開の唯一の境界、みたいに割り切って
名前空間の設定に論理的必然を持たせたらよかったんじゃ…
218デフォルトの名無しさん
2019/08/02(金) 07:35:54.09ID:uj4cDNt2 だいたいfoo::some_symbolと書いたときfooがクラスのときご名前空間のときがあって、
それぞれやれることが微妙に違いもあるがだいたいオーバーラップしているとか嫌すぐる…
疑問に思わないのはC++に脳が汚染されている証拠
後方互換性命で変えるな派と後方互換性を失っても改良すべき派の合意が見られない事案については
前者が勝って後者は追加で我慢するというWIN-win決着で永遠に先送りされつつ混迷だけが深まっていくのがC++の宿命
それぞれやれることが微妙に違いもあるがだいたいオーバーラップしているとか嫌すぐる…
疑問に思わないのはC++に脳が汚染されている証拠
後方互換性命で変えるな派と後方互換性を失っても改良すべき派の合意が見られない事案については
前者が勝って後者は追加で我慢するというWIN-win決着で永遠に先送りされつつ混迷だけが深まっていくのがC++の宿命
219デフォルトの名無しさん
2019/08/02(金) 07:38:50.92ID:Mf8CxiUW namespaceも分からない初心者が上級者面して住み着いてるのか・・・
220デフォルトの名無しさん
2019/08/02(金) 07:42:20.24ID:uj4cDNt2 なにおうnamespaceがイミフな言語機能であることぐらいはよくわかっとるわ!
標準ライブラリ内部のコードにおいてもほとんどがテンプレートであるために、
using std;することが許されない
つまり、std_vectorやstd_stringという風に名前を長くするのに対してなんのメリットも提供されていない
標準ライブラリ内部のコードにおいてもほとんどがテンプレートであるために、
using std;することが許されない
つまり、std_vectorやstd_stringという風に名前を長くするのに対してなんのメリットも提供されていない
221デフォルトの名無しさん
2019/08/02(金) 07:43:02.09ID:uj4cDNt2 訂正orz;
誤: using std;
正: using namespace std;
誤: using std;
正: using namespace std;
222デフォルトの名無しさん
2019/08/02(金) 08:15:18.88ID:WBAmTSV/ 関数名_ローカル名 ってすれば全部グローバル変数でいいだろっていう主張?
223デフォルトの名無しさん
2019/08/02(金) 09:01:08.99ID:r+xcYYgK 数多くの言語で採用されているnamespaceが意味不明って・・・
224デフォルトの名無しさん
2019/08/02(金) 09:13:54.00ID:9zV6XrP/ なんでこういう馬鹿が定期的に沸くんだ
ちょっと調べればなぜこんな機能が必要とされたか位わかるだろ
名前空間の問題なんてC++固有の問題じゃないのに
ちょっと調べればなぜこんな機能が必要とされたか位わかるだろ
名前空間の問題なんてC++固有の問題じゃないのに
225デフォルトの名無しさん
2019/08/02(金) 11:01:28.88ID:OZv2fXQJ >>220
邪悪なADLが利点だよ
邪悪なADLが利点だよ
226デフォルトの名無しさん
2019/08/02(金) 14:45:11.22ID:Tt8ZbjXp complex<__float128>ってできないの?
227デフォルトの名無しさん
2019/08/02(金) 16:35:01.23ID:aGnTdwVX インスタンス生成時に絶対に決めなきゃいけない定数をテンプレートパラメータにするかコンストラクタに渡すか迷ってる
両者にはどういう思想の違いがありますか?
両者にはどういう思想の違いがありますか?
228デフォルトの名無しさん
2019/08/02(金) 16:54:49.60ID:Bzyz7IRB なんかLinus TorvaldsがC++ディスってる記事でnamespace絡みで
「Cならmy_foo()って名前にするね、やっほー、grep my_fooが機能するぜ!」
みたいな話があったような気がするんだけど検索しても見つからない(´・ω・`)
「Cならmy_foo()って名前にするね、やっほー、grep my_fooが機能するぜ!」
みたいな話があったような気がするんだけど検索しても見つからない(´・ω・`)
229デフォルトの名無しさん
2019/08/02(金) 16:56:52.52ID:T+FnjWGP テンプレートはコンパイル時に決まる値しか渡せない
230デフォルトの名無しさん
2019/08/02(金) 17:08:25.07ID:aGnTdwVX >>229
なるほど
なるほど
231デフォルトの名無しさん
2019/08/02(金) 18:19:12.53ID:zOtmkI/7232デフォルトの名無しさん
2019/08/02(金) 18:33:35.61ID:6Fm4tKt9233デフォルトの名無しさん
2019/08/02(金) 18:46:25.31ID:v+e6jaBZ おい!
4倍精度複素数は!?
ないの!!???
4倍精度複素数は!?
ないの!!???
234デフォルトの名無しさん
2019/08/02(金) 18:49:34.26ID:qy++cDJt boost::multiprecision 使え
235デフォルトの名無しさん
2019/08/02(金) 18:51:13.74ID:OZv2fXQJ 今std::chronoとかstd::filesystemとか標準の名前空間も細分化するようにしてきてるからusing namespace std;の影響もそこまで酷くならないかもしれない
236デフォルトの名無しさん
2019/08/02(金) 18:52:43.15ID:4a7qvAUu stdの中に全部ぶちこんであるのが問題
std::header名の名前空間に入れて、std内でusing namespace header名していればいいのに
std::xxxでも使えるし、using namespace std::header名すればそのheaderの中身だけが省略して使える
std::header名の名前空間に入れて、std内でusing namespace header名していればいいのに
std::xxxでも使えるし、using namespace std::header名すればそのheaderの中身だけが省略して使える
237デフォルトの名無しさん
2019/08/02(金) 18:56:02.63ID:zOtmkI/7238デフォルトの名無しさん
2019/08/02(金) 18:59:20.11ID:zOtmkI/7 匿名性掲示板が困るのは、何かの欠点を指摘するとそれを作った当事者らしき人が
全否定をしてしまうことで話が深まらないこと。
同意する人がいればもっと良いライブラリを探す話とかに発展できる
かも知れないのに。
全否定をしてしまうことで話が深まらないこと。
同意する人がいればもっと良いライブラリを探す話とかに発展できる
かも知れないのに。
239デフォルトの名無しさん
2019/08/02(金) 19:00:52.12ID:4a7qvAUu ABI互換が問題ならextern "C"みたいに
extern ::std
みたいなので、マングリング時の名前空間を強制できる機能つければなんとかならんかね
extern ::std
みたいなので、マングリング時の名前空間を強制できる機能つければなんとかならんかね
240デフォルトの名無しさん
2019/08/02(金) 19:05:43.92ID:TY1gde0p >>237
お前の「使いやすい」と世間一般の「使いやすい」が一致してないというだけだろう。
お前の「こうあるべき」と世間一般の「こうあるべき」のズレが大きいから、今のC++はお前にとって不満の大きいものになっているんだろう。もしかすると家庭や学校、社会全体も。
お前の「使いやすい」と世間一般の「使いやすい」が一致してないというだけだろう。
お前の「こうあるべき」と世間一般の「こうあるべき」のズレが大きいから、今のC++はお前にとって不満の大きいものになっているんだろう。もしかすると家庭や学校、社会全体も。
241デフォルトの名無しさん
2019/08/02(金) 19:09:51.86ID:zOtmkI/7242デフォルトの名無しさん
2019/08/02(金) 19:10:14.38ID:TY1gde0p >>238
C++の仕様策定に関与したような人がこんなスレを覗いて低レベルな指摘にわざわざ反応するわけないだろう。想像力が豊かだな。
C++の仕様策定に関与したような人がこんなスレを覗いて低レベルな指摘にわざわざ反応するわけないだろう。想像力が豊かだな。
243デフォルトの名無しさん
2019/08/02(金) 19:12:46.85ID:yAHSp118 否定的意見はマウンティングとか強すぎるな
244デフォルトの名無しさん
2019/08/02(金) 19:12:52.67ID:zOtmkI/7 >>242
でも、オイラはそのくらいできるくらい優秀だよ。
でも、オイラはそのくらいできるくらい優秀だよ。
245デフォルトの名無しさん
2019/08/02(金) 19:15:19.48ID:zOtmkI/7 暗に陽にアメリカを褒めちぎって日本をけなすような人が5chには多い。
それで日本はめちゃくちゃに成ったんじゃなかろうか。
例えば「日本製スマホが全然駄目」などという説が5chでは大量に流布
されている。実際、そういう情報を信じて損する人は多かろう。
大問題だ。
それで日本はめちゃくちゃに成ったんじゃなかろうか。
例えば「日本製スマホが全然駄目」などという説が5chでは大量に流布
されている。実際、そういう情報を信じて損する人は多かろう。
大問題だ。
246デフォルトの名無しさん
2019/08/02(金) 19:49:20.44ID:azkiHyJD247デフォルトの名無しさん
2019/08/02(金) 21:08:13.86ID:9zV6XrP/ VSスレで暴れてたジジイと芸風が同じだな
248デフォルトの名無しさん
2019/08/02(金) 23:12:48.91ID:zqhkSChf 誰も書かなかったので仕方無いので漏れが書くが、namespaceの唯一の便利な使い方は(「唯一の」だ
、すでに衝突したあるいは衝突不可避なソースコードAとソースコードAを
namespace a { A }
namespace b { B }
と囲う等して分離できる ( こともある ) というだけやんけ
それとて完全には果たせないというあたりがいかにも行き当たりばったりで中途半端な言語要素感を醸し出してゐる
(中で::fooで呼んでたり入れ子のnamespaceを外から呼んでたりのケースは救われない
、すでに衝突したあるいは衝突不可避なソースコードAとソースコードAを
namespace a { A }
namespace b { B }
と囲う等して分離できる ( こともある ) というだけやんけ
それとて完全には果たせないというあたりがいかにも行き当たりばったりで中途半端な言語要素感を醸し出してゐる
(中で::fooで呼んでたり入れ子のnamespaceを外から呼んでたりのケースは救われない
249デフォルトの名無しさん
2019/08/02(金) 23:17:29.32ID:4a7qvAUu てかnamespaceは色々中途半端な点はあるが、便利に使える機能だろ
無いと物凄く不便
using namespace stdは使わんな
無いと物凄く不便
using namespace stdは使わんな
250デフォルトの名無しさん
2019/08/02(金) 23:19:05.25ID:jyJeqz7W 名前空間ネストして書くのが超めんどくさかったがようやく改善するとか
251デフォルトの名無しさん
2019/08/02(金) 23:37:02.96ID:DB/RmtTt 関数呼び出し時に宣言が必要か否かってCとC++では異なってたりしますか?
規格書読めないマンで申し訳ないのですがgccだとC/C++でそれぞれOK/NGと結果が異なります
規格書読めないマンで申し訳ないのですがgccだとC/C++でそれぞれOK/NGと結果が異なります
252デフォルトの名無しさん
2019/08/03(土) 00:35:18.25ID:T50aUZPM 翻訳単位超えるお話?
253デフォルトの名無しさん
2019/08/03(土) 02:27:32.85ID:m/VIbHu2 >>222は、FSMとPDAの区別もつかない
くるくる
((ヽ三/) (ヽ三/))
(((」) ___ (L)))
/ // ノヽ\\ \
( </ (● ●)\> )
\| ⌒(_人_)⌒|/
\  ̄ /
パーだおwwwwww
n「「「| 「「「h
|ー ⊃ ⊂ ー|
>ーノ___ヽー<
/ // ノヽ\\ \
( < o゚(● ●)゚o> )
\| ⌒(_人_)⌒|/
\ |┬| /
ヽノ
くるくる
((ヽ三/) (ヽ三/))
(((」) ___ (L)))
/ // ノヽ\\ \
( </ (● ●)\> )
\| ⌒(_人_)⌒|/
\  ̄ /
パーだおwwwwww
n「「「| 「「「h
|ー ⊃ ⊂ ー|
>ーノ___ヽー<
/ // ノヽ\\ \
( < o゚(● ●)゚o> )
\| ⌒(_人_)⌒|/
\ |┬| /
ヽノ
254デフォルトの名無しさん
2019/08/03(土) 07:47:52.71ID:NzOgSHrF お前らが名前空間で議論したところで何のメリットもデメリットもない事に気づけ、そしてRustを使え
ゴミ言語
ゴミ言語
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- クリスマスの「予定なし」54% [少考さん★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 日銀0.75%に利上げへ、30年ぶりの水準に 19日金融政策決定会合 [蚤の市★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★4
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★5
- フィンランド人国会議員「つり目はアジア人差別じゃない!!」と擁護投稿開始 [469534301]
- 茶ぁしばこうや··· ( ¨̮ )︎︎𖠚ᐝ2
- コーヒー、来年3月から30パーセント値上げへ [709039863]
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
