auto

Wildcard for C++ concepts saying “accepting anything for this template argument”

拟墨画扇 提交于 2020-03-20 07:37:55
问题 Is there a way to allow a concept with template arguments , to be ok with any template parameter provided? I.e. some kind of wildcard magic for template argument placeholder? A usage example: template<class Me, TestAgainst> concept derived_from_or_same_as = std::same_as<Me, TestAgainst> || std::derived_from<decltype(p.first), First>; Above is needed because unfortunately primitive types behave differently than class types for is_base_of and derived_from . Now we can define a Pair concept that

Wildcard for C++ concepts saying “accepting anything for this template argument”

别说谁变了你拦得住时间么 提交于 2020-03-20 07:37:37
问题 Is there a way to allow a concept with template arguments , to be ok with any template parameter provided? I.e. some kind of wildcard magic for template argument placeholder? A usage example: template<class Me, TestAgainst> concept derived_from_or_same_as = std::same_as<Me, TestAgainst> || std::derived_from<decltype(p.first), First>; Above is needed because unfortunately primitive types behave differently than class types for is_base_of and derived_from . Now we can define a Pair concept that

C++11 自动推导auto

落爺英雄遲暮 提交于 2020-03-18 23:11:58
C++11 自动推导auto C++11中引入的auto主要有两种用途:自动类型推导和返回值占位。 auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。 自动类型推导 auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以大大简化我们的编程工作。 auto实际上实在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不良影响。另外,auto并不会影响编译速度,因为编译时本来也要右侧推导然后判断与左侧是否匹配。 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <vector> #include <map> // 3. 使用模板技术时,如果某个变量的类型依赖于模板参数,不使用auto将很难确定变量的类型 template <typename T, typename U> void Multiply(T t, U u) { auto v = t * u; // 使用auto后,将由编译器自动进行确定 } class student { public: static int var1; //auto var2; 错误,非静态成员变量 //static auto

Sublime Text 2 设置文件详解

不羁岁月 提交于 2020-03-18 04:30:28
Sublime Text 2 是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上 介绍软件的文章 和 推荐插件的文章 也不少,而且很不错,大家可以去找找自己需要的。 之前想设置什么都是直接在网上搜,但最近想调行距,这个把我给难住了,软件上的设置没找到,网上搜也没有,最后的最后在Sublime的 官方论坛 找到了,个人觉得行距还是很影响视觉体验的,看看下面的对比图就知道了: (有朋友说想要文章图片里的配色主题,这个不是自带的,我放出来了,喜欢的朋友可以 下载 ) 看来想驾驭好这软件不弄清楚配置文件是不行了,周末找了时间把配置文件的每条配置信息都加上了中文注释,现在贴出来和大家共享,里面有解释不清楚的也欢迎大家伙来互相讨论:) Preferences.sublime-settings文件: 001 <strong> // While you can edit this file, it's best to put your changes in 002 // "User/Preferences.sublime-settings", which overrides the settings in here. 003 // 004 // Settings may also be placed in file type specific

Opencv 如何寻找直线?

