エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1500329247/
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/11/04(土) 16:33:35.07ID:NYxCuvMY204デフォルトの名無しさん
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++でしかできないもの作りたいだけど何かいいアイデアない?
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の記述がなければ、ユーザからの使い方は変わらないかな?手元で試してみた感じだと行けそうだって思ったけど、このへん危ないんじゃないのとか気をつけた方がいいよとかあれば意見よろしくです
そこで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コマンド、試す価値はありそうだありがとう
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&)>' への変換が要求されました」
というエラーになるのですが、どうしてでしょうか?
そもそもラムダ式は関数オブジェクトのシンタックシュガー、つまり等価なのではないんでしょうか?
#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; };
戻り値がintになってる
戻り値の型を後置で書いてやればいいかな
function<int& (int&)> lambda = [] (int& i) -> int& { return ++i; };
215デフォルトの名無しさん
2018/01/28(日) 22:25:05.79ID:yhuRz+yt216デフォルトの名無しさん
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種類の引数に対して、上記のように書くとコンパイルエラーになってしまいます。
どのようにするのが良いでしょうか?
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;};
struct my_TypeA{ int v;};
218デフォルトの名無しさん
2018/02/07(水) 00:18:25.18ID:yuAfwWTK なるほど、、、確かにtypedefだと別名になるだけですね
structかclassで別の型にしないとダメですね
ありがとうございます!
structかclassで別の型にしないとダメですね
ありがとうございます!
219デフォルトの名無しさん
2018/02/07(水) 03:43:04.13ID:LQaGrglb オブジェクト指向では、型による分岐処理は無くなる。
汎化
f(親型)
ここに、親型の子型であるA型・B型が入っても、正常に動くのが、オブジェクト指向
汎化
f(親型)
ここに、親型の子型であるA型・B型が入っても、正常に動くのが、オブジェクト指向
220デフォルトの名無しさん
2018/02/09(金) 15:21:46.70ID:+q9wZMZv などと訳のわからないこと(でもないが)を供述しており
221デフォルトの名無しさん
2018/02/11(日) 04:59:49.56ID:9irhhPDg C++には強いエイリアスが無いからなあ
222デフォルトの名無しさん
2018/02/23(金) 16:21:25.57ID:UAqVoMsi C++じvtable参照することになるから遅いだろ
223デフォルトの名無しさん
2018/02/25(日) 04:05:35.43ID:Zrtx8k52 >>216
セットする値の名称にする
例えば三角形を表すオブジェクトで底辺と高さをセットするのであれば、base()とheight()になる
プロパティとして使うのだから、setXXX()みたいに書かなくてもいい
setter単独で存在することはありえないからgetterも設けること
setterって余り必要ない
コンストラクタからの初期化で十分の場合が多い
セットする値の名称にする
例えば三角形を表すオブジェクトで底辺と高さをセットするのであれば、base()とheight()になる
プロパティとして使うのだから、setXXX()みたいに書かなくてもいい
setter単独で存在することはありえないからgetterも設けること
setterって余り必要ない
コンストラクタからの初期化で十分の場合が多い
224デフォルトの名無しさん
2018/02/25(日) 14:23:16.60ID:8l5JrV0a >>219
だぶるでぃすぱっち
だぶるでぃすぱっち
225デフォルトの名無しさん
2018/03/03(土) 13:43:59.95ID:Vl4EAVf3 2の累乗でないときのmod演算の高速化の方法、何かありませんか?
そこらへんはコンパイラで最適化されるんですかね
そこらへんはコンパイラで最適化されるんですかね
226デフォルトの名無しさん
2018/03/03(土) 14:09:48.07ID:xC+xvi0u227デフォルトの名無しさん
2018/03/03(土) 14:14:16.62ID:Vl4EAVf3228デフォルトの名無しさん
2018/03/06(火) 00:16:25.34ID:EXuXevGu ユニークポインターにキャラの可変配列をヒープからとってリセットしたはいいけど、デリーターって簡単に実装/定義できる?例が欲しい。
229デフォルトの名無しさん
2018/03/06(火) 00:47:05.22ID:yCnPPW+5 mutex g_Mtx;
int g_Val = 0;
int Func( int A, int B )
{
int Val = A * B;
lock_guard<mutex> Lock( g_Mtx );
return g_Val = Val;
}
void ThreadFunc0()
{
}
int g_Val = 0;
int Func( int A, int B )
{
int Val = A * B;
lock_guard<mutex> Lock( g_Mtx );
return g_Val = Val;
}
void ThreadFunc0()
{
}
230デフォルトの名無しさん
2018/03/06(火) 00:55:45.44ID:yCnPPW+5 mutex g_Mtx;
すみません、途中で送信してしまいました。
int g_Val = 0;
int Func( int A, int B )
{
int Val = A * B;
lock_guard<mutex> Lock( g_Mtx );
return g_Val = Val;
}
void ThreadFunc0()
{
int Val = Func( 2, 3 );
// Valを参照する処理
}
void ThreadFunc1()
{
lock_guard<mutex> Lock( g_Mtx );
// g_Valを参照する処理
}
上記のようなスレッド関数が非同期に実行されるとき、
Func()はスレッドセーフ(g_Val書き換え中に参照されない)でしょうか?
(1)lock_guard<mutex>によるミューテックスロック
(2)g_Valの書き換え
(3)戻り値を読み出し元スレッドにコピー(あるいはムーブ)
(4)lock_guard<mutex>がスコープから外れアンロック
というシーケンスを期待しています。
すみません、途中で送信してしまいました。
int g_Val = 0;
int Func( int A, int B )
{
int Val = A * B;
lock_guard<mutex> Lock( g_Mtx );
return g_Val = Val;
}
void ThreadFunc0()
{
int Val = Func( 2, 3 );
// Valを参照する処理
}
void ThreadFunc1()
{
lock_guard<mutex> Lock( g_Mtx );
// g_Valを参照する処理
}
上記のようなスレッド関数が非同期に実行されるとき、
Func()はスレッドセーフ(g_Val書き換え中に参照されない)でしょうか?
(1)lock_guard<mutex>によるミューテックスロック
(2)g_Valの書き換え
(3)戻り値を読み出し元スレッドにコピー(あるいはムーブ)
(4)lock_guard<mutex>がスコープから外れアンロック
というシーケンスを期待しています。
231230
2018/03/06(火) 00:58:37.27ID:yCnPPW+5 誤:読み出し元スレッド
正:呼び出し元スレッド
正:呼び出し元スレッド
232230
2018/03/07(水) 00:28:47.80ID:+JS1hm36 すみません、他スレで聞きます。
233デフォルトの名無しさん
2018/03/07(水) 19:00:17.77ID:BpTZedcA 事情があって下記の型の関数を、
void Func1(char a);
下記の型の関数ポインタに代入して呼びたいと思っています。
int*(*p)(int*);
p = (int*(*)(int*))Func1;
p((int*)123);
動作としてはFunc1(123)と呼んだときと同じものを期待しており、
試したところそれっぽく動作しているのですが、
致命的な問題等あります?
"暴走の危険あり"など。
void Func1(char a);
下記の型の関数ポインタに代入して呼びたいと思っています。
int*(*p)(int*);
p = (int*(*)(int*))Func1;
p((int*)123);
動作としてはFunc1(123)と呼んだときと同じものを期待しており、
試したところそれっぽく動作しているのですが、
致命的な問題等あります?
"暴走の危険あり"など。
234デフォルトの名無しさん
2018/03/07(水) 19:20:05.55ID:/Jrz1mw6 スタックに積むサイズは通常int
long longとかで無ければ実害は無い
long longとかで無ければ実害は無い
235デフォルトの名無しさん
2018/03/07(水) 19:29:05.35ID:iizJnzkK >>233
C11の6.3.2.3の8によると、the behavior is undefinedだ。
たとえばcharが4バイトに自動昇格して、ポインタが8バイトだったりすると、
どうなるかわかったもんじゃない。鼻からなんちゃらだ。
C++は知らん。
C11の6.3.2.3の8によると、the behavior is undefinedだ。
たとえばcharが4バイトに自動昇格して、ポインタが8バイトだったりすると、
どうなるかわかったもんじゃない。鼻からなんちゃらだ。
C++は知らん。
236片山博文MZ ◆T6xkBnTXz7B0
2018/03/07(水) 19:29:59.98ID:Ssa+vNsg sizeof(int) != sizeof(int*)の場合(例えばx64)、どうなるかな?
237デフォルトの名無しさん
2018/03/07(水) 19:34:38.56ID:iizJnzkK そうそう、undefinedのあとはほんとに何が起きるかわからんよ。
コンパイラが何をしでかしても文句言えない。
たまたま今の環境で動いても、明日コンパイラを更新したら挙動が変わりうる。
コンパイラが何をしでかしても文句言えない。
たまたま今の環境で動いても、明日コンパイラを更新したら挙動が変わりうる。
238デフォルトの名無しさん
2018/03/07(水) 20:01:22.38ID:MtWgjxh8 「事情があって」の事情を解消する方が安全だと思うけど…。
void Func1(char a); を呼び出すラッパ関数を使うのはどうだろ?
int* Func1_wrapper(int *p)
{
uintptr_t arg = (uintptr_t)p;
Func1((char)arg); // 縮小変換が危険
return NULL;
}
int* (*p)(int*);
p = Func1_wrapper;
p((int*)123); // 明らかに不正アラインメントだが
void Func1(char a); を呼び出すラッパ関数を使うのはどうだろ?
int* Func1_wrapper(int *p)
{
uintptr_t arg = (uintptr_t)p;
Func1((char)arg); // 縮小変換が危険
return NULL;
}
int* (*p)(int*);
p = Func1_wrapper;
p((int*)123); // 明らかに不正アラインメントだが
239はちみつ餃子 ◆8X2XSCHEME
2018/03/07(水) 20:34:34.64ID:TWOfgg7C240デフォルトの名無しさん
2018/03/10(土) 22:50:07.25ID:tBgkA+tH C++で窓出してプログラム組みたい時ってどういう風にするもんなんでしょうか
windows.hで一つ一つボタンの位置を設定してハンドルやらコールバックと格闘するもんなんでしょうか
それとも何か気の利いた便利なライブラリとかがあるんでしょうか
というかこの手のライブラリやフレームワーク的なものを探したりしたい場合はどういう場所から情報を集めるものなんでしょうか
それっぽいキーワードでgoogleで検索して探そうとしても上手く情報を見つけられないのですが、根気よくページを確認していくしかないのでしょうか
windows.hで一つ一つボタンの位置を設定してハンドルやらコールバックと格闘するもんなんでしょうか
それとも何か気の利いた便利なライブラリとかがあるんでしょうか
というかこの手のライブラリやフレームワーク的なものを探したりしたい場合はどういう場所から情報を集めるものなんでしょうか
それっぽいキーワードでgoogleで検索して探そうとしても上手く情報を見つけられないのですが、根気よくページを確認していくしかないのでしょうか
>>240
基本的には win32api を使うことになり、私は C++ からwin32api( ::DefWindowProc() とか)を個別呼び出している
気の利いたライブラリのことはよく知らない
基本的には win32api を使うことになり、私は C++ からwin32api( ::DefWindowProc() とか)を個別呼び出している
気の利いたライブラリのことはよく知らない
242デフォルトの名無しさん
2018/03/10(土) 23:18:25.22ID:tBgkA+tH やっぱりそういう感じになるんですね
頑張って勉強します
頑張って勉強します
243デフォルトの名無しさん
2018/03/10(土) 23:42:00.51ID:4x8PIJN4 >>240
Windowsに特化するなら Win32APIのほかにMFCやWTLや.NET framework(C++/CLIで良ければ)などのライブラリを使う
サードパーティならC++ BuilderのVCLとかあとはクロスプラットホームのQtとかGtk+とかwxWidgetsとか他にもあると思うけど
最近はデスクトップアプリが落ち目なのでこれという定番はなくて目的に応じて分散しているのでは?
自力で情報が集められない程度ならC++でGUIなんて止めとけという気がしないでもない
Windowsに特化するなら Win32APIのほかにMFCやWTLや.NET framework(C++/CLIで良ければ)などのライブラリを使う
サードパーティならC++ BuilderのVCLとかあとはクロスプラットホームのQtとかGtk+とかwxWidgetsとか他にもあると思うけど
最近はデスクトップアプリが落ち目なのでこれという定番はなくて目的に応じて分散しているのでは?
自力で情報が集められない程度ならC++でGUIなんて止めとけという気がしないでもない
244デフォルトの名無しさん
2018/03/11(日) 00:23:13.22ID:5+tjHPTy ありがとうございます。それぞれ見てみます
245デフォルトの名無しさん
2018/03/11(日) 00:43:28.70ID:QedwXA9H vs2010以降ならWIN32SDKベースでも雛型吐いてくれるだろうに
246片山博文MZ ◆T6xkBnTXz7B0
2018/03/11(日) 03:53:08.43ID:4ez4tjCr >>240
ボタンの配置などは、リソースエディタでダイアログテンプレートを作ってDialogBox関数を呼べば、細かい調整ができる。
イベント駆動やメッセージ送信などについては、<windowsx.h>で提供されるメッセージクラッカーやマクロを使えば便利になる。
私が複雑なことをする場合は、MZC4という自作のクラスライブラリを使ってる。
ボタンの配置などは、リソースエディタでダイアログテンプレートを作ってDialogBox関数を呼べば、細かい調整ができる。
イベント駆動やメッセージ送信などについては、<windowsx.h>で提供されるメッセージクラッカーやマクロを使えば便利になる。
私が複雑なことをする場合は、MZC4という自作のクラスライブラリを使ってる。
247片山博文MZ ◆T6xkBnTXz7B0
2018/03/11(日) 03:59:42.40ID:4ez4tjCr HANDLE_MSGマクロによるメッセージクラッカーという仕組みを使えば、ウィンドウプロシージャやダイアログプロシージャの記述が楽になる。
私はさらに、HANDLE_MSGの呼び出し先の関数の入力を楽にする自作のMsgCrackというツールを使っている。
私はさらに、HANDLE_MSGの呼び出し先の関数の入力を楽にする自作のMsgCrackというツールを使っている。
248はちみつ餃子 ◆8X2XSCHEME
2018/03/11(日) 04:12:58.32ID:f5R2yX0u WinRT が綺麗にまとまってると思う。
https://github.com/Microsoft/cppwinrt
Windows API を現代的な C++ に合わせて整理したものなので、
C++ 的にある程度まともな感じがする。
昔は仕方がなかったんだろうけど、
今にしてみればメッセージクラッカーっていかにもクソダサい方法だよな〜。
https://github.com/Microsoft/cppwinrt
Windows API を現代的な C++ に合わせて整理したものなので、
C++ 的にある程度まともな感じがする。
昔は仕方がなかったんだろうけど、
今にしてみればメッセージクラッカーっていかにもクソダサい方法だよな〜。
249デフォルトの名無しさん
2018/03/11(日) 10:27:16.51ID:zWe+i43K >>240
tcl/tkが一番手軽
tcl/tkが一番手軽
250デフォルトの名無しさん
2018/03/11(日) 10:40:38.07ID:1J69PCFW Win32プログラミングスレあったっけ
251デフォルトの名無しさん
2018/03/11(日) 10:51:25.22ID:QedwXA9H Win32API質問箱 Build124
http://mevius.5ch.net/test/read.cgi/tech/1510395780/
http://mevius.5ch.net/test/read.cgi/tech/1510395780/
252デフォルトの名無しさん
2018/03/11(日) 10:55:00.37ID:zWe+i43K Win32APIスレは限定的だからGUI一般スレみたいなのの方を紹介しようと思ったが面倒なので
次の方どうぞ
↓
次の方どうぞ
↓
253デフォルトの名無しさん
2018/03/11(日) 11:28:30.29ID:1J69PCFW >>251
どうも
どうも
254デフォルトの名無しさん
2018/03/12(月) 02:15:34.18ID:Cvix3isA 何度も呼ばれる関数内ではローカル変数をstaticにした方が速いのですか?
256デフォルトの名無しさん
2018/03/12(月) 02:23:59.34ID:Cvix3isA >>255
さいですか ありがとうございました
さいですか ありがとうございました
257デフォルトの名無しさん
2018/03/12(月) 02:50:45.99ID:SGROmA8V 皆様はプログラムを遅くし過ぎない為に気をつけている事などありますか?
速さを突き詰める為の工夫というより、誤って異常に処理時間のかかるようなプログラムを作らないようにする為にはどのような事を意識すると良いのでしょうか
速さを突き詰める為の工夫というより、誤って異常に処理時間のかかるようなプログラムを作らないようにする為にはどのような事を意識すると良いのでしょうか
258デフォルトの名無しさん
2018/03/12(月) 03:02:50.40ID:9wDOvV2B staticの方が速い理由なんて一つも無いような
あまり呼ばれない場合はstaticの方が遅いよね、キャッシュ的に
マルチスレッドで邪魔だし、必要がある時以外は使うもんじゃないよ
あまり呼ばれない場合はstaticの方が遅いよね、キャッシュ的に
マルチスレッドで邪魔だし、必要がある時以外は使うもんじゃないよ
259デフォルトの名無しさん
2018/03/12(月) 03:20:38.17ID:IdW8RVi3 >>257
メモリアクセスのコストだあ
メモリアクセスのコストだあ
260デフォルトの名無しさん
2018/03/12(月) 03:57:56.72ID:SGROmA8V >>258
多分、メモリを毎回確保し直す事や、コンストラクタを何度も呼ぶ事により処理が遅くなると考えたのではないでしょうか
多分、メモリを毎回確保し直す事や、コンストラクタを何度も呼ぶ事により処理が遅くなると考えたのではないでしょうか
261デフォルトの名無しさん
2018/03/12(月) 04:48:35.89ID:Ajs1ZroQ262デフォルトの名無しさん
2018/03/12(月) 08:13:41.87ID:0T8K0H1S >>257
ファイルアクセスのような重い処理とか深いループの中の計算処理とかは必要に応じて適切なデータ構造やアルゴリズムをあらかじめ検討しておくけど、頻度が少なく問題にならない箇所は分かりやすさ実装しやすさ優先で無理に速度は追求しないかな。
あとは将来的に性能改善が必要になることもあり得るから基本的には柔軟性のある変更に強い設計を普段から意識しておくとか。
ファイルアクセスのような重い処理とか深いループの中の計算処理とかは必要に応じて適切なデータ構造やアルゴリズムをあらかじめ検討しておくけど、頻度が少なく問題にならない箇所は分かりやすさ実装しやすさ優先で無理に速度は追求しないかな。
あとは将来的に性能改善が必要になることもあり得るから基本的には柔軟性のある変更に強い設計を普段から意識しておくとか。
263はちみつ餃子 ◆8X2XSCHEME
2018/03/12(月) 12:47:06.75ID:wZFlYBXj 計算量とかメモリ使用量のオーダーは気にするけど、オーダーが変わらないレベルの差はそんなに気にしてもしょうがない。
264デフォルトの名無しさん
2018/03/12(月) 16:25:47.91ID:JoWTM6VO265デフォルトの名無しさん
2018/03/12(月) 17:58:03.22ID:WDt4qsqW 待て待て、>>257は速度追求の話ではないだろう
無駄なループを通らせないとかそういう話でしょ?
無駄なループを通らせないとかそういう話でしょ?
266はちみつ餃子 ◆8X2XSCHEME
2018/03/13(火) 04:04:12.70ID:jwCzlKtk エッジケースで極端なことになってしまうって話かな?
そういうのは単に気をつけるしかしゃーない。
発覚したときに直せるような体制にしておけ〜
そういうのは単に気をつけるしかしゃーない。
発覚したときに直せるような体制にしておけ〜
267デフォルトの名無しさん
2018/03/13(火) 11:25:42.37ID:nL3Sy1ZA268デフォルトの名無しさん
2018/03/13(火) 11:43:48.99ID:WyB9s+s4 クラスAのメンバ関数へのアクセスをクラスBのみに許すにはどうすればいいですか?
(メンバ関数をfriend指定するのはBがAのプライベートメンバにもアクセスできてしまうのでNGです)
(メンバ関数をfriend指定するのはBがAのプライベートメンバにもアクセスできてしまうのでNGです)
269デフォルトの名無しさん
2018/03/13(火) 13:15:04.74ID:WyB9s+s4 自己解決
passkeyイディオムを使えばいいんですね
言語仕様でサポートしてほしい気もしますが
passkeyイディオムを使えばいいんですね
言語仕様でサポートしてほしい気もしますが
270デフォルトの名無しさん
2018/03/15(木) 23:07:46.82ID:rOhYRyTV できる人にとってはくだらないことなんだと思うのですが、
char* c;
char *c;
この2つは一緒なのですか?
char* c;
char *c;
この2つは一緒なのですか?
271デフォルトの名無しさん
2018/03/15(木) 23:12:48.58ID:jcfpYhJu char * c;
とか
char
*
c
;
も含めて一緒
とか
char
*
c
;
も含めて一緒
>>270
一緒ですが個人的に後者を推奨します
一緒ですが個人的に後者を推奨します
273デフォルトの名無しさん
2018/03/15(木) 23:21:50.62ID:rOhYRyTV274デフォルトの名無しさん
2018/03/15(木) 23:24:52.27ID:dUMa9unA275はちみつ餃子 ◆8X2XSCHEME
2018/03/15(木) 23:48:02.28ID:VBbQqJBt ワイはアスタリスクを型名の方に寄せて、複数の変数の宣言をまとめないスタイルを推しておるやぞ。
char* a;
char* b;
まあ人によって色々やね。
char* a;
char* b;
まあ人によって色々やね。
276デフォルトの名無しさん
2018/03/15(木) 23:48:51.41ID:ipLBerzI そんな迷うならtypedefしてしまえ
277はちみつ餃子 ◆8X2XSCHEME
2018/03/15(木) 23:52:42.60ID:VBbQqJBt C++ なら std::add_pointer を使うのも手やぞ。
普段から使うには綴りが長い気もするな。
普段から使うには綴りが長い気もするな。
278デフォルトの名無しさん
2018/03/16(金) 00:04:03.30ID:/SwLgzhl ワイも後ろに寄せるスタイルの方が好きやな
別に自由ではあるけど、前に寄ってるとなんか違和感あるわ
別に自由ではあるけど、前に寄ってるとなんか違和感あるわ
279デフォルトの名無しさん
2018/03/16(金) 00:12:21.27ID:eqCACABM この話始まるとスレが荒れるわけだが。
俺は
char *a;
int & ref;
だ。
俺は
char *a;
int & ref;
だ。
280はちみつ餃子 ◆8X2XSCHEME
2018/03/16(金) 00:27:41.31ID:5DWUPgeG C++ だとスッポスッポ先生が (というより D&E の文中にあるコードが) アスタリスクを型名にくっつけるスタイルで書いてあるから、
設計者的にはこれが推しなんやろなて思うたんや。
設計者的にはこれが推しなんやろなて思うたんや。
281デフォルトの名無しさん
2018/03/16(金) 00:49:37.90ID:7Nt6p3N1 そもそもCならまだわかるがC++になってもこの謎仕様が改善されてないのがおかしいわな
282デフォルトの名無しさん
2018/03/16(金) 01:19:43.79ID:pAByTZwR char *a;派だがキャストは(char*)だな
283デフォルトの名無しさん
2018/03/16(金) 06:18:52.71ID:hczQTGC7 両方に空白入れたり
両方詰めたらどうなるん
両方詰めたらどうなるん
284デフォルトの名無しさん
2018/03/16(金) 10:14:04.60ID:x1iYgKqh >>275
これ
これ
285デフォルトの名無しさん
2018/03/16(金) 16:35:23.76ID:3ma6aQHv286デフォルトの名無しさん
2018/03/16(金) 18:15:24.73ID:tA4eZSmU ``int* p;''と``int *p;''はどちらが正しいですか
http://www.libjingu.jp/trans/bs_faq2-j.html#whitespace
まあハゲの影響はあると思う
http://www.libjingu.jp/trans/bs_faq2-j.html#whitespace
まあハゲの影響はあると思う
287デフォルトの名無しさん
2018/03/16(金) 18:16:24.05ID:YfjbsaKN 偉い人が前で統一させてたから倣ってる
288デフォルトの名無しさん
2018/03/16(金) 19:01:00.72ID:EjV6B4+T >>285
マイクロソフトじゃないか?
マイクロソフトじゃないか?
289デフォルトの名無しさん
2018/03/16(金) 22:46:14.86ID:KxYkqF9B []演算子は変数の後ろしか置けないので迷いがない
290デフォルトの名無しさん
2018/03/16(金) 22:50:13.34ID:r/T+njCz 変数との間に空白を入れるか入れないか選択の余地がある
291デフォルトの名無しさん
2018/03/16(金) 23:05:45.65ID:/SwLgzhl 正直、選択の余地が無い方が嬉しい
292デフォルトの名無しさん
2018/03/16(金) 23:17:53.08ID:7Nt6p3N1 ある意味欠陥の1つ
293デフォルトの名無しさん
2018/03/16(金) 23:24:49.74ID:YbTBBkUF >>289
リテラルの後ろにも置ける
リテラルの後ろにも置ける
294デフォルトの名無しさん
2018/03/16(金) 23:28:34.45ID:/SwLgzhl あと数字の後ろにも置けるよな確か
x[2]は2[x]でも普通に動作するらしい、使ったことはないが
x[2]は2[x]でも普通に動作するらしい、使ったことはないが
295デフォルトの名無しさん
2018/03/16(金) 23:32:56.43ID:W1kNbC1+ 参照型&ってあまり使われないのか
296デフォルトの名無しさん
2018/03/17(土) 02:01:02.93ID:UGDcJiJh >>293
宣言の中の型としての*の位置を問題にしてるのだから、式の中での*が使える位置については別の話でしょ。
宣言の中の型としての*の位置を問題にしてるのだから、式の中での*が使える位置については別の話でしょ。
297デフォルトの名無しさん
2018/03/17(土) 17:02:13.24ID:B2oEmArJ インデントってタブ文字使うよりもスペース使った方がいいんですか?
299デフォルトの名無しさん
2018/03/17(土) 17:32:05.08ID:Ak7laUjo タブコードはエディタの設定に見た目が左右されるので使わない方がいい
300デフォルトの名無しさん
2018/03/17(土) 17:39:18.45ID:B2oEmArJ うーん、やっぱりタブは使うべきではないんですね
301デフォルトの名無しさん
2018/03/17(土) 17:41:47.51ID:Ak7laUjo 昔は1バイト当たり単価が高かったからね
302デフォルトの名無しさん
2018/03/17(土) 20:01:33.65ID:hl7Y0kGo エディタの機能向上による要素が大きいな。
インデントやその削除にキーを何度も叩かなきゃならない状態だったらTABがまだ主流だったろう。
インデントやその削除にキーを何度も叩かなきゃならない状態だったらTABがまだ主流だったろう。
303デフォルトの名無しさん
2018/03/17(土) 22:45:16.37ID:NcDC59dQ >>294
初めて知ったw
初めて知ったw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★2 [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず [七波羅探題★]
- 【女子カーリング】五輪出場決定!女子日本代表の「フォルティウス」チーム名は「より強く」の意味 [征夷大将軍★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【米国】「トランプ・ゴールドカード」の受付開始 1億5600万円でアメリカの永住権を獲得 ウェブサイトで申し込み [ぐれ★]
- エナジードリンク、危険だった。飲酒喫煙もせずランニングが趣味の54歳の若者が毎日たった8本飲むだけで脳卒中に [742348415]
- (´・ω・`)お!ま!え!ら!ぁ~!!!
- Twitter医師ら「死ぬほど勉強して博愛精神求められるとかそらみんな美容外科なるわ。嫌なら普通の医療も保険診療廃止しろ!」 [762037879]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 在宅なのにここ見てる奴wwwwwwwwwwww
- お前ら見てると麻痺する
