C++相談室 part166 (574レス)
上下前次1-新
抽出解除 レス栞
65: デルフォトの名無し (ワッチョイ f34b-k+y7) [mage] 2025/05/11(日) 20:18:54.81 ID:8gkdAC4l0(2/5) AAS
>>6464(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ f332-ZIVz) [sage] 2025/05/11(日) 20:12:58.46 ID:krziBUoq0(1/2) AAS
>>63
しいていえば Conan が近いと思うがビルド自体は指定したビルドツールに下請けさせる構造になってる。
プロジェクトのビルドをする仕組みが多用なので既存のプロジェクトを Conan の管理化に入れるといった状況を考えると C++ 的にはこうなるのは仕方がない……。
C/C++ では OS (ディストリビューション) のパッケージマネージャでライブラリを管理するのが普通だったので言語の側で統括的に扱うツールという文化が欠けてる。
そうなんですね...
今RustやってるんですけどC++も触ってみたいなと思って良さげなのないかなと探してるところなんです...
おすすめのビルドツールは何がありますか?
68(1): デフォルトの名無しさん (ワッチョイ 03a6-XCeo) [sage] 2025/05/11(日) 20:34:00.81 ID:WWvVAeL50(2/4) AAS
>>67Windows SDKとかUNIX系なら/usr/includeにあるやつとかMacだと/Library/Developerとか
ひとつの環境に複数バージョン同時に入ってたりパスの規則もベンダーごとにばらばらだったり独自の拡張構文が使われてたりで処理系側のツールで吸収しきれるものではなく
自然>>64も言ってるOS側の管理に委ねるという方向に
98(1): デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2025/05/18(日) 06:17:53.81 ID:PyWYGSbA0(1) AAS
1変数コンストラクタはexplicit付けよう
156: デフォルトの名無しさん (JP 0H7f-JT63) [] 2025/05/29(木) 00:37:22.81 ID:gwInQzjaH(2/2) AAS
これは、complex<float> z1; とcomplex<double> z2; z1+z2の演算でも同じ。
template <class T, class U>
decltype(auto) operator + (const std::complex<T>& z1, const std::complex<U>& z2)
{
return std::complex< decltype(std::declval<T>()+std::declval<U>() )>
( z1.real()+z2.real(), z1.imag()+z2.imag() );
}
みたいなものを実装してほしい。
164: デフォルトの名無しさん (ワッチョイ 0f10-GFGd) [sage] 2025/05/29(木) 15:49:35.81 ID:ozJD0VM40(1/2) AAS
アンダースコアは実装が使うから#define _sizeされても文句言えないしリンクエラーになるかもだし_Boolみたいに将来予約語になるかもしれない
…ただ世の中にはアンダースコアの付いてない普通に変数名によく使われるような単語を平気で#defineしてくるクソヘッダーも多いので気にしてもしょうがない
あとユーザー定義リテラルだけは例外で逆にアンダースコアで始めないといけない
233(2): デフォルトの名無しさん (ワッチョイ 69d6-a+Ou) [sage] 2025/06/05(木) 16:59:25.81 ID:I5agSXi50(1/3) AAS
単純なんですが、わからんので教えてください。
#include <iostream>
int main(){
std::cout <<"hello"s<<std::endl;
}
がエラーになります。なんか勘違いしてます?sは無理につけないほうがいいのかな?!
$ g++ -Wall -Wextra -std=c++23 -O2 -DGNU_SOURCE main.cpp -o main
g++は11.4.0
237: デフォルトの名無しさん (ワッチョイ 69d6-a+Ou) [sage] 2025/06/05(木) 17:40:53.81 ID:I5agSXi50(3/3) AAS
>>235235(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-2Myj) [sage] 2025/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 を付ける利点は何もないけど状況次第。
御意 mOm 色々あるのですね・・・
238: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-2Myj) [sage] 2025/06/05(木) 18:41:08.81 ID:BNqgyRrD0(3/3) AAS
他のいくつかの言語 (Java とか C# とか) の感覚で C++ を見ると普通の文字列リテラルの型が std::string ではなく char[] なのは引っかかりがちなところかもしれない。
常に s を付けるとそういう引っかかりを無くせるので不必要でも一貫して s を付けるような運用は悪くはないのかもしれない。
基本的にはちゃんと理解して使い分けて欲しいけどね。
239: デフォルトの名無しさん (ワッチョイ 021f-8ND1) [sage] 2025/06/07(土) 01:59:21.81 ID:8e7E0Zg00(1) AAS
emplace_backなんて便利なものあったのかよ
なんで教えてくれなかったの
395: デフォルトの名無しさん (ワッチョイ 0175-Is3k) [] 2025/06/20(金) 10:40:47.81 ID:BxPKXrVj0(2/4) AAS
昔は最適化でバグ混入させられることもあって、最適化は切れってされてたなぁ、っていうおっちゃんのつぶやき
452: デフォルトの名無しさん (ワッチョイ d5d6-WswN) [sage] 2025/06/23(月) 14:29:01.81 ID:zsxUyp330(1) AAS
C++でpythonのライブラリを作るのが気持ちいいかなみたいな。
ん? 普通はpythonのライブラリって何で書かれているんだろう。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.244s*