C++相談室 part139

次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/

このスレもよろしくね。
【初心者歓迎】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

182165 (ワッチョイ df04-tiyD)2018/10/14(日) 16:32:31.63ID:izrX1EIe0
>>166
宅環境で後者。

FreeBSD以外でgcc8.2使ってる人だれかいませんかね?

183はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)2018/10/14(日) 18:03:31.93ID:rMQ7HlNZ0

184はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)2018/10/14(日) 19:57:55.19ID:rMQ7HlNZ0
>>182
念のために確認するけど、コンパイル時のコマンドは g++ だよね?
たぶん >>159 の書きぶりからすると、ちゃんと出来てるとは思うんだけど。

gcc コマンドに -std=c++11 を付けると C++ としてコンパイルはしてくれるけど、
サーチパスが gcc と g++ では違ったりすることもあるから、
ヘッダファイルを見つけられないとか標準ライブラリのリンクに失敗するとかいうことはある。

でも、ヘッダファイルが見つからないんじゃなくて、
ヘッダファイル中にあるはずの宣言がされてないっていうのがよくわかんないね。
実際に cmath の中身を辿ってみるしかないんじゃない?

185デフォルトの名無しさん (ブーイモ MMcf-NsMu)2018/10/14(日) 21:17:29.63ID:WLfX4fFSM
cmathはM_PIが未定義とか言われてハマったことはあるな

186デフォルトの名無しさん (ブーイモ MMcf-NsMu)2018/10/14(日) 21:20:39.47ID:WLfX4fFSM
これだな
#define _USE_MATH_DEFINES

187デフォルトの名無しさん (ワッチョイ bf9f-TTlK)2018/10/14(日) 21:51:25.46ID:cnUSrnZ50
めんどくセーからdockerでも使ってメジャーな環境でやればいい。

188デフォルトの名無しさん (ワッチョイ a77e-4Hut)2018/10/14(日) 22:16:35.02ID:1QMkRc1k0
数学定数は標準に欲しいが言い出すとキリないからなあ

189デフォルトの名無しさん (ワッチョイ 47c3-k+IC)2018/10/14(日) 22:43:26.50ID:wo9o1/Qh0
でもπとeくらいは用意しとけよ標準

190デフォルトの名無しさん (ワッチョイ 5f7e-4Hut)2018/10/14(日) 22:54:22.32ID:iHlUkB5I0
MSVCのかつてのマクロでひどい目に会ってるから定数を用意していなくて正解

min,maxの事だな。

マクロじゃなければいいんだろうということでstd名前空間にconstexpr変数ならどうだろう?

192デフォルトの名無しさん (ワッチョイ df12-gma9)2018/10/15(月) 10:38:16.29ID:FjE86ied0
smallも定義されてた

193デフォルトの名無しさん (ワッチョイ 2723-NsMu)2018/10/15(月) 10:42:34.46ID:/DZZgAIK0
extern(C){
}
みたいに
#defineとかならまとめて
namespace HOGE {
}
に入れてしまえれば良かった

194159 (ワッチョイ df04-tiyD)2018/10/15(月) 12:12:04.88ID:EhepTNcp0
環境依存問題でしたが一応解決しましたので、軽く報告。

<cmath>内で
#ifdef _GLIBCXX_USE_C99_MATH_TR1
以下で囲まれた部分がばっさり切られていたので
/環境依存パス/bits/c++config.hを調べてみると、
#undefされていたのが直接の原因。

#defien ... 1
に書き換えてみたところ、
今度は<cmath>内の
using ::tgammal;他4行がエラーになりましたが、
どうもFreeBSDの<math.h>にはその4関数がない模様。
#tgammafとか引数違いの類似物はある
結局その4行をコメントアウトすることでコンパイルを通すことに成功しました。
GLM最新版も使えたのでOKです。

まあ思うところはありますが、
gcc派 vs 規格派 vs マイナーOS派の話になりそうなので解決とします。

195デフォルトの名無しさん (ブーイモ MM0b-LEUL)2018/10/15(月) 12:50:55.56ID:A4+xGAqjM
#include <tr1/cmath>
だったら使えたのかな?

196はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)2018/10/15(月) 13:30:53.01ID:rnCB9VMH0
>>194
それは環境依存というよりそのあたりのパッケージを管理してるメンテナの手が回ってない感じでは……。
Linux に比べると BSD 系はだいぶん人口が少ないらしいし、そういうことも致し方ないのやもしれぬ。

197デフォルトの名無しさん (ワッチョイ a75c-4Hut)2018/10/15(月) 14:31:54.20ID:7k7Dj2O30
g++ -std=c++17は試したか?
tr1だった関数がstd直下に来てるぞ

198デフォルトの名無しさん (ワッチョイ ff8b-CE2c)2018/10/15(月) 16:08:03.29ID:FzvdOK9e0
ドラクエ10プレイヤーからの質問。

