アプリ版:「スタンプのみでお礼する」機能のリリースについて

私は現在、VisualC++2005 Express Editionにてプログラミングを行っているのですが、次のようなエラーが出てしまいます。

c:\program files\microsoft visual studio 8\vc\include\utility(44) : error C2664: 'std::pair<_Ty1,_Ty2>::pair(const std::pair<_Ty1,_Ty2> &)' : 1 番目の引数を 'const double' から 'const std::pair<_Ty1,_Ty2> &' に変換できません。(新しい機能 ; ヘルプを参照)
with
[
_Ty1=double,
_Ty2=double
]
理由: 'const double' から 'const std::pair<_Ty1,_Ty2>' へは変換できません。
with
[
_Ty1=double,
_Ty2=double
]
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロードの解決があいまいです。

コードは次のものです。
typedef std::pair<double, double> doublesPair;
typedef std::pair<doublesPair, double> posValDouble;
typedef std::list<posValDouble> posValDoubleList;
----------------------------------------------------
posValDoubleList::iterator pvdl_ite = pvdl.begin();
Double ax = pvdl_ite->first.first;
ay = pvdl_ite->first.second;
az = pvdl_ite->second;

pvdl_ite++;
bx = ---
-
-
-
解決策を教えていただけたらと思います。
よろしくお願いします。

A 回答 (1件)

具体的にdoublesPair, posValDouble, posValDoubleListを


作っている箇所を補足してください。

以下のようなテストコードは当該環境でコンパイルが通りました。
サブセット環境を作ってテストされていますか?

typedef std::pair<double, double> doublesPair;
typedef std::pair<doublesPair, double> posValDouble;
typedef std::list<posValDouble> posValDoubleList;

posValDoubleList pvdl;
doublesPair d_pair;
posValDouble val_double;

d_pair.first = 0.5;
d_pair.second = 0.6;
val_double.first = d_pair;
val_double.second = 1.5;
pvdl.push_back(val_double);

posValDoubleList::iterator pvdl_ite = pvdl.begin();
double ax = pvdl_ite->first.first;
double ay = pvdl_ite->first.second;
double az = pvdl_ite->second;
    • good
    • 0
この回答へのお礼

>hidebunさん
早速の回答ありがとうございました。
よく見てみたところ、
引数がdoublesPairの関数で
(pvdl_ite->firs)という使い方に問題があり、
解決することが出来ました。

お忙しいところ親身に答えていただきありがとうございました。

お礼日時:2007/01/15 00:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!