Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。




6
为什么在C ++中引用不是“ const”?
我们知道,“常量变量”表示一旦分配,就不能更改该变量,如下所示: int const i = 1; i = 2; 上面的程序无法编译;gcc提示错误: assignment of read-only variable 'i' 没问题,我可以理解,但是以下示例超出了我的理解范围: #include<iostream> using namespace std; int main() { boolalpha(cout); int const i = 1; cout << is_const<decltype(i)>::value << endl; int const &ri = i; cout << is_const<decltype(ri)>::value << endl; return 0; } 它输出 true false …

2
犰狳solve()线程安全吗?
在我的代码中,我有一个循环,在该循环中构造并确定了线性系统并尝试解决该问题: #pragma omp parallel for for (int i = 0; i < n[0]+1; i++) { for (int j = 0; j < n[1]+1; j++) { for (int k = 0; k < n[2]+1; k++) { arma::mat A(max_points, 2); arma::mat y(max_points, 1); // initialize A and y arma::vec solution = solve(A,y); …


4
为什么const成员函数可以修改静态数据成员?
在以下C++程序中,从函数修改静态数据成员const可以正常工作: class A { public: static int a; // static data member void set() const { a = 10; } }; 但是从函数修改非静态数据成员const不起作用: class A { public: int a; // non-static data member void set() const { a = 10; } }; 为什么const成员函数可以修改static数据成员?
86 c++  function  c++11  static  const 


4
我可以在Xcode中使用C ++ 11吗?
我正在考虑auto在某些跨平台项目(Windows + Mac)中使用某些C ++ 11功能(例如)。在Windows上,Visual Studio支持即将到来的C ++ 11标准的某些部分,这将使我能够简化部分代码库,因此自然而然地,我将有兴趣开始使用这些功能。 但是据我所知,当前的XCode版本(3.2.4 + GCC 4.2)根本不支持任何C ++ 11功能。我可以以某种方式升级GCC版本或CLang版本吗?还是我应该只咬一口舌头,等待苹果在将来的某个时候打包新版本?
86 c++  xcode  gcc  c++11  clang 

1
为什么即使我使用[[fallthrough]],GCC也会警告我有关失败的消息?
在下面的代码中,我使用[[fallthrough]]C ++ 1z的standard属性来说明需要进行彻底检查: #include <iostream> int main() { switch (0) { case 0: std::cout << "a\n"; [[fallthrough]] case 1: std::cout << "b\n"; break; } } 使用GCC 7.1,代码可以正确编译。但是,编译器仍然警告我一个失败之处: warning: this statement may fall through [-Wimplicit-fallthrough=] std::cout << "a\n"; ~~~~~~~~~~^~~~~~~~ 为什么?



10
漂亮打印std :: tuple
这是我先前关于漂亮打印的STL容器的问题的跟进,我们设法为其开发了一个非常优雅且完全通用的解决方案。 在接下来的步骤中,我想std::tuple<Args...>使用可变参数模板(严格来说是C ++ 11)进行的漂亮打印。对于std::pair<S,T>,我只是说 std::ostream & operator<<(std::ostream & o, const std::pair<S,T> & p) { return o << "(" << p.first << ", " << p.second << ")"; } 打印元组的类似结构是什么? 我尝试了各种形式的模板参数堆栈拆包,传递索引并使用SFINAE来发现何时到达最后一个元素,但是没有成功。我不会因我的代码破译而使你负担重;希望问题描述很简单。本质上,我想要以下行为: auto a = std::make_tuple(5, "Hello", -0.1); std::cout << a << std::endl; // prints: (5, "Hello", -0.1) 包括与上一个问题相同级别的通用性(char / wchar_t,对定界符)的加分点!



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.