<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【C++】requires關(guān)鍵字簡介

      requires 是 C++20 中引入的一個新關(guān)鍵字,用于在函數(shù)模板或類模板中聲明所需的一組語義要求,它可以用來限制模板參數(shù),類似于 typenameclass 關(guān)鍵字。

      requires關(guān)鍵字常與type_traits頭文件下類型檢查函數(shù)匹配使用,當(dāng)requires后的表達(dá)式值為true時滿足requires條件,代表由其修飾的函數(shù)/類的模板參數(shù)合法,可以正常使用

      requires 關(guān)鍵字可以用于以下兩種情況:

      • 在函數(shù)模板或成員函數(shù)中,使用 requires 關(guān)鍵字限制函數(shù)模板或成員函數(shù)的參數(shù)或返回值必須滿足一定的語義要求。例如:
      template <typename T>
      void print(T t) requires std::is_integral_v<T> {
          std::cout << t << std::endl;
      }
      
      

      在這個例子中,使用 requires 關(guān)鍵字限制函數(shù)模板參數(shù) T 必須是整數(shù)類型。

      • 在類模板或成員類中,使用 requires 關(guān)鍵字限制類模板或成員類必須滿足一定的語義要求。例如:
      template <typename T>
      requires std::is_integral_v<T>
      class IntContainer {
      public:
          IntContainer(T t) : value_{t} {}
      
      private:
          T value_;
      };
      
      

      在這個例子中,使用 requires 關(guān)鍵字限制類模板參數(shù) T 必須是整數(shù)類型。

      需要注意的是,requires 關(guān)鍵字僅能用于函數(shù)模板和類模板中,不能用于非模板函數(shù)和非模板類。此外,requires 關(guān)鍵字的語義要求必須在編譯時可驗證,否則將引發(fā)編譯時錯誤。

      #include <iostream>
      
      class TestRequires
      {
      public:
          template <typename T>
          static void test(T t)
              requires std::is_integral_v<T>
          {
              std::cout << "test(T t) requires int" << std::endl;
          }
      
          template <typename T>
          static void test(T t)
              requires std::is_floating_point_v<T>
          {
              std::cout << "test(T t) requires float" << std::endl;
          }
      
      };
      int main()
      {
          TestRequires::test(123);
          TestRequires::test(1.234);
          return 0;
      }
      

      除此之外,requires關(guān)鍵字也可以用于類型轉(zhuǎn)換前的檢查(假如函數(shù)內(nèi)需要):

      template <typename T>
      int64_t unpack(T v) requires std::is_integral<T>::value
      {return static_cast<int64_t>(v);}
      
      posted @ 2023-05-15 01:02  縉云燒餅  閱讀(1983)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻少妇偷人精品一区| 国内熟妇人妻色在线视频| 涩涩爱狼人亚洲一区在线| 日韩欧美在线综合网另类| 亚洲人成网站在线播放动漫| 成人国产精品一区二区不卡| 亚洲欧美人成人让影院| 成av免费大片黄在线观看| 久久三级中文欧大战字幕| 精品人妻系列无码天堂| 国产高清乱码又大又圆| 亚洲av无码成人精品区一区| 国精品无码一区二区三区在线蜜臀| 水蜜桃av无码| 国产一区二区一卡二卡| 欧美疯狂xxxxxbbbbb| 视频一区二区不中文字幕| 国产线播放免费人成视频播放| 国产在线中文字幕精品| 亚洲日韩成人无码不卡网站| 国产日韩AV免费无码一区二区三区| 亚洲第一国产综合| 国产精品亚洲片夜色在线| 在线天堂中文新版www| 日韩狼人精品在线观看| 日本一码二码三码的区分| 国产第一页屁屁影院| 日韩精品一区二区三区蜜臀| 少妇被无套内谢免费看| 梅河口市| 国产精品人成视频免| 亚洲乱码中文字幕小综合| 国产一区在线播放av| 曰韩无码二三区中文字幕| 国产精品乱码高清在线观看 | 她也色tayese在线视频| 香蕉久久夜色精品国产成人| 日韩精品av一区二区三区| 视频一区视频二区视频三| 蜜臀av午夜精品福利| 日韩熟女精品一区二区三区 |