相关疑难解决方法(0)

如何在C++中使用PI常量

我想在一些C++程序中使用PI常量和三角函数.我得到了三角函数include <math.h>.但是,此头文件中似乎没有PI的定义.

如何在不手动定义PI的情况下获取PI?

c++ trigonometry

437
推荐指数
16
解决办法
98万
查看次数

类型特征的 _t 别名和 _v 变量模板的目的是什么?

很多*_v后缀*_t,例如std::is_same_vstd::invoke_result_t和数result_of_t以百万计的其他此类函数。

它们为什么存在?std::result_of::type在任何情况下公开诸如或 之类的实现细节是否有益std::is_same::value?忽略标准合规性,_v _t版本是否应该始终是首选?难道这些::type ::value版本根本就不存在吗?

c++ language-design type-traits c++14 c++17

16
推荐指数
4
解决办法
1762
查看次数

如何用C++计算Euler常数或Euler?

我试图找到在C/C++中使用数字e的更"自然"的方法.我专注于计算函数e ^ n.

我认为'cmath',默认情况下,不支持(函数和常量).但是,它可以包含编译器定义的常量,在本例中M_E.这可以通过包含声明来完成#define _USE_MATH_DEFINES.

另一方面,e可以定义为常数:

#define E 2.71828182845904523536;
Run Code Online (Sandbox Code Playgroud)

要么

const double EULER = 2.71828182845904523536;
Run Code Online (Sandbox Code Playgroud)

说这个.哪一个是接近这个数学常数的最"标准"方法?是其他图书馆吗?

c++ eulers-number

13
推荐指数
2
解决办法
2万
查看次数

变量模板+ std :: map的通用lambdas

一个答案C++ 14个可变模板:目的是什么?任何用法示例?提出了一个变量模板+泛型lambdas的用法示例,它看起来像这样:

void some_func() {
    template<typename T>
    std::map<int, T> storage;

    auto store = []<typename T>(int key, const T& value) { storage<T>.insert(key, value) };

    store(0, 2);
    store(1, "Hello"s);
    store(2, 0.7);

    // All three values are stored in a different map, according to their type. 
}
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有编译所以我试图"修复"它,这是我到目前为止的尝试.

#include <map>

template<typename T>
std::map<int, T> storage;

void some_func() {

    auto store = [](int key, const auto& value) { storage<decltype(value)>.insert(key, value); };

    store(0, 2);
    store(1, std::string("Hello"));
    store(2, 0.7);
}
Run Code Online (Sandbox Code Playgroud)

错误消息是:

main.cpp:7:76: error: no …
Run Code Online (Sandbox Code Playgroud)

c++ c++14

5
推荐指数
1
解决办法
1213
查看次数