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
2019/07/25(木) 12:47:32.28ID:i0AuwjJi
streamで固定長の文字列分解したい
以下イメージ
istreamstring ss(“0123456789”);
string no1;
int no2;
char no3;
ss >> std::setw(4) >> no1;
ss >> std::setw(4) >> no2;
ss >> std::setw(2) >> no3;
結果
no1=0123
no2=4567
no3=89
みたいな感じで
環境はコンパイラc++03、boost使えず
std::string::substr使ったやつはもう作ってます
よろしくお願いします
以下イメージ
istreamstring ss(“0123456789”);
string no1;
int no2;
char no3;
ss >> std::setw(4) >> no1;
ss >> std::setw(4) >> no2;
ss >> std::setw(2) >> no3;
結果
no1=0123
no2=4567
no3=89
みたいな感じで
環境はコンパイラc++03、boost使えず
std::string::substr使ったやつはもう作ってます
よろしくお願いします
2019/07/25(木) 13:05:43.49ID:eYgqWI8M
>>57 「substr()使ったやつ」で何が不満なのか?
2019/07/25(木) 14:10:42.84ID:HIqmru9O
2019/07/25(木) 15:06:48.36ID:eq0G00ml
ABIの変更ってこれから先何度もあるんでしょうか?
stringとか基本のクラスが変わるのはきついんですが
stringとか基本のクラスが変わるのはきついんですが
2019/07/25(木) 16:49:16.74ID:E2feltVj
そのあたりほんとc++クソだよ
というか標準化委員会がクソ
というか標準化委員会がクソ
2019/07/25(木) 17:01:42.02ID:XeL2zPLs
ABIはしゃーないな
VCとgccが違うの知った時泣いたわ
VCとgccが違うの知った時泣いたわ
2019/07/25(木) 17:11:22.15ID:DsBc3y+y
BeOSっていうOSが昔あって、純粋にC++でゼロから作られたOSなんだけど
コンパイラのバージョンアップだとかでABIが変わって
アプリの使うAPIの互換性が保たれてなかったんだよね
(後継のHAIKU OSも同じ問題抱えてる)
そこらへん標準で決めててくれればいいのにねぇ
コンパイラのバージョンアップだとかでABIが変わって
アプリの使うAPIの互換性が保たれてなかったんだよね
(後継のHAIKU OSも同じ問題抱えてる)
そこらへん標準で決めててくれればいいのにねぇ
2019/07/25(木) 21:34:32.20ID:E2feltVj
OS作ってんならABIは自分で定義しろよ
2019/07/25(木) 21:46:01.89ID:PNoIdPh5
それ言い出すとcでいいやんてなる。
2019/07/25(木) 23:57:42.04ID:n2Si4yAe
C++の委員会って規模やリソース的に多言語と比べてどうなんでしょう?
かなり恵まれているほうえすかね?
かなり恵まれているほうえすかね?
2019/07/26(金) 00:08:47.64ID:v7MbZVD8
C++くらい規格化ちゃんとやってる所って他にある?
2019/07/26(金) 00:21:17.49ID:wfZPJP/7
Javascript?
2019/07/26(金) 00:33:24.31ID:eT9T+6Bl
規格合致したコンパイラなんて過去に存在したのかしら
2019/07/26(金) 00:47:51.48ID:qhxgv2BF
そもそも1つの規格を元に複数のコンパイラが存在するって言語が少ないだろ
2019/07/26(金) 01:25:43.63ID:6ttC61YN
>>52
例えば文字列リテラルを与えた時にconst std::string &だと暗黙的に一時オブジェクトが構築され、バッファの確保と文字列のコピーが発生する。
std::string_viewを使うと、文字列の先頭アドレスと長さだけが渡されることになるので、効率の良いコードが生成される。
例えば文字列リテラルを与えた時にconst std::string &だと暗黙的に一時オブジェクトが構築され、バッファの確保と文字列のコピーが発生する。
std::string_viewを使うと、文字列の先頭アドレスと長さだけが渡されることになるので、効率の良いコードが生成される。
2019/07/26(金) 03:37:13.13ID:8OK0KeqS
>>69
VSコンパイルで、なんでもOKだろ。
VSコンパイルで、なんでもOKだろ。
2019/07/26(金) 06:49:13.69ID:4yTQHcMn
>>55
これは、IDEはVSでも使用するコンパイラ本体は MSC(?)ではなくclang ですか。
これは、IDEはVSでも使用するコンパイラ本体は MSC(?)ではなくclang ですか。
2019/07/26(金) 06:51:05.54ID:/WSqmbNM
>>70
せ、せやな
FORTRAN, COBOL
せ、せやな
FORTRAN, COBOL
2019/07/26(金) 08:35:39.46ID:TlXJotF6
実用的な言語の話をしているキリッ
2019/07/26(金) 08:49:06.77ID:PZK88cLJ
ecma334
2019/07/26(金) 13:37:03.81ID:X7S0ZvoC
Fortran今も使われてるのか
研究室のコードが軒並みFortranでイヤイヤ使わされた記憶がよみがえった
C++だのなんだの色々流行ってるが研究者はそんなものに振り回されるな
Fortranは完成された言語なんだとボスが力説してたわ
研究室のコードが軒並みFortranでイヤイヤ使わされた記憶がよみがえった
C++だのなんだの色々流行ってるが研究者はそんなものに振り回されるな
Fortranは完成された言語なんだとボスが力説してたわ
2019/07/26(金) 13:40:16.10ID:X7S0ZvoC
言い忘れたがFORTRAN77ね
90とか使うと怒られた
90とか使うと怒られた
2019/07/26(金) 14:33:55.87ID:qhxgv2BF
今はPythonかMATLABが多いかと
2019/07/26(金) 14:48:21.28ID:pSMqg5vs
Pythonは「CPythonの実装が規格だ」だし
MATLABはそもそもプロプラで言語仕様や変更プロセス自体ブラックボックスだし
あんまり依存するのは危険だと思うんだけどな
アカデミックでは特に
MATLABはそもそもプロプラで言語仕様や変更プロセス自体ブラックボックスだし
あんまり依存するのは危険だと思うんだけどな
アカデミックでは特に
2019/07/26(金) 16:28:07.22ID:/WSqmbNM
>>77
Fortran 2008の規格書印刷してボスの机の上に置いてやれw
Fortran 2008の規格書印刷してボスの机の上に置いてやれw
2019/07/26(金) 16:39:45.36ID:1S1aSnkU
かといってANOVAやMCMCをC++で実装するのは検証も含めて愚かでしょ
2019/07/26(金) 18:18:30.43ID:4cv+0ZCY
ボイジャーのメンテナにFORTRAN使い募集してたやん
2019/07/26(金) 22:42:11.25ID:eT9T+6Bl
JAXAの若手プログラマは自殺してなかったっけ?
2019/07/27(土) 01:32:43.02ID:KwccJBez
86デフォルトの名無しさん
2019/07/27(土) 07:33:07.73ID:NQ4+UjHL2019/07/27(土) 08:41:09.41ID:m1vSIns3
個人的な話だけどstring_viewはconstexpr対応してる点で有利。
2019/07/27(土) 09:24:24.73ID:utI+NfFM
パイソン2と3が混在してるのがややこしい。
spirvのビルドスクリプトは2でしか動かない記述なのに勝手に3を探してきて動かそうとするとか混乱が甚だしい
spirvのビルドスクリプトは2でしか動かない記述なのに勝手に3を探してきて動かそうとするとか混乱が甚だしい
2019/07/27(土) 11:41:57.01ID:zR8v2AWF
2019/07/27(土) 13:02:56.66ID:P/JKsCl6
なんというか世の中全てがオンラインが前提みたいになってて辟易します
2019/07/27(土) 13:17:47.97ID:zR8v2AWF
2019/07/27(土) 13:57:22.46ID:zfEkdoko
別にオンライン前提でもいいんだけどエラー処理が糞なのが多くて、オフラインだと起動が超遅くなるとかそもそも起動しないとかあるのが
2019/07/27(土) 17:04:11.07ID:BDHmD2jF
これからはonline merged offlineらしいです
2019/07/27(土) 17:04:42.40ID:BDHmD2jF
あ、dはいらんか
2019/07/27(土) 17:25:47.08ID:zR8v2AWF
要らない物を売りつけてくる天才みたいな感じだからな、アメリカは。
2019/07/27(土) 18:56:25.83ID:KwccJBez
アメリカ関係ないだろ。
エヴァンジェリストとか名乗る馬鹿が要らんものばっか押し付けてるだけで。
エヴァンジェリストとか名乗る馬鹿が要らんものばっか押し付けてるだけで。
2019/07/27(土) 19:08:52.15ID:zR8v2AWF
VSもASもみんなそうだし。
2019/07/28(日) 03:30:37.94ID:tecnuiEb
エヴァンジェリストっていう単語はじめてきいたときは
エヴァンゲリオンのファンの事かとオモテタ
エヴァンゲリオンのファンの事かとオモテタ
2019/07/28(日) 03:52:29.03ID:5UHV96py
ヒエッ…い、祝福王……!
100デフォルトの名無しさん
2019/07/28(日) 06:12:59.88ID:mOcFR82C 広告宣伝しまくってプロパガンダのゴリ押しで本当に要らないものを買わせる奴らだろ
神からプログラミング言語までなんでもアリだ
ハロウィン文書なんかは異教徒抹殺のための冷静な分析でこれは宗教ヤってる目つきの物言いだ
キリスト教各宗派の合宗国のアメリカはそういうの強いよ
どこかのバカが州とか訳したけどね、真実を悟らせないようにする翻訳テクニックじゃねえの
つまりあいつらのやってることは邪悪だから気をつけろ、ってことだ
神からプログラミング言語までなんでもアリだ
ハロウィン文書なんかは異教徒抹殺のための冷静な分析でこれは宗教ヤってる目つきの物言いだ
キリスト教各宗派の合宗国のアメリカはそういうの強いよ
どこかのバカが州とか訳したけどね、真実を悟らせないようにする翻訳テクニックじゃねえの
つまりあいつらのやってることは邪悪だから気をつけろ、ってことだ
101デフォルトの名無しさん
2019/07/28(日) 09:08:49.65ID:cFlW55NM で、C++の話題はまだかい?
102デフォルトの名無しさん
2019/07/28(日) 09:44:05.47ID:5UHV96py C++がいかに委員会制を敷いて仕様をがっちり固めているといっても
元になっているC言語がUnix記述のためにデニスリッチーがほぼ一人で考えたドメイン固有言語みたいなものなので
後方互換性というものを重視すればするほど後発言語に対してハンデ戦になってしまうのは仕方が無い
Rustを見たらC++のconstや参照がいかに危険で不用意なブツになってしまっているかがワカル
・こんな人はRustを使うべき(中略
・今すぐRustを使うべき10の理由(ry
元になっているC言語がUnix記述のためにデニスリッチーがほぼ一人で考えたドメイン固有言語みたいなものなので
後方互換性というものを重視すればするほど後発言語に対してハンデ戦になってしまうのは仕方が無い
Rustを見たらC++のconstや参照がいかに危険で不用意なブツになってしまっているかがワカル
・こんな人はRustを使うべき(中略
・今すぐRustを使うべき10の理由(ry
103デフォルトの名無しさん
2019/07/28(日) 09:53:00.46ID:5UHV96py ていうかUnixの記述自体が文書整形をやりたいから(後にroffとして結実)という
システム記述ではなくてアプリ実現要求に端を発しているから、
やっぱ全体を俯瞰するとろくでもない流れの末に生まれたC++は不幸な出自と言えるかもしれん…
システム記述ではなくてアプリ実現要求に端を発しているから、
やっぱ全体を俯瞰するとろくでもない流れの末に生まれたC++は不幸な出自と言えるかもしれん…
104デフォルトの名無しさん
2019/07/28(日) 10:38:12.67ID:p9n7KwZ9 C互換無くなってきてるやん
105デフォルトの名無しさん
2019/07/28(日) 10:57:33.68ID:c9+bQbdr 2の補数以外を捨てたのと、評価順序を規定したあたりでCとは決別したと思ってる
これ生粋のCerは絶対受け入れられないでしょ
これ生粋のCerは絶対受け入れられないでしょ
106デフォルトの名無しさん
2019/07/28(日) 10:58:21.15ID:/T7nmvYx >>105
kwsk, wktk
kwsk, wktk
108デフォルトの名無しさん
2019/07/28(日) 13:00:05.35ID:2BtEWPhc 古いシステムでは1の補数表現を用いていたものもあったという伝説じゃよ
109デフォルトの名無しさん
2019/07/28(日) 13:18:40.37ID:c9+bQbdr 1の補数や符号ビットだと0のエイリアス(+0と-0)が出来てハッシュの要件満たさなくてめんどくせえし、
もう2の補数ばっかりなんだから2の補数に限定しようぜーってなってC++20から整数型は2の補数限定になる
例によってIBMはキレてる
もう2の補数ばっかりなんだから2の補数に限定しようぜーってなってC++20から整数型は2の補数限定になる
例によってIBMはキレてる
110デフォルトの名無しさん
2019/07/28(日) 13:25:39.79ID:N2Io9ZPD あと宇宙船演算子の戻り値型が符号付整数だけstrong_orderingじゃなくなったりとよろしくない
111デフォルトの名無しさん
2019/07/28(日) 14:06:25.65ID:5UHV96py 1BM = 1の補数表現のBinaryを使うMaker
112デフォルトの名無しさん
2019/07/28(日) 23:13:55.96ID:U1WujzOS 今のIBMはC++にどれくらい貢献してるんです?
113デフォルトの名無しさん
2019/07/30(火) 03:50:43.53ID:yEpi9Vih BOOST_FOREACH と c++11の範囲ベースfor文ってどっちが早いんですか?
114デフォルトの名無しさん
2019/07/30(火) 07:26:38.31ID:FJcM1oBD 同じ
115デフォルトの名無しさん
2019/07/30(火) 07:30:33.15ID:9ymDyD6T >>113 効率は実測が基本。
116デフォルトの名無しさん
2019/07/30(火) 08:06:04.93ID:4WmgeffG >>113
速いでなく早いならboostじゃないかな
速いでなく早いならboostじゃないかな
117デフォルトの名無しさん
2019/07/30(火) 08:36:20.97ID:mDNZ+mDk ほえー宇宙船演算子なんてできるのか…
勉強になったわ
しかしおふざけネーミングなの珍しいな。総合比較演算子とかならなかったのか
勉強になったわ
しかしおふざけネーミングなの珍しいな。総合比較演算子とかならなかったのか
118デフォルトの名無しさん
2019/07/30(火) 09:50:00.73ID:cezd+02w エルヴィス演算子とか
119デフォルトの名無しさん
2019/07/30(火) 10:41:06.47ID:AXUtE9A1 正式名称は三方比較演算子(three-way comparison operator)
120デフォルトの名無しさん
2019/07/30(火) 12:14:04.15ID:reNIrpCV エルビス演算子の名前ってまじでプレスリーなんかよw
121デフォルトの名無しさん
2019/07/30(火) 14:58:53.30ID:q4AvHDZp 宇宙船演算子なんてなんかのタイポだろうと思って読み飛ばしていたけどマジな用語だったのか、勉強になったわ…
FORTRANの算術IF文みたいに宇宙船if文とか作ってくれればいいのに
space_ship_if(x)
equal { … }
plus { … }
minus { … }
FORTRANの算術IF文みたいに宇宙船if文とか作ってくれればいいのに
space_ship_if(x)
equal { … }
plus { … }
minus { … }
122デフォルトの名無しさん
2019/07/30(火) 17:37:24.04ID:cezd+02w ネコ演算子 ^..^
かわいい
かわいい
123デフォルトの名無しさん
2019/07/30(火) 17:41:57.53ID:hcEFIsmn xは何と比較してるん?
switch見たいな構文やな。
switch見たいな構文やな。
124デフォルトの名無しさん
2019/07/30(火) 19:15:29.41ID:YQWzaJvj Opencvで空の画像に点を1000個程度書きたいです
X座標Y座標が既知の場合に最速で点を1000個描画するにはどうしたらいいんですかね?
X座標Y座標が既知の場合に最速で点を1000個描画するにはどうしたらいいんですかね?
125デフォルトの名無しさん
2019/07/30(火) 20:14:10.30ID:q4AvHDZp126デフォルトの名無しさん
2019/07/31(水) 14:05:31.56ID:/qk9IG8W gitに公開されているcpp環境を使おうとしたところ、サンプルコードのcppファイルのコンパイル時に
「undefined reference to 〜」
と出てコンパイルできませんでした。
何が原因かわかりますでしょうか?
操作した手順は以下になります。
#-------------
# 1. インストール
#-------------
git clone http://github.com/HomerReid/libGDSII
cd libGDSII
mkdir m4
sh autogen.sh --prefix=/home/user/install/libGDSII
make install
2. につづく
「undefined reference to 〜」
と出てコンパイルできませんでした。
何が原因かわかりますでしょうか?
操作した手順は以下になります。
#-------------
# 1. インストール
#-------------
git clone http://github.com/HomerReid/libGDSII
cd libGDSII
mkdir m4
sh autogen.sh --prefix=/home/user/install/libGDSII
make install
2. につづく
127デフォルトの名無しさん
2019/07/31(水) 14:08:46.05ID:/qk9IG8W #-------------
# 2. 下記URLにあるSample codeを元にファイル作成
# ->https://github.com/HomerReid/libGDSII
#-------------
--- xxx.cppファイルで保存 ---
#include "libGDSII.h"
using namespace std;
using namespace libGDSII;
int main(int argc, char *argv[]) {
/********************************************************************/
GDSIIData *gdsIIData = new GDSIIData( string("GSiP_4_RingFilter.gds") );
if (gdsIIData->ErrMsg)
{ printf("error: %s (aborting)\n",gdsIIData->ErrMsg->c_str());
exit(1);
}
/***************************************************************/
gdsIIData->WriteDescription(); // writes to console
gdsIIData->WriteDescription("MyOutputFile");
/***************************************************************/
PolygonList Layer3Polygons = gdsIIData->GetPolygons(3);
printf("Found %lu polygons on layer 3: \n",Layer3Polygons.size());
for(size_t np=0; np<Layer3Polygons.size(); np++)
{ printf("Polygon #%lu has vertices: ",np);
for(unsigned int nv=0; nv<Layer3Polygons[np].size()/2; nv++)
printf(" {%e,%e} ",Layer3Polygons[np][2*nv+0],Layer3Polygons[2*nv+1]);
printf("\n");
}
return 0;
}
3. につづく
# 2. 下記URLにあるSample codeを元にファイル作成
# ->https://github.com/HomerReid/libGDSII
#-------------
--- xxx.cppファイルで保存 ---
#include "libGDSII.h"
using namespace std;
using namespace libGDSII;
int main(int argc, char *argv[]) {
/********************************************************************/
GDSIIData *gdsIIData = new GDSIIData( string("GSiP_4_RingFilter.gds") );
if (gdsIIData->ErrMsg)
{ printf("error: %s (aborting)\n",gdsIIData->ErrMsg->c_str());
exit(1);
}
/***************************************************************/
gdsIIData->WriteDescription(); // writes to console
gdsIIData->WriteDescription("MyOutputFile");
/***************************************************************/
PolygonList Layer3Polygons = gdsIIData->GetPolygons(3);
printf("Found %lu polygons on layer 3: \n",Layer3Polygons.size());
for(size_t np=0; np<Layer3Polygons.size(); np++)
{ printf("Polygon #%lu has vertices: ",np);
for(unsigned int nv=0; nv<Layer3Polygons[np].size()/2; nv++)
printf(" {%e,%e} ",Layer3Polygons[np][2*nv+0],Layer3Polygons[2*nv+1]);
printf("\n");
}
return 0;
}
3. につづく
128デフォルトの名無しさん
2019/07/31(水) 14:09:39.80ID:/qk9IG8W #-------------
# 3. コンパイル
#-------------
gcc -I/home/user/install/libGDSII/include -o xxx xxx.cpp
/tmp/ccwjjcp2.o: In function `main':
xxx.cpp:(.text+0x54): undefined reference to `libGDSII::GDSIIData::GDSIIData(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
xxx.cpp:(.text+0xb8): undefined reference to `libGDSII::GDSIIData::WriteDescription(char const*)'
xxx.cpp:(.text+0xc9): undefined reference to `libGDSII::GDSIIData::WriteDescription(char const*)'
xxx.cpp:(.text+0xe4): undefined reference to `libGDSII::GDSIIData::GetPolygons(int)'
↑ここで落ちる
# 3. コンパイル
#-------------
gcc -I/home/user/install/libGDSII/include -o xxx xxx.cpp
/tmp/ccwjjcp2.o: In function `main':
xxx.cpp:(.text+0x54): undefined reference to `libGDSII::GDSIIData::GDSIIData(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
xxx.cpp:(.text+0xb8): undefined reference to `libGDSII::GDSIIData::WriteDescription(char const*)'
xxx.cpp:(.text+0xc9): undefined reference to `libGDSII::GDSIIData::WriteDescription(char const*)'
xxx.cpp:(.text+0xe4): undefined reference to `libGDSII::GDSIIData::GetPolygons(int)'
↑ここで落ちる
129デフォルトの名無しさん
2019/07/31(水) 14:28:29.92ID:OXiBQODl まずエラーメッセージ(undefined reference to )でググろう
130デフォルトの名無しさん
2019/07/31(水) 14:47:50.63ID:619hUwfJ 単純にライブラリ参照できてないだけだと思うけどなぜ作者に聞かないのか
131デフォルトの名無しさん
2019/07/31(水) 15:36:14.85ID:GSIi4G30 stdをusingする子は嫌いだよ
132デフォルトの名無しさん
2019/07/31(水) 16:18:44.92ID:/qk9IG8W ググりましたが難しかったです。
make install時に*.aなどのlibパスを入れるとか、コンパイル時にlibパスを入れるとかありましたがうまくいかず。。
作者がいるので問い合わせればよいですね。
まずは問い合わせてみます。
ありがとうございました。
make install時に*.aなどのlibパスを入れるとか、コンパイル時にlibパスを入れるとかありましたがうまくいかず。。
作者がいるので問い合わせればよいですね。
まずは問い合わせてみます。
ありがとうございました。
133デフォルトの名無しさん
2019/07/31(水) 17:43:06.37ID:5OHVc1Pr ライブラリの中身関係ない質問されるとか作者かわいそう
134デフォルトの名無しさん
2019/07/31(水) 18:10:51.91ID:qr1YW5nx ggrksファッキューって言われたら戻って来てね
優しいお兄ちゃん達が解決してくれるよ
優しいお兄ちゃん達が解決してくれるよ
135デフォルトの名無しさん
2019/07/31(水) 18:38:26.40ID:3lzQcoQt あれーmake installする前にmakeやるんじゃなかったっけ。ライブラリがそもそも生成されてないんじゃないの
それとライブラリのパス入れるときは-Lか-lだけどもしかして-Iでやってたりしない?
それとライブラリのパス入れるときは-Lか-lだけどもしかして-Iでやってたりしない?
136デフォルトの名無しさん
2019/07/31(水) 18:46:16.25ID:/POyZPT4 肝心のlibGDSIIをリンクしてるか?
137デフォルトの名無しさん
2019/07/31(水) 20:42:21.65ID:P7Lm1qLK >>131
理由は?
理由は?
138デフォルトの名無しさん
2019/07/31(水) 20:52:22.57ID:ik5GKAMP 理由なんてきくまでもないだろ
139デフォルトの名無しさん
2019/07/31(水) 22:08:20.49ID:MO/qze1m140デフォルトの名無しさん
2019/07/31(水) 22:09:40.65ID:619hUwfJ 名前空間の汚染
141デフォルトの名無しさん
2019/07/31(水) 22:41:36.16ID:IFyIPjvz using namespaceのデメリットが分からないのは名前空間を理解していないのでは
142デフォルトの名無しさん
2019/07/31(水) 22:53:59.23ID:P7Lm1qLK 実際問題、std は standard template library の 「standard(標準)」な
訳だから、using 使っても、他の何らかの(ライブラリなど)の名前と
衝突する可能性は低いですよね。汚染と言っても現実に衝突する可能性
は低い。もしstd::が必須なのであれば、Stdという接頭辞を最初から
付けていればよかったはずであって、敢えて std:: という 5文字分を
タイプする必要は無かったはず。
仮に何かと衝突するというなら設計の不味さを感じますね。
訳だから、using 使っても、他の何らかの(ライブラリなど)の名前と
衝突する可能性は低いですよね。汚染と言っても現実に衝突する可能性
は低い。もしstd::が必須なのであれば、Stdという接頭辞を最初から
付けていればよかったはずであって、敢えて std:: という 5文字分を
タイプする必要は無かったはず。
仮に何かと衝突するというなら設計の不味さを感じますね。
143デフォルトの名無しさん
2019/07/31(水) 22:59:46.59ID:IFyIPjvz ちょっと何言ってるか分からない・・・
144デフォルトの名無しさん
2019/07/31(水) 23:05:09.42ID:jjf+PlTq >>142
衝突する可能性は低いという前提が抑間違い。
お前さんは広範な標準ライブラリのすべてを熟知してstd名前空間で定義された名前とはぶつからない命名が常にできる自信はあるのかい?
今現在問題なかったとして、後に標準ライブラリが拡張されて、自分でつけた名前にぶつからない保証は?
そんな諸々の厄介ごとを回避するために名前空間はあるのだから、自分しか使わないソースで誰にも迷惑かけないなら好きにすればいいよ。
衝突する可能性は低いという前提が抑間違い。
お前さんは広範な標準ライブラリのすべてを熟知してstd名前空間で定義された名前とはぶつからない命名が常にできる自信はあるのかい?
今現在問題なかったとして、後に標準ライブラリが拡張されて、自分でつけた名前にぶつからない保証は?
そんな諸々の厄介ごとを回避するために名前空間はあるのだから、自分しか使わないソースで誰にも迷惑かけないなら好きにすればいいよ。
145デフォルトの名無しさん
2019/07/31(水) 23:06:54.23ID:jjf+PlTq 不要な抑の字が入ったのは無視して。
146デフォルトの名無しさん
2019/07/31(水) 23:18:20.34ID:pv+GZng6 設計の不味さを感じますね(ドヤァ
147デフォルトの名無しさん
2019/07/31(水) 23:26:41.52ID:pv+GZng6 仮に線形代数のベクトルクラスとか作ったらいきなり衝突するんだがな
他にも衝突しそうな名前なんか腐る程ある
何のための名前空間だと思ってんのかと小一時間
どうせ標準ライブラリしか使ったことが無いようなド素人なんだろ
他にも衝突しそうな名前なんか腐る程ある
何のための名前空間だと思ってんのかと小一時間
どうせ標準ライブラリしか使ったことが無いようなド素人なんだろ
148デフォルトの名無しさん
2019/07/31(水) 23:52:34.02ID:F67noKPW まぁ必要最低限のものだけimportしましょうっていうだけ
他言語と同じだよ
他言語と同じだよ
149デフォルトの名無しさん
2019/08/01(木) 00:01:43.50ID:x8K/VZkX >>128
libzzz.a または libzzz.so とリンクするには gcc のオプションに -L 該当ファイルのパス -l zzz が必要。
て事も知らないなら入門書からやり直しが必要な初歩レベル
libzzz.a または libzzz.so とリンクするには gcc のオプションに -L 該当ファイルのパス -l zzz が必要。
て事も知らないなら入門書からやり直しが必要な初歩レベル
150デフォルトの名無しさん
2019/08/01(木) 00:11:28.53ID:jAJZsaMK using namespaceが悪なのはヘッダのグローバル空間でかますのが絶対悪ってだけで
それ以外では大概どうでもいい話
それ以外では大概どうでもいい話
151デフォルトの名無しさん
2019/08/01(木) 01:27:47.64ID:EAAzAfmw >>142
競合するかどうかは問題の本質ではない。
using stdをつけてstd::を省略したコードは、using stdをつけていない他の環境に持っていったときに動かない。
std::をつけていれば、どんなusingが使われていようと関係なく動作する。
using stdを使うべきではない理由はこれだけで十分。
せっかく標準規格化されてどの環境でも同じように動作するライブラリのポータビリティを阻害するのは長い目で見ればデメリットしかないと思う。
競合するかどうかは問題の本質ではない。
using stdをつけてstd::を省略したコードは、using stdをつけていない他の環境に持っていったときに動かない。
std::をつけていれば、どんなusingが使われていようと関係なく動作する。
using stdを使うべきではない理由はこれだけで十分。
せっかく標準規格化されてどの環境でも同じように動作するライブラリのポータビリティを阻害するのは長い目で見ればデメリットしかないと思う。
152デフォルトの名無しさん
2019/08/01(木) 02:08:20.24ID:YZxnvLL/ プロのプログラマでもないしstdやboost使う程度なんで名前空間汚染問題とか大げさにしか思えない
大したコードでもないのにstd::つけまくってるコード見るとアホらしくなる
職業や用途あるいは個々人の技量によって求められるものは違うでしょうに、十把一絡げに議論して意味あるの?
大したコードでもないのにstd::つけまくってるコード見るとアホらしくなる
職業や用途あるいは個々人の技量によって求められるものは違うでしょうに、十把一絡げに議論して意味あるの?
153デフォルトの名無しさん
2019/08/01(木) 02:19:13.29ID:AVudDz+c >>152
元の質問者が何も分かってないから突っ込まれているだけで、問題点とか自分以外の人がどう認識しているかを知った上で、使う使わないって判断は好きにすればいいだろうよ。
元の質問者が何も分かってないから突っ込まれているだけで、問題点とか自分以外の人がどう認識しているかを知った上で、使う使わないって判断は好きにすればいいだろうよ。
154デフォルトの名無しさん
2019/08/01(木) 02:20:44.23ID:53RNnp/+ 意味無いと思うなら参加しなければいいだけ
趣味なら好きにすれば
趣味なら好きにすれば
155デフォルトの名無しさん
2019/08/01(木) 02:21:00.23ID:EAAzAfmw >>152
オレオレコードを一人で書いて満足するのが好きなら、別に止めはしない。
でもそんな主張をここでされても多分同意は得られないと思うよw
議論する気があるなら、みんなが分かるコードを書かないとだめでしょ。
オレオレコードを一人で書いて満足するのが好きなら、別に止めはしない。
でもそんな主張をここでされても多分同意は得られないと思うよw
議論する気があるなら、みんなが分かるコードを書かないとだめでしょ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- いじめられてる男子中学生だけど質問ある?
