C++相談室 part166 (652レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
71: (ワッチョイ f34b-k+y7) 05/11(日)21:11:16.07 ID:8gkdAC4l0(5/5)調 AAS
>>70
バラバラなのはちょっとまずいですね...
なんか良さげなのないもんですかね...
93
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 03fe-G5I0) 05/17(土)12:36:55.07 ID:Z8hx0US+0(1)調 AAS
>>89
なにか間違っているのだからどこが間違っているのか調べるために充分な情報が提示されないと応えられない。
質問者は理解できてきないから質問しているので質問の内容や前提が根本からあてにならず、とにもかくにもまずはコードとエラーメッセージを出してもらわないと始まらない。
そのときなるべく抜粋せずに全て出すのが望ましい。
109: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f32-lpF9) 05/20(火)11:18:12.07 ID:XnKVhLuZ0(1)調 AAS
変換という形式を取るのが妥当な場面なのかどうかは脇に置いて、 >>95 のような書き方でやりたいというならこう書ける。

#include <iostream>
struct Hoge {
template <class T> Hoge(const T& f) { f(); }
};
int main() {
Hoge hoge = [] { std::cout << "hoge\n"; };
}

より親切に制約も書くならこうかな? C++11 の範囲内でやろうとすると変な感じなんだけど仕方がない。 enabler イディオムってなんか不格好じゃない?

#include <iostream>
#include <type_traits>
struct Hoge {
template <class T, typename std::enable_if<std::is_same<decltype(std::declval<T>()()), void>{}, std::nullptr_t>::type = nullptr> Hoge(const T& f) { f(); }
};
int main() {
Hoge hoge = [] { std::cout << "hoge\n"; };
}

C++20 だと制約の記述がすっきりしてかなり楽になる。

#include <iostream>
#include <type_traits>
struct Hoge {
template <class T> requires std::is_invocable_r_v<void, T> Hoge(const T& f) { f(); }
};
int main() {
Hoge hoge = [] { std::cout << "hoge\n"; };
}
235
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-2Myj) 06/05(木)17:37:36.07 ID:BNqgyRrD0(2/3)調 AAS
>>233
結論から言うとこういう感じ。

#include <iostream>
#include <string>

int main(){
using namespace std::literals::string_literals;
std::cout <<"hello"s<<std::endl;
}

s はヘッダ string の中の std::literals::string_literals という名前空間で定義されているからこういう形で using してからじゃないと使えない。
この単純なケースだけを見れば s を付ける利点は何もないけど状況次第。
296
(1): (JP 0H46-E6Ax) 06/15(日)00:11:58.07 ID:bHsxd1q/H(2/4)調 AAS
C++の知識というか、ノウハウが一応行きわたっているからだと
思う。と言っても新人は習得に手こずるだろうけど、そばに適切
に指導してくれる先輩がいれば大丈夫。あくまで適切な指導をして
くれる先輩だけど。ラーメン屋の店主みたいな奴だと地獄。
405: (JP 0H46-E6Ax) 06/20(金)17:27:19.07 ID:yQfQLmUOH(1)調 AAS
std::formatの件だが、Visual Studio 2022のコンパイラ設定が
デフォルトでC++14標準になってた。すまん。
531: (ワッチョイ ffa1-BzvG) 07/06(日)11:00:55.07 ID:B20RUTJT0(5/9)調 AAS
>>528
>Bが一回余分にループするのは気持ち悪いけど
いきなりis >> s してその直後のeof()を当てにするロジックである限り、
リンク先のケースBの挙動となり、最後の要素に引き続く空白文字がないとき
最後の要素が入力ストリームにあるのに受け取れないというもっと深刻な事態となる以下略

>>529
operator boolはis.good()と同じはず……
なおかつそれ単独では(is >> sのsがchar以外のとき)ケースBの解決になんね
649
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ e328-BMc3) 09/24(水)02:24:38.07 ID:hHyw0Adk0(1)調 AAS
>>645
その認識でおおよそ正しいが変則的な部分もある。
auto foo = { 1, 2, 3 };
みたいに書くと initializer_list に推論されたりするのは知らないとちょっとびっくりするかもしれない。

それと修飾子などを組み合わせで使うことも出来る。
const auto* bar = &baz;
みたいに。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s