算術型の2つの特殊化を使用してExpressionクラスを実装しようとしています。これはデフォルトクラスです:クラスのenable_ifおよびis_arithmeticを使用したテンプレートの特殊化
template<typename Left, typename Op, typename Right, typename std::enable_if<!std::is_arithmetic<Left>::value, Left>::type* = nullptr>
class Expression { /* ... */ }
そして、それらの2つの専門分野です:私は今、私のコードをコンパイルする場合
template<typename Left, typename Op, typename Right, typename std::enable_if<std::is_arithmetic<Left>::value, Left>::type* = nullptr>
class Expression { /* ... */ };
template<typename Left, typename Op, typename Right, typename std::enable_if<std::is_arithmetic<Right>::value, Right>::type* = nullptr>
class Expression { /* ... */ };
私はこのエラーを取得する:
Error C3855 'Expression': template parameter '__formal' is incompatible with the declaration Vector
どのように私は私を解決することができます私が使ったテンプレートや特殊化やダミータイプの問題。
同じエラーを示す最小限のコード例を共有してください。あなたが提供した情報で、推測するのは難しいですが、何が間違っています。 – paweldac
私は '__formal'(予約された識別子です)という名前のテンプレートパラメータ、または' Vector'という名前の宣言をサンプルコードのどこにも表示しません。 [mcve]を投稿してください。 – Praetorian