Youtube の GoogleTechTalks ビデオで、Bjarne Stroustrup が今後の C++0x 標準について語っています。ビデオの中で、彼は次の例に言及しています。
#include <iostream>
struct Sick
{
Sick(double d) { std::cout << d << "\n"; }
explicit Sick(int i) { std::cout << i << "\n"; }
};
int main()
{
Sick s1 = 2.1;
Sick s2(2.1);
}
特定のコンテキストでの暗黙の変換に関連する問題を強調するために、explicit
キーワードをSick(double)
ではなくの前に置くつもりだったのでしょうか?Sick(int)