こ雲淡風輕ζ 提交于 2020-03-15 13:57:09
void findLine(const std::string file,std::double_t min_distance_value = 100.0) { //https://github.com/opencv/opencv/blob/master/modules/imgproc/src/lsd.cpp auto lsd = cv::createLineSegmentDetector( cv::LSD_REFINE_NONE ); auto img = cv::imread(file,cv::IMREAD_GRAYSCALE); std::vector<cv::Vec4i> result; lsd->detect(img, result); lsd->drawSegments(img, result); for(int i = 0;i < result.size();++i){ auto x1 = result[i][0]; auto y1 = result[i][1]; auto x2 = result[i][2]; auto y2 = result[i][3]; double distance_value = std::sqrt(std::pow((x1-x2),2) + std::pow((y1-y2),2)); if(distance_value > min

C++ 11 学习1:类型自动推导 auto和decltype

不想你离开。 提交于 2020-03-14 23:43:15
Cocos 3.x 用了大量的C++ 11 的东西,所以作为一个C++忠实粉丝,有必要对C++ 11进行一个系统的学习。 使用C++11之前,一定要注意自己使用的编译器对C++11的支持情况,有些编译器并不是完全支持,比如我正在使用的vs2012。这里是msdn里面VS各版本对C++ 11 的支持 对 C++11 功能的支持(现代 C++) 1.auto auto这个关键字C++原先就有,用来指定存储器。因为很少有人去用这个东西,所以在C++11中就把原有的auto功能给废弃掉了,而变成了现在的类型推导关键字。先说下auto的简单用法: #include <iostream> #include <vector> #include <map> using namespace std; int main() { auto num = 1; //num 是int类型 auto c = 'A'; //c 是char类型 auto str("test"); // str是char数组 map<string, vector<int>> map; for(auto it = begin(map); it != end(map); ++it) // it 为迭代器类型 { } return 0; } 这样使用最明显的好处就是在使用迭代器遍历STL容器的时候,不用去声明那些迭代器的类型

margin:0 auto;无法居中怎么办?

丶灬走出姿态 提交于 2020-03-14 07:54:11
很多初学制作网页的朋友,可能会遇到的一个常见问题,就是在CSS中加了margin:0 auto;却没有效果,不能居中的问题!margin:0 auto;的意思就是:上下边界为0,左右根据宽度自适应!其实就是~~水平居中的意思,呵呵!小一在这里说两个典型的错误引起的不能居中的问题: 1、没有设置宽度 <div style="margin:0 auto;"></div> 看看上面的代码,根本没有设置DIV的宽度,如何根据宽度自适应呢?新手比较容易忽略的问题! 2、没声明DOCTYPE ①DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分! ②看看下面的代码,是不是很熟悉?像这样的,在文档最顶端,所有代码之上的乱七八糟的东西,就是用来声明DOCTYPE的! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ③你有三种选择,用来声明DOCTYPE * 过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识

auto as a template argument placeholder for a function parameter

三世轮回 提交于 2020-03-14 05:42:19
问题 C++20 allows using auto for function parameter type. Does it also allow using auto as a template argument placeholder (not similar, but in the spirit of C++17 template<auto> in a way) for function parameter type? So the following code, pre C++20: template<typename First, typename Second> void printPair(const std::pair<First, Second>& p) { std::cout << p.first << ", " << p.second; } Could be written as: void printPair(const std::pair<auto, auto>& p) { std::cout << p.first << ", " << p.second;

auto as a template argument placeholder for a function parameter

谁说我不能喝 提交于 2020-03-14 05:41:27
问题 C++20 allows using auto for function parameter type. Does it also allow using auto as a template argument placeholder (not similar, but in the spirit of C++17 template<auto> in a way) for function parameter type? So the following code, pre C++20: template<typename First, typename Second> void printPair(const std::pair<First, Second>& p) { std::cout << p.first << ", " << p.second; } Could be written as: void printPair(const std::pair<auto, auto>& p) { std::cout << p.first << ", " << p.second;

[WPF]auto和*总结

爷,独闯天下 提交于 2020-03-11 11:53:47
Auto和*效果 Auto 表示自动适应显示内容的宽度, 控件有多大,就显示多大。 * 则表示按比例来分配宽度。 话不多说,直接上例子理解 例子1 代码: <Grid ShowGridLines="True"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--控件--> <Button Grid.Row="0" Content="Auto按钮"/> <Button Grid.Row="1" Content="*按钮"/> <Button Grid.Row="2" Content="Auto按钮"/> <Button Grid.Row="3" Content="*按钮"/> </Grid> 可以看出,Auto表示自动适应控件的宽度,按钮默认多大就显示多大,而剩余的区域则由*去分配,由此可能导致出现一个问题,看下面这个例子。 例子2 代码: //XAML部分代码: <Grid ShowGridLines="True"> <Grid.RowDefinitions> <RowDefinition Height