C++ メタプログラミング ライブラリ boost の mp11 モジュールは、一連の便利なメタプログラミング アルゴリズムと関数を提供します。このうち mp_is_list は型がリストかどうかを判定するメタ関数です。

C++ メタプログラミング ライブラリ boost の mp11 モジュールは、一連の便利なメタプログラミング アルゴリズムと関数を提供します。このうち mp_is_list は型がリストかどうかを判定するメタ関数です。

mp_is_list 関数の定義は次のとおりです。

template <class T> struct mp_is_list;

リスト型かどうかに応じて、std::false_type または std::true_type を継承します。

以下は、mp_is_list 関数の使用をテストするプログラム コードです。

#include <iostream>
#include <type_traits>
#include <boost/mp11/list.hpp>
#include <boost/mp11/utility.hpp>

int main() {
    using namespace std;
    using namespace boost::mp11;

    // test for list type
    static_assert(mp_is_list<mp_list<int, char, double>>::value);
    static_assert(mp_is_list<mp_list<int, char>>::value);
    static_assert(mp_is_list<mp_list<>>::value);

    // test for non-list type
    static_assert(!mp_is_list<int>::value);
    static_assert(!mp_is_list<char>::value);
    static_assert(!mp_is_list<double>::value);

おすすめ

転載: blog.csdn.net/Jack_user/article/details/132285774