c++ - 在运行时使用用户定义的文字

标签 c++ c++11 literals

<分区>

我正在尝试在运行时使用用户定义的文字。

我不想在编译时对文字进行硬编码,而是想在运行时指定值。

我创建了 this , 但现在无法进步。

#include <cmath>
#include <iostream>

class Degrees
{
    double degree_;

public:

    explicit Degrees(long double degree) : degree_(degree) {}

    double GetValue() const { return degree_; };
};

Degrees operator "" _deg(long double degree)
{
    // Returns radians
    return Degrees(degree * 3.14159265358979323846264L / 180);
}

int main(int argc, const char * argv[])
{
    long double angle;
    std::cin >> angle;

    Degrees degrees(angle);

    //degrees = 3.1_deg;

    std::cout << degrees.GetValue() << "\n";
    return 0;
}

最佳答案

显然你可以像普通函数一样调用用户定义的文字:

degrees = operator""_deg(angle);

关于c++ - 在运行时使用用户定义的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58140675/

相关文章:

c++ - 对话过程未收到 WM_COMMAND

c++ - for 循环只打印一半的值(使用 vector )

c++ - R_X86_64_PLT32的地址是如何计算的?

c++在线程之间共享状态的最佳方式

c++ - 为什么右值引用整数合法

javascript - 你如何从 JavaScript 文件中抽象出 HTML 模板文字到一个单独的文件,然后将其导入回来?

c++ - 在 ICU 中使用文字字符串

c++ - 使用Boost Asio时获取 “resolve: Host not found (authoritative)”异常

c++ - 在 C++11 中, "lambda function"与 "lambda expression"和 "closure"相同吗?

c++ - 文字是标准术语的对象吗?