22/04/14 15:42:21.39 VkbtJkFZ.net
SIMDの勉強中で、下のようなことをしたいのですが、コンストラクタでエラーになります。
プリミティブ型をアライメント指定してnew,deleteするにはどうすればいいですか?
class MyClass {
public:
MyClass() : member(new (std::align_val_t{32}) int[1000]) {}
~MyClass() { delete[] member; }
int* member;
};
1027:デフォルトの名無しさん
22/04/14 16:34:45 4tVKG4Xu.net
コンパイラの吐き出すエラーは見た?
std::align_val_t を使えるのは C++17以降みたいだけど
そこらへんは大丈夫?
(※ ideone は C++14までやよね?)
1028:991
22/04/14 16:56:57.03 VkbtJkFZ.net
>>992
C++20です。
visual studio 2022でエラーC2956が出ます。
エラーのリンク先には構造体をnewしたい場合の対処法が書かれてます。
対処法:構造体の宣言時にalignas()でアライメント指定する。
プリミティブ型を宣言することができない(?)ので、この対処法では解決できませんでした。
1029:デフォルトの名無しさん
22/04/15 15:16:32 KM+JgYPL.net
うめ
1030:デフォルトの名無しさん
22/04/15 15:16:44 KM+JgYPL.net
埋め
1031:デフォルトの名無しさん
22/04/15 15:16:54 KM+JgYPL.net
ume
1032:デフォルトの名無しさん
22/04/15 15:17:03 KM+JgYPL.net
梅
1033:デフォルトの名無しさん
22/04/15 15:17:12 KM+JgYPL.net
ウメ
1034:デフォルトの名無しさん
22/04/15 15:17:37 KM+JgYPL.net
生め
1035:デフォルトの名無しさん
22/04/15 15:17:46 KM+JgYPL.net
産め
1036:1001
Over 1000 Thread .net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 641日 1時間 25分 58秒
1037:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています