C++11 の type_traits を理解しようとしています。私が理解していることから、コンパイル時の型決定が可能になります。したがって、次の場合に何が起こるかを知りたいです。
単純なテンプレート クラスがあるとします。
template<class T>
class A {
public:
int num = 0;
A() {
if (is_integral<T>::value)
num = 5;
}
}
インスタンス化A<int> a
を 100 回行っているとします。これは、オブジェクトを作成するたびに、if ブロックがコンストラクターで呼び出されることを意味しますか? または、コンパイラはコンパイル中に if ブロックを削除 (最適化) しますか? 質問をさらに明確にする必要があるかどうか尋ねてください。