【初心者歓迎】C/C++室 Ver.102【環境依存OK】

1デフォルトの名無しさん2017/11/04(土) 16:33:35.07ID:NYxCuvMY
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
http://codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1500329247/

171片山博文MZ ◆T6xkBnTXz7B0 2017/12/21(木) 17:15:07.21ID:fHSTQ7CK
>>170
ない。

1721682017/12/21(木) 17:25:55.41ID:FN6C0PcS
>>171 ありがとうございました。
CMake 勉強します。

173デフォルトの名無しさん2018/01/09(火) 19:29:59.07ID:cBwAL66C
ライブラリ作成の指南書みたいな本ってありますか。

174デフォルトの名無しさん2018/01/09(火) 22:23:30.03ID:9ubHCBZ8
環境によるんじゃ?

175デフォルトの名無しさん2018/01/10(水) 01:19:44.15ID:CtX3Z92R
とりあえず
c++のためのapiデザイン
でも読んでみるといいと思う

176デフォルトの名無しさん2018/01/10(水) 02:59:55.08ID:QjjLPcN0
読んでみるわ

177デフォルトの名無しさん2018/01/13(土) 06:17:45.46ID:hj3TLdcf
定数以外の名前に「 _ 」を使うのって良くないって聞いたけどどうなの?

178デフォルトの名無しさん2018/01/13(土) 09:08:14.97ID:P3TI7O0+
趣味とか宗教とかの話であって、別に使って問題ない
ただ名前の先頭だったり、2回連続で使ったりすると
予約語に引っかかることがあるので注意(定数の場合も)

179デフォルトの名無しさん2018/01/13(土) 09:13:05.82ID:M+vRxjCB
その辺有名ライブラリのルール付けとか調べてみるのもいいかもね

180デフォルトの名無しさん2018/01/13(土) 09:23:55.53ID:M+vRxjCB
GoogleがC++のスタイルガイド公開してる
これも参考になりそう

181デフォルトの名無しさん2018/01/16(火) 10:54:12.13
C++で何つくんの?
GUIプログラムならC#のほうが圧倒的に簡単だし

182デフォルトの名無しさん2018/01/16(火) 11:06:50.90ID:E1MTmeKy
CAD

183デフォルトの名無しさん2018/01/16(火) 11:07:58.52
そんな上級者にしか用途がない言語か

184デフォルトの名無しさん2018/01/16(火) 11:24:35.41ID:/aUGqjlJ
個人的にC/C++は高級なアセンブラだと思っている
C#とは存在するレイヤが違うから、比較条件として用途を挙げるのはちょっと違うかなって

185デフォルトの名無しさん2018/01/16(火) 11:25:50.16
で、何つくんの?
高級アセンブリの用途は?

186デフォルトの名無しさん2018/01/16(火) 12:09:46.86ID:J2S5K16W
画像処理
大規模ゲーム開発

187デフォルトの名無しさん2018/01/16(火) 12:32:40.41ID:6i0TmEx8
GoogleChrome

188デフォルトの名無しさん2018/01/16(火) 13:22:26.10ID:6uwiuQcq
ゲームとか速度が必要な場面でまだまだ使われてるでしょ

189デフォルトの名無しさん2018/01/16(火) 15:46:42.36ID:e8xaSAkW
CPUパワーを必要とするようなまとまった処理は
C/C++のような低級な高級言語が適している
組み込み用の小規模マイコンもCがほとんど

190デフォルトの名無しさん2018/01/16(火) 19:09:30.75ID:Vb1E5r0O
Pythonのライブラリも結局はCで作ってたりするしな。

191デフォルトの名無しさん2018/01/17(水) 00:06:48.74ID:kWLOq5lU
GUIはC#でWPFだけど、そこから使用するdllとか連携するサービスとかはc++。OSのAPIをいろいろ使う場合はC#だと面倒くさいからc++を選ぶ。

192デフォルトの名無しさん2018/01/17(水) 01:07:00.24ID:X2mlxDcY
OpenGLもC#か大変そうだな

193愛知人2018/01/17(水) 09:14:59.53
Unityでいいよね

194デフォルトの名無しさん2018/01/17(水) 11:15:20.21ID:X2mlxDcY
ライセンス料が只ならいいよ

195デフォルトの名無しさん2018/01/17(水) 11:23:31.36ID:4ILD3/U5
Unityでも速度が必要な場所はC++で書いて呼び出し

196愛知人2018/01/17(水) 11:48:22.30
なんでC++ってendlいるの?

197デフォルトの名無しさん2018/01/17(水) 12:24:58.46ID:/z6RTYd5
ちょっと何言ってるかわかんないです

198愛知人2018/01/17(水) 13:34:56.30
なんでprintf使わないの?

199デフォルトの名無しさん2018/01/17(水) 13:41:03.90ID:lhJfQamL
浪人と引き換えに無知を手に入れた男

200愛知人2018/01/17(水) 13:43:22.44
で、返答は?

201デフォルトの名無しさん2018/01/17(水) 14:07:42.46ID:l2H41H1D
>>198
<cstdio>は正しくC++だからprintf使っても構わん 味噌 よ
後々になって「iostreamはでかいし あんまりうみゃくいかないエビフリャー」いうことになった きしめん だしね
endlは、改行の無い出力と在る出力を統一的に(フォーマット使わずストリームで)扱うには必要でしょ ひつまぶし?

