c++11 相关问题

将此标记用于必须编译为C ++ 11的代码(不使用C ++ 14或更高版本中引入的任何功能)。

如何强制执行复制省略,为什么它不适用于已删除的复制构造函数?

我有一个无法复制的课程。复制这个会有问题。我想保证它永远不会被复制,所以我删除了它的复制构造函数: A类{ 民众: A(); A(常量 A&...

回答 4 投票 0

如何正确理解`std::string str(std::istreambuf_iterator<char>(t), std::istreambuf_iterator<char>())`?

我已经仔细阅读了最令人烦恼的解析。 我知道下面的代码片段无法编译,因为 S s() 将被视为返回类型为 S 并且没有参数的函数。 结构体S{ ...

回答 1 投票 0

如何使用 <system_error>

我阅读了一系列关于 C++11 中新的 标头的深思熟虑的博客文章。 它表示标头定义了一个 error_code 类,表示由

回答 3 投票 0

是否应该使用C++中的switch语句来检查用户字符输入

我正在关注 C++ 编程语言书籍,并发现了类似于以下代码的代码: 布尔acceptSwitchWithRetry() { int 尝试 = 0; 同时(尝试< 4) { cout << "Do you...

回答 1 投票 0

是否应该使用C++中的switch语句来检查用户字符输入

我正在关注 C++ 编程语言书籍,并发现了类似于以下代码的代码: 布尔acceptSwitchWithRetry() { int 尝试 = 0; 同时(尝试< 4) { cout << "Do you...

回答 1 投票 0

修复第三方代码:“错误:命名空间‘std’中的‘enable_if’未命名模板类型”

在尝试构建第三方应用程序时,我发现它的依赖项之一(https://github.com/genome/joinx)无法使用较新的编译器进行干净的编译。整理过程中...

回答 2 投票 0

我应该在 C++ 中使用 qsort 而不是 sort 吗?

我浏览了大部分关于C++中qsort与sort比较的问题。我只是想问是否有任何情况你更喜欢 qsort 而不是 sort?

回答 3 投票 0

在编译时计算编码 N 个不同状态所需的位数

我需要在编译时计算(结果将用作非类型模板参数)存储N个不同状态所需的最小位数: constexpr 无符号位需要(无符号 n)...

回答 7 投票 0

GNU Plot X 轴数字测距

我无法让 GNU 图上的 X 轴编号不相互挤压在一起。我将附上一个显示问题的 PNG,这是我生成 GNU 图的代码: 无效

回答 1 投票 0

“to_string”不是“std”的成员?

好的,所以我有 tmp.cpp: #包括 int main() { std::to_string(0); 返回0; } 但是当我尝试编译时我得到: $ g++ tmp.cpp -o tmp tmp.cpp:在函数‘int main()’中: TM...

回答 3 投票 0

如何让这个enable_if表达式更简单?

我想确认指针类型是: 不是函数指针(即指向 lua_CFunction 的指针) 不是指向 std::string 的指针 不是指向 char 的指针 不是指向 unsigned char 的指针 模板 我想确认指针类型是: 不是函数指针(即指向 lua_CFunction 的指针) 不是指向 std::string 的指针 不是指向 char 的指针 不是指向 unsigned char 的指针 template <typename T, typename std::enable_if<(!std::is_same<lua_CFunction, T*>::value) && std::is_pointer<T>::value && (!std::is_same<std::string*, T>::value) && (!std::is_same<unsigned char, std::remove_cv<std::remove_pointer<T>>>::value) && (!std::is_same< char, std::remove_cv<std::remove_pointer<T>>>::value)> ::type* = nullptr> 如何让这个表达更简单? 如何使这个表达式更简单(更易读且更短)? 由于您只允许使用 c++11,因此您可以为所有条件创建类型特征,如下所示。 template<typename T> struct checkT { static constexpr bool value = (!std::is_same<lua_CFunction, T*>::value) && std::is_pointer<T>::value && (!std::is_same<std::string*, T>::value) && (!std::is_same<unsigned char, std::remove_cv<std::remove_pointer<T>>>::value) && (!std::is_same< char, std::remove_cv<std::remove_pointer<T>>>::value); }; template <typename T, typename std::enable_if<checkT<T>::value, void>::type> void f(); 请注意,您如何实现不同的检查可能会出现逻辑错误,但这个问题特别询问如何缩短代码。

回答 1 投票 0

当程序取消引用空指针时,程序可能不会崩溃?

我曾经认为,当取消引用空指针时,程序会立即崩溃。 但下面的代码片段效果很好。真是一个惊喜! #包括 #包括 ...

回答 1 投票 0

AX_CXX_COMPILE_STDCXX_11 不起作用:意外标记 `,' 附近存在语法错误

尝试在我的configure.ac文件中使用AX_CXX_COMPILE_STDCXX_11,如下所示: ... AX_CXX_COMPILE_STDCXX_11(,可选) ... 但是,会导致错误: ./configure:第16126行:unexp附近的语法错误...

回答 3 投票 0

双重包含和仅标头库 stbi_image

我有一个main.cpp,包括a.h(它有自己的a.cpp) a.h 包含仅标头的库“stbi_image.h”,如下所示: #ifndef STB_IMAGE_实施 #定义STB_IMAGE_IMPLMENTATION #包括“

回答 2 投票 0

我的代码中出现不必要的红色块

我按照cplusplus给出的说明编写了代码,但我不明白为什么红色块一直出现在我的代码中。我已经安装了最新版本的代码块并启用了

回答 1 投票 0

为什么 `std::istream::seekg()` 会影响 `std::istreambuf_iterator` 的行为?

为什么 std::istream::seekg() 会影响 std::istreambuf_iterator 的行为? 我仔细阅读了cppreference上关于std::istreambuf_iterator的介绍,但是没有直接的答案...

回答 1 投票 0

有条件初始化常量的首选方式

初始化 const 自动变量的首选方法是什么?我能想到几个。 if语句(注:后来我知道这是UB): const std::string s; if( 条件 ) { const_cast 初始化 const 自动变量的首选方法是什么?我能想到几个。 if声明(注:后来我才知道这是UB): const std::string s; if( condition ) { const_cast<std::string&>(s) = "first"; } else { const_cast<std::string&>(s) = "second"; } ?:操作员: const std::string s = ( condition ) ? "first" : second; 立即调用函数表达式: const std::string s = [ & ] () { if( condition ) return "first" else return "second" } (); C++ 核心指南建议使用 lambda 进行复杂的初始化,尤其是 const 变量。 您的 if 语句示例不会初始化任何 const,因为 s 不是 const。 关于其他选项(这主要是主观的),这是我的指导方针: 当表达式短且易于阅读时,请使用?:(三元运算符)。对于你的情况,我认为没问题。 使用 IIFE (立即调用函数表达式)或将初始化重构为返回值的函数当初始化逻辑又长又复杂时并且会对初始化变量的函数的可读性产生负面影响时。 初始化 const 自动变量的首选方法是什么? 首选方法是尽可能简单。 带有条件语句: std::string const a = condition ? "second" : "first"; 使用函数调用(此处为 C++17 constexpr): constexpr char const* get_const(int condition) { switch(condition) { case 0: return "first"; case 1: return "second"; default: return "default"; } } std::string const b = get_const(condition);

回答 3 投票 0

typedef mpl 评估结果的最佳方法

我想知道呈现 mpl 评估结果的各种方法的优缺点是什么。 以此为例进行讨论: 命名空间 bt = boost; 命名空间 bm = bt::mpl;

回答 1 投票 0

无作用域枚举仍然有用吗?

我在 C++11 标准中没有找到任何表示不赞成使用无作用域枚举的措辞,但从实用的角度来看,我想知道它们是否仍然有用。我团队中的很多人都有...

回答 2 投票 0

右值和左值引用的重载函数

假设我有一些模板类 模板 结构虚拟{ // ... }; 我想重载函数“foo”,使其接受左值 或它的右值引用。 我可以做

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.