template<typename T>
if (std::is_same<T, FrontCameraSegment>::value) {
height = segment.height;
}
私はいくつかのセンサーを処理するテンプレートを持っています。私は高さのプロパティを送信し、他のものはそうしません。私はコード内でその値を一度必要とし、Visualize()
の残りの機能はすべてのセンサーで同じです。 したがって、T is_same
がFrontCameraSegmentであるかどうかを確認してから、segment.heightプロパティを1回使用したいと考えました。 しかし、コンパイラは"height"
がロジックであるT
に渡されるすべての要素のメンバーではないと言います。 同じ理由でキャストが機能しません。 継承を使用してセンサーを再構成することはできません(私はその部分を行うことはできません)。メンバーが存在する場合のC++設定値
私の質問:コンパイラにheight
がメンバーであることを確認したと教えてもらえますか?
["constexpr if"と "if if"を最適化している可能性があります - なぜ "constexpr"が必要なのですか? ](https://stackoverflow.com/questions/40972666/constexpr-if-vs-if-with-optimizations-why-is-constexpr-needed) – LogicStuff
あなたは 'stdの結果に基づいてあなたのテンプレートを専門化する必要があります:: is_same :: value' –
user0042
@LogicStuff正しい答えを指摘してくれてありがとう。しかし、私はこれが重複していることに同意しない。 Duplicateは重複した質問を意味します。この場合、2つの異なる質問に対する答えは同じです。 https://meta.stackoverflow.com/a/266246/1023911およびhttps://meta.stackoverflow.com/q/292329/1023911も参照してください。 –