C++ 11 standardı, derleyici zamanındaki bazı boole koşullarına göre tip seçimi için std::conditional<>
şablonuna sahiptir. Aynı işlem nasıl yapılır, ancak değişken başlatma için init değerini seçmek için nasıl kullanılır? type a = (exp) ? first_value : second_value;
benzer.Koşullu değişken başlatması derleyici zamanında nasıl yapılır?
benim şablonunu kullanmak:
template<bool B, typename T>
inline constexpr T&& conditional_initialize(T&& i1, T&& i2) {
return B ? std::move(i1) : std::move(i2);
}
Ama sadece POD türleri için kullanılabilir: int a = conditional_initialize<true>(1, 2);
. Dizinin başlatılması için bu şablon hata ile derlenmiştir. Yanlış derleme örneği: int a[] = conditional_initialize<true>({1, 2}, {3,4,5});
şablonla bana yardımcı olabilir?
Hayır, 'std :: initializer_list' –
alexeykuzmin0
'int bir [] = conditional_initialize ({1, 2}, {3,4,5}) var @AndyG yerleşik diziler oluşturun. –
@ alexeykuzmin0 gerçekten olurdu, ancak ne yazık ki [şablonlar std :: initializer_list' (
Quentin