std::bitset::size
が非静的である理由を私はおそらく想像できません。サイズがconstexpr
になるのはずっと難しくなります。それは静的であれば、あなたがしなければならないだろう、すべてがなぜstd :: bitset :: sizeが非staticなのですか
BitsetType::size()
だろうと機能のない犠牲はないだろうとき
template<int val>
struct int_
{
static const constexpr value = val;
};
template<size_t size>
auto getBitsetSizeIMPL(std::bitset<size>)
{
return int_<size>{};
}
template<typename BitsetType>
constexpr size_t getBitsetSize()
{
return decltype(getBitsetSizeIMPL(BitsetType{}))::value;
}
:あなたはこのような何かを記述する必要があります。
私には紛失しているという歴史的理由があるのですか、技術的な事実がありませんか?
FWIWは、あなたが 'BitsetType {}サイズを行うことができます()'。 – cpplearner
True!それについて考えなかった。それははるかに良いです。しかし、それでも静的にならない理由は何ですか? –
'std :: array :: size'が静的でないのと同じ理由で、私は想像します。誰かが先週それについて尋ねていた。 –