首页 > 其他分享 >VS2017 设置 类模板参数推导(CTAD, Class Template Argument Deduction)

VS2017 设置 类模板参数推导(CTAD, Class Template Argument Deduction)

时间:2024-12-02 16:12:56浏览次数:5  
标签:CTAD 17 VS2017 C++ mutex Template lock 模板

''#include
std::mutex m_mutex;
...
std::lock_guard lock(m_mutex); //A
..

以上代码编译 提示 C2955 ,没有模板参数

改为
std::lock_guardstd::mutex lock(m_mutex); 编译成功

但是 有的代码 用A处的写法,编译就成功。
原因
虽然 C++17 引入了类模板参数推导(CTAD, Class Template Argument Deduction),使得在某些情况下可以省略模板参数
但 std::lock_guard 并不是一个支持 CTAD 的类模板。因此,你需要显式指定模板参数
在 Visual Studio 2017 中,默认情况下是支持 C++17 标准的,因此类模板参数推导(CTAD, Class Template Argument Deduction)是可用的。你不需要特别设置来启用 CTAD。
然而,如果你遇到问题,可能是因为你的项目配置没有启用 C++17 标准。你可以通过以下步骤来确保你的项目使用 C++17 标准:
设置步骤
步骤 1:打开项目属性
在 Visual Studio 中,右键点击你的项目,然后选择“属性”。
步骤 2:设置 C++ 语言标准
在左侧的树形菜单中,选择“配置属性” -> “C/C++” -> “语言”。
在右侧的“C++ 语言标准”下拉菜单中,选择“ISO C++17 标准 (/std:c++17)”。
步骤 3:应用更改
点击“应用”按钮,然后点击“确定”按钮。

标签:CTAD,17,VS2017,C++,mutex,Template,lock,模板
From: https://www.cnblogs.com/keleman/p/18582063

相关文章

  • [Design Pattern] Encapsulate a network request lib - 4. API Template
    Whencompany'sAPIbecomehugeandalwayschanging,if request-busismaintainedbydevelopersmanually,it'snotonlytimeconsumingbutalsoerrorprone.Wecanintroducesomestandardautomationprocesstoresolvetheproblem. Examples:{......
  • 使用XWPFTemplate进行java后端word模版导出
    1.pom引入poi-tl<dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.7.3</version></dependency> 2.word模版 3.业务代码......
  • [Vue] toRef: convert reactive to ref in order to destructure reactive object use
    import{reactive,computed}from"vue"exportdefault{setup(){constevent=reactive({capacity:4,attending:["Tim","Bob"],spacesLeft:computed(()=>{returnevent.capacity......
  • RestTemplate exchange GET POST请求传参数DEMO
    RestTemplateexchangeGETPOST请求传参数DEMOlink:Illegalcharacter((CTRL-CHAR,code31))问题排查gzip接口返回RestTemplateGETPOST请求https://www.cnblogs.com/oktokeep/p/16769602.htmlimportorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.spr......
  • vue-admin-template学习
    vue-admin-template权限篇参考网址-https://juejin.cn/post/6844903478880370701思路:-不同权限对应不同的路由-侧边栏也需要根据不同的权限,异步生成实现逻辑-用户名和密码校验是否正确 -正确返回token,存储到cookie(记住用户登录状态) -带着token向后端......
  • WPF Datagrid DataGridTemplateColumn DataTemplate UserControl MVVM
    //uercontrol<UserControlx:Class="WpfApp47.ImgTbk"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc=&......
  • templates
    templates前言2024.11.25此文用于整理板子字符串KMPnamespaceKMP{constexprintN=1e6+7;chars[N],t[N];intlens,lent;intnxt[N];//后缀i的border长度voidmain(){sf("%s%s",s+1,t+1);lens=strlen(s+1),lent=strlen......
  • Template
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglong//#defineint__int128#definelllonglongtypedefunsignedlonglongull;usingld=longdouble;//#definegetchar_getchar_nolock//getchar_unlocked//#defineputchar_putch......
  • 【StringRedisTemplate】SpringBoot项目集成Redis
    目录SpringDataRedis介绍SpringDataRedis的作用SpringDataRedis提供的工具类环境准备引入依赖配置文件StringRedisTemplate的使用StringRedisTemplate的基础APIStringRedisTemplate的常用操作APIRedis的应用场景SpringDataRedis介绍SpringData是Spring......
  • 【攻防世界】Web_python_template_injection
    Web_python_template_injection:python模板漏洞python的flask模板注入的题思路比较固定,Jinja2模板引擎中,{{}}是变量包裹标识符。{{}}并不仅仅可以传递变量,还可以执行一些简单的表达式。1.先判断是否存在注入{{config}}2.获取基本类:{{''.__class__.__mro__}}.__class......