0

算術型Tの場合、変換演算子を含むクラスを持つことができます。

template <typename T>
class Value
{
    constexpr operator T() const;
};

これoperatorはすべてのタイプで利用できますか (例として、それは機能しますか?)、そうでないT = std::vector<double>場合、どのタイプで機能しますか?

4

1 に答える 1

1

型は型です。適切に定義されたユーザー定義型ではなく、組み込み型でできることはほとんどありません。この場合、唯一の実際の要件は、型がコピー可能であること (および実装でそれを構築する方法があること) です。

ところで、私はあなたが意味したと思います:

class Value
{
    template <typename T>
    constexpr operator T() const;
};

(ただし、多くの型ではconstconstexprや no として実際に使用することはできません)。

于 2013-01-23T18:47:29.440 に答える