c++ - 如何使用任何其他类型制作类似 1LL 的类型转换?

标签 c++ types casting

这有什么意义吗?

    static_cast<long long>(1) == 1LL
    static_cast<float>(1) =? 1F 

有没有一种简单的方法可以为其他类型(例如 float)进行转换? 非常感谢!

最佳答案

从 C++11 开始,您可以定义自己的文字。例如,您可以像这样定义文字 _F:

float operator"" _F(unsigned long long l)
{
    return static_cast<float>(l);
}

int main()
{
    auto a = 1_F;
    static_assert(std::is_same<decltype(a), float>::value, "Not a float");
    return 0;
}

关于c++ - 如何使用任何其他类型制作类似 1LL 的类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424104/

相关文章:

c++ - 在变量中存储一个大数字并循环

Go map 和界面{}

c# - C# 中 "Method"本身的类型是什么?

c++ - 如何防止类型被用作结构/类中的成员变量类型?

C++在数组中查找最大(按行)和最小(按列)元素

c++ - 成员函数 C++ 的无效使用

java - 测试方法的返回类型是否为数字?

c++ - 如何将 int 字符串与消息框一起使用?

c++ - 将运算符覆盖应用于具有动态分配指针的类

c# - 从窗口句柄转换为表单