死んでいるのに動けてしまう『死亡ラグ』
http://egg.5ch.net/test/read.cgi/dqo/1539560522/

改善の余地があると思えますか?

199デフォルトの名無しさん (バットンキン MMbf-CE2c)2018/10/15(月) 16:26:28.74ID:tvJDbt95M
ドラゴンクエスト10の下請けプログラマーはC/C++の名人ばかりですよ?

200デフォルトの名無しさん (ワッチョイ c78a-2+Lk)2018/10/15(月) 16:28:24.70ID:/mdlwLZy0
>>198
猫耳猫オンラインを目指しているのでしょう

201デフォルトの名無しさん (バットンキン MMbf-CE2c)2018/10/15(月) 16:44:25.17ID:tvJDbt95M
友人がドラクエ10プログラマーなんだけど、C/C++については何でも彼に聞くようにしている。

202デフォルトの名無しさん (ワッチョイ df04-tiyD)2018/10/15(月) 17:23:10.52ID:EhepTNcp0
>>196
書いてませんでしたけど、パッケージじゃなくて全部ソースから./confugre以下ビルドして入れてます。
まあそのconfigureが「4関数足りないから切っちまえ」と判断した本人ですが。

203デフォルトの名無しさん (ワッチョイ 07e0-SmB1)2018/10/15(月) 21:14:12.69ID:E6pr56BO0
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

204デフォルトの名無しさん (ワッチョイ dff7-1yL/)2018/10/16(火) 05:10:47.74ID:2DZhjJ9l0
C++がオワコンってマ?
Cの次に C++→C#→ほかの言語 の順番で勉強しようと思ってたんやが・・・
せっかく脱ニートしようと思ったのに水差された気分やわ
寝るわクソが

205デフォルトの名無しさん (ワッチョイ 47c3-k+IC)2018/10/16(火) 08:02:21.90ID:oqEWuMcG0
20年前からオワコンと言われ続けてるからオワコンが嫌いならやめた方がいいよ

206デフォルトの名無しさん (オッペケ Sr9b-aaey)2018/10/16(火) 08:05:29.93ID:7CCe71Wvr
C++11 以降、いろんな可能性があるように思えてきた

207デフォルトの名無しさん (ブーイモ MMff-LEUL)2018/10/16(火) 08:22:47.24ID:RwiWe9L4M
ちな昨日のニュース記事。
http://egg.5ch.net/test/read.cgi/bizplus/1539603497/
C++erも困惑の結果。

208デフォルトの名無しさん (スププ Sdff-xHoY)2018/10/16(火) 08:31:56.14ID:ChMhlbB0d
C++11以降は神

209デフォルトの名無しさん (ワッチョイ dff7-6Dpv)2018/10/16(火) 08:39:41.73ID:2DZhjJ9l0
神なんやな
よし次はC++やるわ
ありがとな

210デフォルトの名無しさん (ワッチョイ a71e-lx5O)2018/10/16(火) 09:38:01.41ID:VHaobsT+0
C++やるとか何プログラマーになるきよ。
つか、言語増やせばいいってもんじゃねぇぞ

211デフォルトの名無しさん (JP 0H7b-lx5O)2018/10/16(火) 09:47:44.01ID:VHaobsT+H
まぁC++はちょっと別格にうざいけど、言語だけ増やしても役立たずの烙印だぞ。そんな言語増やすことに一生懸命になることより一つアプリ作れるほうが重要だわ。
だから、例えばJavaを使ってandroidアプリ開発できるとか。
要は言語以外にクラスライブラリやUIフレームワークの知識や経験を身に付けることに一生懸命頑張ったほうがいいと思う。

212デフォルトの名無しさん (ワッチョイ df7c-4Hut)2018/10/16(火) 10:39:57.45ID:kKW6G61E0
>>208
神は全盛時までのCだろ
無駄のない細マッチョ

思いつきでゴテゴテ重装備するC++やC99以後はそうじゃない
C++11はそれまでを反省はしてるけど重装備指向は変わってない

オワコンだとか安易な神だとか、そういう子供っぽい発送だとどうせすぐに飽きてやめるんじゃないかと思えてくる。

214デフォルトの名無しさん (ワッチョイ dff7-6Dpv)2018/10/16(火) 10:55:42.15ID:2DZhjJ9l0
大丈夫やで
まず覚悟があるんや
ワイは死ぬまで趣味に生きると決めとるんや
それに動機もあるで
Android NDKでC++でもAndroidアプリ作れると聞いとるからな
ほんで一攫千金の大逆転や

いいかみんな、どんな新規格を使って作るかが目的じゃないぜ?

まあ使いたくなるんだけどね

216デフォルトの名無しさん (アウウィフ FFeb-NsMu)2018/10/16(火) 11:56:04.30ID:YLHbxnbGF
>>206
せやな

