
以下のようなクラスをconstの参照渡しでうけとる、可変引数を持つ関数を作りたいのですが、以下のようにしてもうまくいきません。
何か良い方法はないものでしょうか?
template<class TT> class vector3{
public:
enum{NUM=3};
TT x[NUM];
void Sum(const int num,...);
};
template<class TT> void vector3<TT>::Sum(const int num,const ...){
int i,j;
va_list list;
va_start(list,num);
for(i=0;i<NUM;i++){
x[i]=va_arg(list,&vector3<TT>).x[i];
}
for(j=1;j<num;j++){
for(i=0;i<NUM;i++){
x[i]+=va_arg(list,&vector3<TT>).x[i];
}
}
va_end(list);
}
No.2ベストアンサー
- 回答日時:
残念ながらないです.
「...」に当てはまる引数はすべて右辺値に変換されます (同様に配列名や関数名も対応するポインタに変換される).
ついでにいうと, 変換した後の値が nonPOD なクラス型だとその振る舞いは未定義であるとなっています.
だから, 参照で渡すのは (クラスかどうかには無関係に) 不可能です.
というか, ポインタで渡しちゃだめなの?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のIP取得
-
XML::DOM / XML::XPathでソート
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
メモリをアドレスを直接指定し...
-
<SELECT>タグの折り返し
-
実行時エラー 3020の対策
-
【至急!!!】python言語で本を見...
-
文字の横にプルダウンを表示さ...
-
Pythonでコンソールをクリアす...
-
セレクトメニューで2つの項目...
-
sendmailで複数の宛先にメール...
-
子windowsからsubmit()後にclos...
-
FindFirst を複数条件で検索
-
シェルスクリプトで、空白(ス...
-
連結リストについて
-
vbaでxmlからNodeListでデータ...
-
テーブル内でドロップダウンメ...
-
【メモリ不足で落ちる(python)】
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
STLのlistで重複するものだけを...
-
C# GetFilesで複数のファイルの...
-
PerlでXMLを解析して出力する。
-
Python - Excel で Webからデー...
-
pingコマンドのデフォルト値は?
-
複数のIP取得
-
VBAでの曖昧検索
-
【python】辞書作成(ネスト)を...
-
Scheme 中置式から後置式へ
-
pythonでのリスト内抽出について
-
変数がの入れ方を教えてください。
-
C言語プログラム
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
メモリをアドレスを直接指定し...
-
セレクトメニューで2つの項目...
-
<SELECT>タグの折り返し
-
16進の10進変換について
-
テーブル内でドロップダウンメ...
おすすめ情報