iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中std::conditional的使用说明
  • 361
分享到

C++中std::conditional的使用说明

2024-04-02 19:04:59 361人浏览 独家记忆
摘要

目录std::conditional的使用具体用法具体理解为以下显示了更多的例子利用std::conditional实现变量的多类型std::conditional的使用 今天在项目

std::conditional的使用

今天在项目中发现c++11新特性中的std::conditional关键词,经过查询资料,学习到了其中含义。

具体用法

std::conditional<表达式, 类型1, 类型2>

具体理解为

如果表达式为真则定义的变量为类型1,如果表达式为假则定义的变量为类型2。

如:

typedef typename std::conditional<true, int, double>::type Type1;// => int Type1

则Type1的类型为int类型

以下显示了更多的例子

#include <iOStream>
#include <type_traits>
#include <typeinfo>
 
int main() 
{
    typedef typename std::conditional<true, int, double>::type Type1;
    typedef typename std::conditional<false, int, double>::type Type2;
     typedef typename std::conditional<sizeof(int) == sizeof(double), int, double>::type Type3;
 
    std::cout << typeid(Type1).name() << std::endl; // 输出:i (代表int类型)
    std::cout << typeid(Type2).name() << std::endl; // 输出:d (代表double类型)
    std::cout << typeid(Type3).name() << std::endl; // 输出:d (代表double类型)
    
    Type1 a = 3.1; // 由于Type1的类型为int所以3.1被强制转换为3
    Type2 b = 4.2; // Type2的类型为double,4.2保存在变量b中
    std::cout << a +  b << std::endl; // 3+4.2,最终输出为7.2
}

利用std::conditional实现变量的多类型

//std::conditional<bool, A, B>::type 
const bool kEnableOffsetRender = false; 
class LoginDialog : public std::conditional<kEnableOffsetRender, ui::WindowImplBase, nim_comp::ShadowWndBase>::type
{
public:
    //todo
};
 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: C++中std::conditional的使用说明

本文链接: https://www.lsjlt.com/news/154102.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中std::conditional的使用说明
    目录std::conditional的使用具体用法具体理解为以下显示了更多的例子利用std::conditional实现变量的多类型std::conditional的使用 今天在项目...
    99+
    2024-04-02
  • C++中std::conditional如何使用
    本篇内容介绍了“C++中std::conditional如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!std::conditiona...
    99+
    2023-07-02
  • C++11之std::future对象的使用以及说明
    目录std::future介绍细节说明wait系列操作get操作时序图std::future使用总结std::future介绍 在前面几篇文章中基本都用到thread对象,它是C++...
    99+
    2023-02-28
    C++11 std::future std::future对象 std::future对象使用
  • C#中Stopwatch的使用及说明
    目录C# Stopwatch的使用什么是StopwatchStopwatch的简单使用C#使用Stopwatch精确测量运行时间测量耗时操作的运行时间查看Stopwatch计时器的计...
    99+
    2023-02-25
    C# Stopwatch C# Stopwatch的使用 C# Stopwatch的说明
  • c# delegate和event的使用说明
    delegate是什么 委托(delegate) 是存有对某个方法的引用的一种引用类型变量,引用可在运行时被改变。如果不好理解,可以把委托理解成为函数指针,但它们是有区别的。 del...
    99+
    2024-04-02
  • C++中forauto的用法及说明
    目录C++中for auto的用法C++ for(auto &a:b)、for(auto a:b)、for(const auto &a:b)总结C++中for aut...
    99+
    2023-02-25
    C++ for auto for auto的用法 for auto说明
  • C++中new的用法及说明
    目录C++ new的用法知识点小结new的三种使用方法概念示例C++ new的用法 知识点小结 new其实就是告诉计算机开辟一段新的空间,但是和一般的声明不同的是,new开辟的空间在...
    99+
    2022-11-13
    C++中new new的用法 C++ new用法
  • C#延时函数的使用说明
    目录C#延时函数使用C#3个延时函数 C#延时函数使用 在线程中如果需要延时,尽量不要使用Sleep()函数,这样会导致时间片切到别的线程中。 使用如下函数:  ...
    99+
    2024-04-02
  • pytorch 中nn.Dropout的使用说明
    看代码吧~ Class USeDropout(nn.Module): def __init__(self): super(DropoutFC, se...
    99+
    2024-04-02
  • C++中的%的含义说明
    目录C++中的%的解释补充:c++中&什么意思C++中的%的解释 两种意思:1、格式化字符串输出2、整数取余 1、目前printf支持以下格式的输出,例如:printf(&q...
    99+
    2023-03-07
    C++中 % 的含义 C++中 %是什么
  • C++11中final说明符的用法
    本篇内容主要讲解“C++11中final说明符的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11中final说明符的用法”吧!当我们声明/定义了一个虚函数时候,派生类可以选择覆盖这个...
    99+
    2023-06-19
  • C++11的override说明符怎么使用
    本篇内容主要讲解“C++11的override说明符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11的override说明符怎么使用”吧!多态和虚函数多态是C++的重要特征之一,...
    99+
    2023-06-19
  • RCMD的使用说明
    这篇文章主要介绍“RCMD的使用说明”,在日常操作中,相信很多人在RCMD的使用说明问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RCMD的使用说明”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!*****...
    99+
    2023-06-08
  • c++11中std::move函数的使用
    C++11在运行期有所增强,通过增加核心的右值引用机制来改善临时对象导致的效率低下的问题。C++临时对象引入了多余的构造、析构及其内部资源的申请释放函数调用,导致程序运行时性能受损,...
    99+
    2024-04-02
  • mysql8.0JSON_CONTAINS的使用说明
    目录JSON_CONTAINS的使用语法案例JSON_CONTAINS函数问题结构如下JSON_CONTAINS的使用 语法 JSON_CONTAINS(json_doc, val[...
    99+
    2024-04-02
  • C++20中的std::span怎么使用
    这篇文章主要讲解了“C++20中的std::span怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++20中的std::span怎么使用”吧!span就是一个连续对象存储的观察者。...
    99+
    2023-07-05
  • Java8中Optional类的使用说明
    目录简介 历史null带来的种种问题方案 场景引入 方法说明构造函数创建Optional对象使用map从Optional对象中提取和转换值使用flatMap链接Optional对象默...
    99+
    2024-04-02
  • vue中iframe的使用及说明
    目录关于iframe的使用获取iframe里面的内容CDM跨域使用iframe的总结代码展示关于iframe的使用 iframe在同域时能自由操作iframe和父框架的内容(DOM)...
    99+
    2024-04-02
  • PyTorch中grid_sample的使用及说明
    目录关于grid_sample的使用下面将介绍具体的例子torch.nn.functional.grid_sample() 注意点细节总结关于grid_sample的使用 grid_...
    99+
    2023-02-01
    PyTorch grid_sample grid_sample的使用 grid_sample的说明
  • Keras中Conv1D的使用及说明
    目录Conv1D参数输入尺寸输出尺寸输入输出尺寸的理解keras Conv1D 一维卷积的输入维度报错情况问题原因解决方法总结Conv1D keras.layers.Conv1D(f...
    99+
    2022-12-15
    Keras中Conv1D Conv1D的使用 Keras中Conv1D使用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作