前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/
探検
C++相談室 part158
■ このスレッドは過去ログ倉庫に格納されています
2021/11/15(月) 18:49:18.44ID:I69rZ/Of
2021/11/18(木) 21:59:19.03ID:asQz6rBs
はい。前者は std 内全部の名前が修飾なしで使えるようになりますが、後者は指定したものだけになります。
2021/11/18(木) 23:09:08.75ID:tPrhQHc6
明朝体とかゴシック体がフォント
明朝体で書かれた「あ」とゴシック体で書かれた「あ」は異なるグリフの「あ」
文字としては同じ
ということのはずだがユニコードはぐちゃらけてしま
tったど
うしてこなうった!?
明朝体で書かれた「あ」とゴシック体で書かれた「あ」は異なるグリフの「あ」
文字としては同じ
ということのはずだがユニコードはぐちゃらけてしま
tったど
うしてこなうった!?
2021/11/18(木) 23:11:14.48ID:tPrhQHc6
ググったらJISで「♯」と「#」が異なる文字だからユニコードでも元に戻せるように異なるコードにしているとか
ワケワカメ
一昔前の似たような文字を同じコードにする方針な美しいユニコードはどこいった……?!
ワケワカメ
一昔前の似たような文字を同じコードにする方針な美しいユニコードはどこいった……?!
2021/11/18(木) 23:12:14.00ID:tPrhQHc6
訂正orz
△:異なるコード
○:異なる文字
△:異なるコード
○:異なる文字
2021/11/19(金) 00:01:43.17ID:bln5kEpJ
>>71
シャープとナンバーサインは違う記号で違う意味でしょ。
カタカナの「ロ」と漢字の「口」まで統合されかかったというエピソードもあるんだが、
そういうのが Unicode の美しさだと思うか?
何を以て「似たような文字」とするか文字に対する考え方というのは
それぞれの文化によるによるので既に確立している符号体系を尊重するのは合理的な方針なんだよ。
歴史的経緯を切り捨てられないのは不格好だが逆に言えば既存の不格好さを継承する程度で済む。
シャープとナンバーサインは違う記号で違う意味でしょ。
カタカナの「ロ」と漢字の「口」まで統合されかかったというエピソードもあるんだが、
そういうのが Unicode の美しさだと思うか?
何を以て「似たような文字」とするか文字に対する考え方というのは
それぞれの文化によるによるので既に確立している符号体系を尊重するのは合理的な方針なんだよ。
歴史的経緯を切り捨てられないのは不格好だが逆に言えば既存の不格好さを継承する程度で済む。
2021/11/19(金) 08:12:17.83ID:Lvg3H2b6
>>71
CJK統合漢字の大失敗に懲りたんだろ。
CJK統合漢字の大失敗に懲りたんだろ。
2021/11/19(金) 09:07:31.36ID:jz7MocuB
ここC++のスレだよな?
2021/11/19(金) 10:51:32.62ID:Zjxpzk7M
そうだよスレ違いのUnicode叩きも擁護も出て行け
77デフォルトの名無しさん
2021/11/19(金) 11:12:38.26ID:eyeX0xyM ♯include は動かない方が良い
\ も mac だとやばい \ があるらしいなω
\ も mac だとやばい \ があるらしいなω
78デフォルトの名無しさん
2021/11/19(金) 11:14:02.03ID:eyeX0xyM codepadだかideoneだかが
\nを勝手に半角の¥nにしてコンパイル通らなくて可笑しいときがある
\nを勝手に半角の¥nにしてコンパイル通らなくて可笑しいときがある
2021/11/19(金) 11:30:01.23ID:IBPJGhlA
80はちみつ餃子 ◆8X2XSCHEME
2021/11/19(金) 13:02:30.99ID:bln5kEpJ JIS X 0201 (7ビット及び8ビットの情報交換用符号化文字集合) による。
JIS X 3010 (プログラミング言語C) の中でもスラッシュとチルダが JIS X 0201 では円記号とオーバーラインに
置き換えられる旨の補足情報が書かれている。
つまり Windows の挙動は日本の (文字コードに関する) 規格を尊重した結果だし、C の JIS 規格でもちゃんと言及している。
とはいえ ISO/IEC 9899 に反する事情があるからこそ日本の規格 (JIS) にするにあたって補足を入れる必要があったわけで、
「本来あるべき」から遠いのは確かに Windows のほうとは言える。
JIS X 3010 (プログラミング言語C) の中でもスラッシュとチルダが JIS X 0201 では円記号とオーバーラインに
置き換えられる旨の補足情報が書かれている。
つまり Windows の挙動は日本の (文字コードに関する) 規格を尊重した結果だし、C の JIS 規格でもちゃんと言及している。
とはいえ ISO/IEC 9899 に反する事情があるからこそ日本の規格 (JIS) にするにあたって補足を入れる必要があったわけで、
「本来あるべき」から遠いのは確かに Windows のほうとは言える。
81デフォルトの名無しさん
2021/11/19(金) 14:07:51.51ID:eyeX0xyM >>79
知ってると思うが
これの話なんだが
http://codepad.org/WsmFWVty
#include <stdio.h>
int main()
{
printf("abc\n");
return 0;
}
知ってると思うが
これの話なんだが
http://codepad.org/WsmFWVty
#include <stdio.h>
int main()
{
printf("abc\n");
return 0;
}
82デフォルトの名無しさん
2021/11/19(金) 14:10:16.50ID:eyeX0xyM2021/11/19(金) 15:13:48.52ID:gL3kBbt5
どうでもいいのは勘違いしてるお前の話
2021/11/19(金) 17:22:13.91ID:r4tdjD9P
アホすぎる
C++の話しようぜ
C++の話しようぜ
85デフォルトの名無しさん
2021/11/19(金) 18:47:23.14ID:P2N6jWZN WindowsのvisualC++2019でDLLのロードが出来ません
dll defからlibをつくり#pragma comment( lib, "sample" )とやればできた記憶なんですが
64bitのバージョンも全部合わせてあるんですが
10年ぶりにやったら動きません
ボーランドC++だと修飾名が変わってdefを書き換えたりはあったと思うのですが
> error LNK2019: 未解決の外部シンボル sqlite3_open
dll defからlibをつくり#pragma comment( lib, "sample" )とやればできた記憶なんですが
64bitのバージョンも全部合わせてあるんですが
10年ぶりにやったら動きません
ボーランドC++だと修飾名が変わってdefを書き換えたりはあったと思うのですが
> error LNK2019: 未解決の外部シンボル sqlite3_open
8685
2021/11/19(金) 18:53:32.17ID:P2N6jWZN 自己解決しました
dumpbin.exe /exports コマンドでdefファイルを作成した場合、
EXPORTS の記述がなかったからでした
dumpbin.exe /exports コマンドでdefファイルを作成した場合、
EXPORTS の記述がなかったからでした
2021/11/20(土) 00:18:32.03ID:KMJ1ohr2
2021/11/20(土) 04:22:38.39ID:VRiN34hT
>>81
馬鹿過ぎて
馬鹿過ぎて
89デフォルトの名無しさん
2021/11/20(土) 11:48:10.21ID:DTIeq0Vp >>87
ブログラマってなにかの隠語?
ブログラマってなにかの隠語?
2021/11/20(土) 12:05:58.69ID:T1SqYaku
ナニナニ
彡⌒ ミ ナニナニ
(´・ω・`) 彡⌒ミ
,彡⌒ 彡⌒ ミ (・ω・`) また文字コードの話?
(´・ω(´・ω・`) ⌒ ミノ⌒ミ
u_| ̄ ̄||´・ω・`)ω・`) マター?
/旦|――||// /|と ノ
| ̄ ̄ ̄ ̄ ̄| ̄| . |-u
|_____|三|/
彡⌒ ミ ナニナニ
(´・ω・`) 彡⌒ミ
,彡⌒ 彡⌒ ミ (・ω・`) また文字コードの話?
(´・ω(´・ω・`) ⌒ ミノ⌒ミ
u_| ̄ ̄||´・ω・`)ω・`) マター?
/旦|――||// /|と ノ
| ̄ ̄ ̄ ̄ ̄| ̄| . |-u
|_____|三|/
2021/11/20(土) 19:11:01.64ID:F5vrtFYR
>>90
プログラマ=ハゲと思われるからそのAAやめろよ(´・ω・`)
プログラマ=ハゲと思われるからそのAAやめろよ(´・ω・`)
2021/11/21(日) 03:33:39.04ID:yh1CvOcy
実際C++プログラマはハゲが多いんだから別にいいだろう
教祖からしてハゲなんだし
教祖からしてハゲなんだし
2021/11/21(日) 08:40:03.48ID:uokK0Aao
そうそう、教祖がゲーハー
これはデカい
これはデカい
2021/11/21(日) 17:11:36.41ID:BwaLJwgU
Greek PhiはU+03A6(大文字)・U+03C6(小文字)・U+03D5(数学用シンボル)
Empty setはU+2205
全く別のコードポイントが割り当てられてるし、>>19の資料でも全く別の文字として議論されてるけど
何を見て何がどう区別されてないと思った?
Empty setはU+2205
全く別のコードポイントが割り当てられてるし、>>19の資料でも全く別の文字として議論されてるけど
何を見て何がどう区別されてないと思った?
2021/11/21(日) 20:56:14.20ID:MSJBJTi1
プログラミング言語の世代論というのがあって、
第一世代は CPU のアーキテクチャべったりの機械語、
第二世代は機械語が解る人間向きの低級言語、
第三世代は自然言語寄りの高級言語、
第四世代は目的型言語、
…… で、いわゆる「第五世代」は、コンピュータの都合じゃなくて
人間の都合に合わせようよ、というコンセプトになった。
「じゃあ、どのあたりから始めるか」という話は
ありそうに思う。
第一世代は CPU のアーキテクチャべったりの機械語、
第二世代は機械語が解る人間向きの低級言語、
第三世代は自然言語寄りの高級言語、
第四世代は目的型言語、
…… で、いわゆる「第五世代」は、コンピュータの都合じゃなくて
人間の都合に合わせようよ、というコンセプトになった。
「じゃあ、どのあたりから始めるか」という話は
ありそうに思う。
2021/11/21(日) 22:09:51.70ID:jS7RYefb
2021/11/21(日) 22:16:19.52ID:32ll5fa9
エスケープが円だと思ってるから間違えるんだろ
2021/11/21(日) 22:42:33.87ID:zasxIKRm
普段からU+005Cのグリフがバックスラッシュになってるフォントしか使わないから円記号に違和感しかない
そりゃ個人の自由だけどプログラミングしてるなら少しフォントにこだわってもいいと思う
そりゃ個人の自由だけどプログラミングしてるなら少しフォントにこだわってもいいと思う
2021/11/22(月) 11:36:57.09ID:/m9OFYAK
日時を数値に変換する良い感じの関数教えてくださいよ
100デフォルトの名無しさん
2021/11/22(月) 11:53:19.81ID:NpEcC+CD std::chrono
101デフォルトの名無しさん
2021/11/22(月) 12:07:40.30ID:axkd8Lua おどろき最小の法則と言えば
https://onihusube.hatenaぶろぐ.com/entry/2020/04/03/211442
https://onihusube.hatenaぶろぐ.com/entry/2020/04/03/211442
102デフォルトの名無しさん
2021/11/22(月) 12:12:11.62ID:buYIHjVZ 人を下に見られる程精通してる人って正直羨ましいわ
知れば知るほどまだまだ知らない事が沢山あるなぁと勉強不足を実感してしまう
↓
知らないから人をバカに出来るんだよなー
↑
むしろ人を下にみないと精神状態が不安定なんでしょ
知れば知るほどまだまだ知らない事が沢山あるなぁと勉強不足を実感してしまう
↓
知らないから人をバカに出来るんだよなー
↑
むしろ人を下にみないと精神状態が不安定なんでしょ
103デフォルトの名無しさん
2021/11/22(月) 12:23:22.14ID:NpEcC+CD ダニングクルーガーね
104デフォルトの名無しさん
2021/11/22(月) 13:29:19.96ID:SX8MGonp Windows App SDK入れてみたがエラーが多くまだ使えない
105デフォルトの名無しさん
2021/11/22(月) 19:04:02.58ID:aHjY0LXr ヘッダファイルで変数の宣言するとき、引数付きのコンストラクタ使おうとするとコンパイルエラー出るんですけどこの書き方って良くないんですか?
106ハノン ◆QZaw55cn4c
2021/11/22(月) 19:08:25.29ID:f9+TjGGq107デフォルトの名無しさん
2021/11/22(月) 20:43:52.70ID:aHjY0LXr >>106
// NG ヘッダにそのまま書こうとすると型指定子が必要ですとエラーが出る
private:
MenberLibClasse obj ("piyopiyo");
// OK ヘッダには引数なしで宣言した後、cppでobjをメンバに持つクラスのコンストラクタの初期化子リストを使うと何故か通る
private:
MenberLibClasse obj;
Class() :obj ("piyopiyo") { }
挙動把握しきれないんですけどライブラリ側の問題でしょうか??
// NG ヘッダにそのまま書こうとすると型指定子が必要ですとエラーが出る
private:
MenberLibClasse obj ("piyopiyo");
// OK ヘッダには引数なしで宣言した後、cppでobjをメンバに持つクラスのコンストラクタの初期化子リストを使うと何故か通る
private:
MenberLibClasse obj;
Class() :obj ("piyopiyo") { }
挙動把握しきれないんですけどライブラリ側の問題でしょうか??
108ハノン ◆QZaw55cn4c
2021/11/22(月) 20:50:48.90ID:f9+TjGGq109デフォルトの名無しさん
2021/11/22(月) 20:56:23.56ID:0LbM6y2O >>107
宣言の位置でメンバを初期化できるのはC++11からだけど、それが原因かな?
宣言の位置でメンバを初期化できるのはC++11からだけど、それが原因かな?
110デフォルトの名無しさん
2021/11/22(月) 20:59:28.54ID:UBpGrDL8 書くとしたらこうやろ
private:
MenberLibClasse obj = "piyopiyo";
private:
MenberLibClasse obj = "piyopiyo";
111デフォルトの名無しさん
2021/11/22(月) 21:02:09.68ID:jXuEZ/Sz 丸括弧はダメだよ
イコールか波括弧でなきゃ
イコールか波括弧でなきゃ
112デフォルトの名無しさん
2021/11/22(月) 21:04:04.13ID:jXuEZ/Sz 型指定子が必要って言われるのは
関数宣言と見られていて
仮引数の場所にリテラルがあるってことだ
関数宣言と見られていて
仮引数の場所にリテラルがあるってことだ
113デフォルトの名無しさん
2021/11/22(月) 21:13:00.22ID:aHjY0LXr >>111
イコールはダメで波括弧に変えたらコンパイルできました
イコールはダメで波括弧に変えたらコンパイルできました
114デフォルトの名無しさん
2021/11/22(月) 21:30:02.05ID:ahYOm2Qx private:
MenberLibClasse obj{"piyopiyo"};
MenberLibClasse obj{"piyopiyo"};
115デフォルトの名無しさん
2021/11/22(月) 23:03:46.80ID:gucWMAFN >>99
using namespace std::chrono;
// 現在時刻を取得
system_clock::time_point tp = system_clock::now();
// 現在時刻のミリ秒部分を取得
auto msec = duration_cast<milliseconds>(tp.time_since_epoch()).count() % 1000;
みたいなことをやると良い最後のまmillisecondでもsecondでもnanosecondでも逝ける
こないだ死ぬほどやり倒すた、
しかしずんねんながら現状MSVCのstd::chrono::zoned_timeが未実装のため、
システム時刻関連処理についてstd::chronoの利用を断念すた、orz
using namespace std::chrono;
// 現在時刻を取得
system_clock::time_point tp = system_clock::now();
// 現在時刻のミリ秒部分を取得
auto msec = duration_cast<milliseconds>(tp.time_since_epoch()).count() % 1000;
みたいなことをやると良い最後のまmillisecondでもsecondでもnanosecondでも逝ける
こないだ死ぬほどやり倒すた、
しかしずんねんながら現状MSVCのstd::chrono::zoned_timeが未実装のため、
システム時刻関連処理についてstd::chronoの利用を断念すた、orz
116デフォルトの名無しさん
2021/11/22(月) 23:16:45.51ID:gucWMAFN なおtime_point同士で引き算もできる
結果を具体的時間単位の時間表現にするのは同じくduration_cast<T>()
結果を具体的時間単位の時間表現にするのは同じくduration_cast<T>()
117デフォルトの名無しさん
2021/11/23(火) 10:20:15.57ID:wZOweAJh ostringstream の precision の上限がなぜか 255 に設定されているようで
mpreal big("1000桁規模の浮動小数点数");
ostringstream ss;
ss.precision(1000);
ss << big;
とすると ss に 255 文字程度しか入らないのです
cout.precision(1000);
cout << big;
だと 1000桁出ます
ostringstream の precision の上限をもっと大きくする方法はありますか?
mpreal big("1000桁規模の浮動小数点数");
ostringstream ss;
ss.precision(1000);
ss << big;
とすると ss に 255 文字程度しか入らないのです
cout.precision(1000);
cout << big;
だと 1000桁出ます
ostringstream の precision の上限をもっと大きくする方法はありますか?
118デフォルトの名無しさん
2021/11/23(火) 10:22:20.09ID:wZOweAJh ああ
勘違いかも
もうちょっと調べて質問します
勘違いかも
もうちょっと調べて質問します
119デフォルトの名無しさん
2021/11/23(火) 10:28:59.05ID:wZOweAJh とりあえず判ったのは
ss.rdbuf() の default の上限値が 255 らしい
ss.rdbuf() の default の上限値が 255 らしい
120デフォルトの名無しさん
2021/11/23(火) 10:53:38.11ID:v39GCTAR だっせ
そんな上限、規格票に書いてあるのか?
そんな上限、規格票に書いてあるのか?
121デフォルトの名無しさん
2021/11/23(火) 11:40:46.26ID:Vfqk4Xs7122デフォルトの名無しさん
2021/11/23(火) 11:52:24.16ID:wZOweAJh >>120
ss.rdbuf()->in_avail()
ss.rdbuf()->in_avail()
123デフォルトの名無しさん
2021/11/23(火) 13:42:01.58ID:X+sq98An 再現しそうな最小限のコードだけ描いて
mingw + gcc でコンパイル&実行したら期待通りの動作をしたが
VC だとやっぱり上限があるっぽい動きになってる
rdbuf() 使いつつ seek() すれば大丈夫かも知れないが
自分の使い方が間違ってるだけだと思いたい
mingw + gcc でコンパイル&実行したら期待通りの動作をしたが
VC だとやっぱり上限があるっぽい動きになってる
rdbuf() 使いつつ seek() すれば大丈夫かも知れないが
自分の使い方が間違ってるだけだと思いたい
124デフォルトの名無しさん
2021/11/23(火) 13:44:07.61ID:X+sq98An とりあえず mpreal は関係なかった
VC 側の問題らしいのでもう少し掘ってみる
VC 側の問題らしいのでもう少し掘ってみる
125デフォルトの名無しさん
2021/11/23(火) 14:39:06.53ID:X+sq98An VC 側 rdbuf()->pubseekpos() 併用で解決
126デフォルトの名無しさん
2021/11/23(火) 15:22:40.52ID:V3fVQTwt クラスのメンバ変数が全部intとかdoubleとかで足し算掛け算ができるものの場合に、
クラスの足し算掛け算を各メンバ変数の足し算掛け算として定義したいのですが
operator +とかoperator *のオーバーロードでメンバ変数について一個ずつ書いていく以外の方法ありますか?
今やろうとしていることでメンバ変数が多いので、いちいち列挙せずに済むなら便利だなと思ったのですが
クラスの足し算掛け算を各メンバ変数の足し算掛け算として定義したいのですが
operator +とかoperator *のオーバーロードでメンバ変数について一個ずつ書いていく以外の方法ありますか?
今やろうとしていることでメンバ変数が多いので、いちいち列挙せずに済むなら便利だなと思ったのですが
127デフォルトの名無しさん
2021/11/23(火) 15:49:25.55ID:57zkg5+u >>126
valarrayじやね?
valarrayじやね?
128デフォルトの名無しさん
2021/11/23(火) 16:47:46.55ID:za9QU+hA >>117
VC の in_avail() が間違った値を返してるんだなこれ
VC の in_avail() が間違った値を返してるんだなこれ
129デフォルトの名無しさん
2021/11/23(火) 17:12:53.52ID:V3fVQTwt >>127
ありがとうございます、使ってみます
ありがとうございます、使ってみます
130はちみつ餃子 ◆8X2XSCHEME
2021/11/23(火) 17:34:18.50ID:VSfhJ4CF >>126
現在の C++ はリフレクション系の機能が弱くてクラスからデータメンバを列挙するというようなことは出来ない。
「全てのメンバに対してやってくれ」というようなことはできない。
ただ、対象となるメンバを取り出すものさえ用意すればそれを様々な演算に適用することは可能だと思う。
つまり、メンバの列挙を一度で済ませる (なんども列挙しなくてよい) ことは出来るかもしれないってことね。
とはいえそれはそれで割とクソめんどうくせぇメタプログラミングの下準備が要るので
いっそ列挙しまくったほうが簡単かもしれん。
現在の C++ はリフレクション系の機能が弱くてクラスからデータメンバを列挙するというようなことは出来ない。
「全てのメンバに対してやってくれ」というようなことはできない。
ただ、対象となるメンバを取り出すものさえ用意すればそれを様々な演算に適用することは可能だと思う。
つまり、メンバの列挙を一度で済ませる (なんども列挙しなくてよい) ことは出来るかもしれないってことね。
とはいえそれはそれで割とクソめんどうくせぇメタプログラミングの下準備が要るので
いっそ列挙しまくったほうが簡単かもしれん。
131デフォルトの名無しさん
2021/11/23(火) 17:57:00.33ID:UgBkVfMX Q_OBJECT とかだとメンバの列挙出来たっけ
132デフォルトの名無しさん
2021/11/23(火) 23:10:58.29ID:G9Rlesey >>121
駄目なんじゃないかと思う
std::chronoはtime_pointを抽象化してタイムゾーンの異なる時刻間の差分を自動で取り扱いたい(そういう思想な)はずで、
ということはローカルタイムを扱う手段としてzoned_timeは無くてはならないピースとみなさざるおえない
どうしてもというならstd::chrono::system_timeを経由して古き良きtime_tとtime_pointの相互変換ができるから、
time_tまで降りてローカルタイムにしてtime_pointに戻す手はあるが、それをすると
同じtime_pointクラスで表される2種類のシリアル時間がプログラム内に生じてしまうから、
std::chronoの上記思想(時刻の差分や比較を自動で安全に取り扱いたい)が破壊される
ライブラリ仕様の理想が高邁すぎるか実装側の怠慢によって大事な用途において糞ライブラリになってしまっている例
駄目なんじゃないかと思う
std::chronoはtime_pointを抽象化してタイムゾーンの異なる時刻間の差分を自動で取り扱いたい(そういう思想な)はずで、
ということはローカルタイムを扱う手段としてzoned_timeは無くてはならないピースとみなさざるおえない
どうしてもというならstd::chrono::system_timeを経由して古き良きtime_tとtime_pointの相互変換ができるから、
time_tまで降りてローカルタイムにしてtime_pointに戻す手はあるが、それをすると
同じtime_pointクラスで表される2種類のシリアル時間がプログラム内に生じてしまうから、
std::chronoの上記思想(時刻の差分や比較を自動で安全に取り扱いたい)が破壊される
ライブラリ仕様の理想が高邁すぎるか実装側の怠慢によって大事な用途において糞ライブラリになってしまっている例
133デフォルトの名無しさん
2021/11/23(火) 23:41:07.98ID:mX+uwseB 何が出来ないと言っているのかまるで分からん
出来る部分と出来ない部分の切り分けがいるんでないの?
出来る部分と出来ない部分の切り分けがいるんでないの?
134デフォルトの名無しさん
2021/11/24(水) 00:03:21.95ID:EdXujyLt time_point(事実上UTC)とローカルタイムの相互変換がstd::chronoが思想的に目指しているほど安全にはできない
zoned_timeが実装されない限り
time_point(事実上UTC)同士の比較や差分はzoned_timeが実装されてないバージョンでも安全にできる
zoned_timeが実装されない限り
time_point(事実上UTC)同士の比較や差分はzoned_timeが実装されてないバージョンでも安全にできる
135デフォルトの名無しさん
2021/11/24(水) 00:18:07.67ID:HKyZluCV そんなアバウトな情報いらん
136デフォルトの名無しさん
2021/11/24(水) 00:31:14.95ID:EdXujyLt えっと、>>135はUTCとローカルタイムの変換ってわかります?
137デフォルトの名無しさん
2021/11/24(水) 00:39:36.48ID:EdXujyLt std::chronoで現在時刻を取得する一番自然な方法は、
system_clock::time_point now = system_clock::now();
や
他にもtime_tからの変換という方法があるが、いまさらtime_t使え言うぐらいならstd::chrono使わずにtime_tだけ使うは;;;
で、nowはどう見てもUTCであるから、日本時間を知りたければ、
上記time_point nowが日本時間の何年何月何日の何時何分何秒なのかを出力できねばならない
std::chronoの中にはzoned_timeを使わずにそれをやる手段が見当たらない
system_clock::time_point now = system_clock::now();
や
他にもtime_tからの変換という方法があるが、いまさらtime_t使え言うぐらいならstd::chrono使わずにtime_tだけ使うは;;;
で、nowはどう見てもUTCであるから、日本時間を知りたければ、
上記time_point nowが日本時間の何年何月何日の何時何分何秒なのかを出力できねばならない
std::chronoの中にはzoned_timeを使わずにそれをやる手段が見当たらない
138デフォルトの名無しさん
2021/11/24(水) 00:44:19.87ID:jtZYcQVF C++20より前のchronoはタイムゾーンのこと知らんからな…
139デフォルトの名無しさん
2021/11/24(水) 01:06:29.20ID:HKyZluCV140デフォルトの名無しさん
2021/11/24(水) 01:21:45.20ID:Jllasahs chronoはローカルタイムを扱えない、と言ってると思うよ
141デフォルトの名無しさん
2021/11/24(水) 02:40:02.07ID:xFDMAHHD142デフォルトの名無しさん
2021/11/24(水) 03:00:57.55ID:P1gN11rG ローカル時刻かUTCか以前の問題として、そもそもどんなフォーマットで数値に変換するのか
それが不明だったから誰も回答しなかったのだろうに
あとドキュメント信じる限りじゃzoned_timeはVS2019 16.10から使えるってよ
それが不明だったから誰も回答しなかったのだろうに
あとドキュメント信じる限りじゃzoned_timeはVS2019 16.10から使えるってよ
143デフォルトの名無しさん
2021/11/24(水) 03:04:53.60ID:Q5JPayEq C++は糞
std::は糞ばかり
boost最強
まで読んだ
std::は糞ばかり
boost最強
まで読んだ
145デフォルトの名無しさん
2021/11/24(水) 04:22:29.20ID:xFDMAHHD じゃ、もうtime_t使っとけ
146デフォルトの名無しさん
2021/11/24(水) 05:14:05.40ID:ZtAViqSQ 「良い感じの関数」なんて今流行りwのAIとか使わんと無理でしょ
147デフォルトの名無しさん
2021/11/24(水) 07:01:18.14ID:xQvD3wWY 確かにchronoは今一だね
filesystemはthread, iomanipとの連携が悪すぎ
使いにくいったらありゃしない
filesystemはthread, iomanipとの連携が悪すぎ
使いにくいったらありゃしない
148デフォルトの名無しさん
2021/11/24(水) 07:01:39.82ID:xQvD3wWY - filesystemは
+ tilesystemや
+ tilesystemや
149デフォルトの名無しさん
2021/11/24(水) 08:47:11.69ID:xQvD3wWY auto p = (void*)[]{};
これが通らないんだけど
stateless-lambdaは関数と見なせない?
これが通らないんだけど
stateless-lambdaは関数と見なせない?
150デフォルトの名無しさん
2021/11/24(水) 09:11:02.53ID:083KFMkM auto p = (void*)(void (*)())[]{};
151デフォルトの名無しさん
2021/11/24(水) 09:17:04.13ID:xFDMAHHD auto p = []()->void*{};
もう少し学習しろ
もう少し学習しろ
152デフォルトの名無しさん
2021/11/24(水) 10:46:50.00ID:kXzWnsgO 何がしたいんか知らんけど
auto p = [](){};
auto p = []()->void*{};
auto p = []()->void{};
本人の意図が判らんことには絶対に正解に辿り着けない質問大杉
auto p = [](){};
auto p = []()->void*{};
auto p = []()->void{};
本人の意図が判らんことには絶対に正解に辿り着けない質問大杉
153デフォルトの名無しさん
2021/11/24(水) 11:11:35.49ID:xQvD3wWY void func1(void*);
void func2(){}
func1(func2);
のようなことをしようとしてて怒られるから
func1((void*)func2);
にしてた
で、func2で名前空間を汚染したくないから
stateless-lambda使おうと思った
void func2(){}
func1(func2);
のようなことをしようとしてて怒られるから
func1((void*)func2);
にしてた
で、func2で名前空間を汚染したくないから
stateless-lambda使おうと思った
154はちみつ餃子 ◆8X2XSCHEME
2021/11/24(水) 11:25:51.06ID:nY9AsqgQ 関数 (関数ポインタ) を void* で受ける雑なことをしといて名前空間を汚すのは気にするのか。
まあフレームワークとかの側でそうなってたら仕方ない場合もあるけど……。
まあフレームワークとかの側でそうなってたら仕方ない場合もあるけど……。
155デフォルトの名無しさん
2021/11/24(水) 11:28:11.15ID:P1gN11rG variant的なことを昔ながらの方法でやっているのかもしれない
156デフォルトの名無しさん
2021/11/24(水) 11:41:52.30ID:kXzWnsgO auto p = []()->void*{return NULL;};
↑これはOKだが
auto p = []()->void*{};
↑こっちはコンパイルエラーにして欲しいよね
↑これはOKだが
auto p = []()->void*{};
↑こっちはコンパイルエラーにして欲しいよね
157デフォルトの名無しさん
2021/11/24(水) 11:48:13.06ID:jtZYcQVF 単にステートレスラムダを関数ポインタに変換したいならこういう有名なハックがある
auto p = +[]{};
auto p = +[]{};
158デフォルトの名無しさん
2021/11/24(水) 12:47:46.56ID:xQvD3wWY159デフォルトの名無しさん
2021/11/24(水) 12:55:27.21ID:xQvD3wWY ポインタに単項プラスなんぞ考えたこともなかった
void test(char* p)
{
cout << +p << endl;
cout << *+p << endl;
cout << *(0+p) << endl;
cout << 0[p] << endl;
}
void test(char* p)
{
cout << +p << endl;
cout << *+p << endl;
cout << *(0+p) << endl;
cout << 0[p] << endl;
}
160デフォルトの名無しさん
2021/11/24(水) 15:19:51.62ID:083KFMkM 生配列をポインタに変換するときも単項+使うね
161デフォルトの名無しさん
2021/11/24(水) 15:33:19.13ID:kXzWnsgO >>160
何が嬉しいの
何が嬉しいの
162デフォルトの名無しさん
2021/11/25(木) 09:42:14.59ID:r5Heuy4P C++11 や C++17 や C++20 とかどのオプションでコンパイルされているかを
コンパイル中に判断したいのですが
ソースコード中にどう書けばよいのですか
コンパイル中に判断したいのですが
ソースコード中にどう書けばよいのですか
163デフォルトの名無しさん
2021/11/25(木) 10:11:07.71ID:r5Heuy4P164デフォルトの名無しさん
2021/11/25(木) 10:12:19.59ID:lTzmbhqT 全然解決してなくて草
165デフォルトの名無しさん
2021/11/25(木) 11:00:47.97ID:nZfwh6w7 >>161
#include <iostream>
#include <cstdio>
int main() {
int a[] = {1, 2, 3, 4};
std::printf("%p %p\n", &a, &a + 1);
std::printf("%p %p\n", +a, +a + 1);
int (*p)[4] = &a;
std::printf("%p %p\n", p, p + 1);
int *q = &a[0];
std::printf("%p %p\n", q, q + 1);
return 0;
}
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
つまり&a[0]と書くのを+aと書くだけですませられる
どっちが分かりやすいかはさておき
#include <iostream>
#include <cstdio>
int main() {
int a[] = {1, 2, 3, 4};
std::printf("%p %p\n", &a, &a + 1);
std::printf("%p %p\n", +a, +a + 1);
int (*p)[4] = &a;
std::printf("%p %p\n", p, p + 1);
int *q = &a[0];
std::printf("%p %p\n", q, q + 1);
return 0;
}
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
つまり&a[0]と書くのを+aと書くだけですませられる
どっちが分かりやすいかはさておき
166デフォルトの名無しさん
2021/11/25(木) 11:28:16.28ID:pIkhaGD2 __cplusplus マクロ見るんじゃね?普通は
あとは言語機能ごとのマクロ見たり
あとは言語機能ごとのマクロ見たり
167デフォルトの名無しさん
2021/11/25(木) 11:38:56.35ID:lTzmbhqT まるで間違ってて草
168デフォルトの名無しさん
2021/11/25(木) 13:18:45.98ID:U2fItJ5c169デフォルトの名無しさん
2021/11/25(木) 14:43:49.72ID:Ts2h3uwp みんなテキトーだなー(棒)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★2 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【街の声】高市人気爆発!野党に怒りの声!! [237216734]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★5
- エッヂ落ちた?
- 【中抜き】高市、本当にお米券をバラまく模様!バカな無駄遣い [219241683]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 【ぺこ専🐰】なんG 兎田ぺこら実況スレ🏡【ホロライブ▶】
