constexpr which を get に渡す

そういえば、constexpr variant だと which の値を直接 get に渡すことが出来ますねーと。

[ソース]

#include <sprout/variant.hpp>
#include <sprout/string.hpp>


int
main(){
    typedef sprout::variant<int, double, sprout::string<16>> var;
    {
        constexpr var v{42};
        static_assert(sprout::get<v.which()>(v) == 42, "");
    }
    {
        constexpr var v{1.25};
        static_assert(sprout::get<v.which()>(v) == 1.25, "");
    }
    {
        constexpr var v{ sprout::stretch<16>("homu") };
        static_assert(sprout::get<v.which()>(v) == "homu", "");
    }

    return 0;
}


どんな値が保存されているか分からない場合だと結構有効そうな。
Sprout.Weed の戻り値とか。