愛知語は詳しくないけど察し手羽先

202愛知人2018/01/17(水) 14:16:18.48
どうやったらこんなつまんないレスを返せるんだよ...
重症やな w

203デフォルトの名無しさん2018/01/17(水) 14:19:41.37ID:l2H41H1D
言うな 自分でも検索履歴に「愛知 名物」って残ってるの見て
「人生を無駄にした」と真顔で後悔してるところだから

204デフォルトの名無しさん2018/01/17(水) 15:03:17.62ID:MeUm47mp
何言ってんだこのバカ

205愛知人2018/01/17(水) 16:08:09.91
あらら、怒っちゃった(笑)

206デフォルトの名無しさん2018/01/17(水) 17:39:52.90ID:sykUBtM3
C++でしかできないもの作りたいだけど何かいいアイデアない?

207片山博文MZ ◆T6xkBnTXz7B0 2018/01/17(水) 17:52:07.55ID:89SqY/Kf
>>206
エクセルのような操作性の、画像レイアウト印刷アプリなんてどう?

208デフォルトの名無しさん2018/01/17(水) 18:18:50.66ID:sykUBtM3
>>207
印刷はしたくないです..

209デフォルトの名無しさん2018/01/17(水) 20:00:30.20ID:W2btjMLE
おs

210デフォルトの名無しさん2018/01/27(土) 06:58:59.63ID:1R9xhZBX
windowsとLinuxで動くクライアントアプリ開発してて、Linuxコンパイラは化石みたいなバージョンからgcc4.4をようやく使えるようになった
そこでC+11の一部が使えるようになったから使いたいと思ってる
ユーザにAPIを公開してるんだけど、ユーザがAPIを使うに際してはコンパイルオプションstdc++0xが必要なことにはしたくない。今までできてたのに、バージョンアップしたらコンパイルできなくなったとかいわれるからね。

ここで質問なんだけど、ユーザに公開しているヘッダファイルにC+11の記述がなければ、ユーザからの使い方は変わらないかな?手元で試してみた感じだと行けそうだって思ったけど、このへん危ないんじゃないのとか気をつけた方がいいよとかあれば意見よろしくです

211デフォルトの名無しさん2018/01/27(土) 08:45:12.76ID:x9sgfrz+
バイナリで配布するんだったらとりあえずシンボルをnmで取得して見比べてみるとか。

212デフォルトの名無しさん2018/01/27(土) 10:25:52.07ID:RqfNKOXi
ユーザからクロスコンパイラ提供してもらってバイナリ配布っす
nmコマンド、試す価値はありそうだありがとう

213デフォルトの名無しさん2018/01/28(日) 06:43:38.82ID:yhuRz+yt
以下のコードをgccでコンパイルすると

#include <iostream>
#include <functional>
using namespace std;

struct functor {
int& operator()(int& i) { return ++i; }
};

int main() {
int i = 0;
cout << functor{}(i) << endl; // 関数オブジェクトは問題なし
function<int& (int&)> lambda = [] (int& i) { return ++i; }; // コンパイルエラー
cout << lambda(i) << endl;
return 0;
}

「'main()::<ラムダ(int&)>' から非スカラ型 'std::function<int&(int&)>' への変換が要求されました」
というエラーになるのですが、どうしてでしょうか?
そもそもラムダ式は関数オブジェクトのシンタックシュガー、つまり等価なのではないんでしょうか?

214デフォルトの名無しさん2018/01/28(日) 07:45:35.06ID:kxFN6buW
>>213
戻り値がintになってる
戻り値の型を後置で書いてやればいいかな
function<int& (int&)> lambda = [] (int& i) -> int& { return ++i; };

215デフォルトの名無しさん2018/01/28(日) 22:25:05.79ID:yhuRz+yt
>>214
ありがとうございます。
戻り値の型を明示してあげないと値渡しになってしまうということですね。
勉強になりました。

216デフォルトの名無しさん2018/02/06(火) 23:57:09.32ID:ZZWnbRb2
typedef int myTypeA;
typedef int myTypeB;

class Test {
void set(myTypeA a);
void set(myTypeB b);
priate:
int A;
int B;
};

のような事例で、引数に応じて専用のセッターを用意したいのですが、
int型の2種類の引数に対して、上記のように書くとコンパイルエラーになってしまいます。
どのようにするのが良いでしょうか?

217デフォルトの名無しさん2018/02/07(水) 00:04:25.80ID:k5RJAFTX
structを使う?
struct my_TypeA{ int v;};

218デフォルトの名無しさん2018/02/07(水) 00:18:25.18ID:yuAfwWTK
なるほど、、、確かにtypedefだと別名になるだけですね
structかclassで別の型にしないとダメですね
ありがとうございます!

219デフォルトの名無しさん2018/02/07(水) 03:43:04.13ID:LQaGrglb
オブジェクト指向では、型による分岐処理は無くなる。
汎化

f(親型)

ここに、親型の子型であるA型・B型が入っても、正常に動くのが、オブジェクト指向

220デフォルトの名無しさん2018/02/09(金) 15:21:46.70ID:+q9wZMZv
などと訳のわからないこと(でもないが)を供述しており

221デフォルトの名無しさん2018/02/11(日) 04:59:49.56ID:9irhhPDg
C++には強いエイリアスが無いからなあ

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