217デフォルトの名無しさん (アウウィフ FFeb-NsMu)2018/10/16(火) 11:57:59.03ID:YLHbxnbGF
>>212
装備にこだわってる人が多いみたいだけど
エラーメッセージをもっと判りやすくするべき

218はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)2018/10/16(火) 13:21:59.25ID:DXK1BkAG0
>>215
新しい機能はそれを使った方が良くなる (場合もある) から追加してるわけだし、
どういうときに便利なのかに慣れるためには最初は過剰なくらいに使ってみてもいいと思うけどね。
いきなり本格的に導入する前に実験的なプロジェクトで試すくらいはした方がいいかもしれんが。

219デフォルトの名無しさん (ワッチョイ 27b3-aaey)2018/10/16(火) 13:45:02.82ID:DjFJv3DN0
以前は完全にbetter Cとしてしか見ていなかったが、STLとかBoostを積極的に使うようになってから面白くなってきた

220デフォルトの名無しさん (スププ Sdff-xHoY)2018/10/16(火) 14:05:38.44ID:ChMhlbB0d
「うちはSTL禁止」と言われて辞めたくなったw

>>220
稀によくあるw
理由は「他のメンバーが読めないから」w

222デフォルトの名無しさん (アウウィフ FFeb-NsMu)2018/10/16(火) 14:39:57.19ID:YLHbxnbGF
BOOST禁止は見かけるけどSTL禁止はひどいな

223デフォルトの名無しさん (ワッチョイ 07e0-LO+h)2018/10/16(火) 14:45:06.11ID:GbK/byr70
いやまて、その真意は動的メモリ割り当てを減らしたい、かもしれんぞ

224デフォルトの名無しさん2018/10/16(火) 15:10:13.15ID:RUqX36lE0
言語増やせばいいってもんじゃないけど、プロのプログラマなら一通りどの言語も少なくともアマよりは使いこなせるでしょ

225デフォルトの名無しさん (アウウィフ FFeb-NsMu)2018/10/16(火) 16:24:19.15ID:YLHbxnbGF
必要なのは言語の多寡ではない
CS(Customer Satisfaction ではないぞ)への理解

標準ヒープ禁止ならSTL禁止にはなりうるだろうな
アロケータ指定すりゃいいけど結構不便だし

227はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)2018/10/16(火) 16:42:01.42ID:DXK1BkAG0
何が STL なのかっていうのは意見が分かれる部分もあるからなぁ。
便宜的に STL と呼ばれているものは仕様的には完全に C++ の一部で、
他の規定と区別するものは何もない。

Wikipedia にも簡単な歴史が書かれてるけど、
https://ja.wikipedia.org/wiki/Standard_Template_Library#%E6%AD%B4%E5%8F%B2
ここには「stringのようなその他のC++標準ライブラリの機能にも影響を与え」
とあり、 string 自体は STL ではないかのようにも読める。
でも、 string が STL の一部かというとだいたいの人は STL だと思ってるだろうし。

他の人が読めないからっていうのが理由ならテンプレート自体がもうダメってことなんかな。

STLってあくまで俗称やろ、定義は曖昧
俺も「読めないからテンプレート使わないでくれ」と言われたことはあるなぁ
PC向けなんだしSTLくらいは我慢してもらったけど

でも世の中標準のヒープ自体使っちゃいけない業種、結構あるやろ
コンシューマゲーム機も大抵そうやで
アロケータ渡せばいいって言われるだろうけど正直不便

229はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)2018/10/16(火) 17:20:07.77ID:DXK1BkAG0
つっても、そこそこの規模のプログラムだと
STL は使わないにしても
ちゃんとしたフレームワークを用意するやろ?
そうでもないのかな。 割と泥臭くやってたりするのかな。

230デフォルトの名無しさん (ワッチョイ c708-4Hut)2018/10/16(火) 17:24:00.16ID:5Df0UEAr0
>>215
当たり前
欲しくて欲しくて渇望してた機能がやっと来るのがC++だから
使いたくなるのは自明だ

231デフォルトの名無しさん (オイコラミネオ MMfb-u0q9)2018/10/16(火) 17:28:01.22ID:rnwRcPOpM
X他の人が読めない
O無能が読めない
実際は多くがこうな訳だけど仕方ないよね
お勉強全くしない奴少なくないしそれに合わせないとだもんね

>>229
社内ライブラリはもちろんあるけど
検索機能を含むコンテナとなるとやっぱりSTLが楽なんだよなぁ
さすがに二分木やハッシュで検索、まで自社で作るほど
そういう用途に頻繁には遭遇しない

ほんとはそういう中小企業でPC向け、ってなったらそれこそ標準ライブラリには頼れよと言いたかったけどね

新着レスの表示
レスを投稿する