首页 > TAG信息列表 > c++17

c – 模板化使用不能嵌套在Visual Studio中

这简直就像我可以制作一个玩具示例仍然可以找到错误: struct Vector3f64 { double x; double y; double z; }; struct Vector3f32 { float x; float y; float z; }; // I use this to select their element type in functions: template <typename T> us

c – 我可以在不提供参数的情况下生成函数吗?

所以c++17有std::function Deduction Guides所以给出: int foo(); 我可以: std::function bar(foo); 但我坚持使用c++14编译器.我必须做更多的事情:function< int()>巴(富).我想知道是否有办法创建一个std ::函数而不传递函数指针并明确提供函数签名?因此,例如make_pair将从它的参

c模板参数类型推断

我在C中有这样一个模板 template<typename T, T* P> struct Ptr {}; 所以我可以这样使用它: const int i = 0; Ptr<int, &i> ptr; 要么 Ptr<decltype(i), &i> ptr; 但我不想指定类型int或身份我两次,我想只使用 Ptr<&i> ptr; 让编译器自己找出int类型的部分. 如何声明我的模

组织包含范围有限的const引用和C语言模板的代码的好方法

所以,我有以下代码: if (some_boolean_statement) { const auto& ref = getRef<TYPE_A>(); //getRef returns TYPE_A doStuff(ref); } else { const auto& ref = getRef<TYPE_B>(); //getRef returns TYPE_B doStuff(ref); } 所以,我想获得一个常量引用引用,它

c – 可以传递给自动模板参数的内容是否有限制?

参见英文答案 > Non-type template parameters                                    4个 在c++17我们得到auto template parameters.我试图用一个来传递一个对象在这个问题:Can I Write Relational Operators in Terms of Arithmetic Operation

c – std ::绑定到lambda:编译错误

我试图std ::绑定到lambda时遇到错误.以下代码示例编译正常: #include <functional> #include <iostream> int main() { const auto lambda1 = [](int a, int b){ return a + b; }; std::cout << (std::bind( lambda1, std::placeholders::_1, 2))(2) &