【问题标题】:Can we use currency signs in variable declaration in C++ language?我们可以在 C++ 语言的变量声明中使用货币符号吗?
【发布时间】:2022-01-22 17:00:51
【问题描述】:

在 C++ 语言中声明变量时,我们可以使用像 $ 这样的货币符号吗? 我试图在谷歌上找到答案,但我不清楚。我们不能在 c++ 语言的变量名中使用像 #*% 这样的特殊符号,但是我们可以使用像 这样的货币符号吗和$ 作为变量名?

【问题讨论】:

  • 不,见here
  • Yes,但是需要编译器支持,而且不是标准的C++。
  • 不在标准 C++ 中。也就是说,一些编译器确实提供了非标准扩展。但是大多数编译器不提供这样的扩展。

标签: c++ naming-conventions


【解决方案1】:

如果你使用“用户定义的文字”,你可以。 https://en.cppreference.com/w/cpp/language/user_literal 然而,并非所有编译器都会对卢比特殊字符感到满意(MSVC 接受它) 这里的例子:

#include <iostream>

struct dollars_t
{
    double value;
};

struct rupees_t
{
    double value;
};

constexpr dollars_t operator "" _$(long double value)
{
    return dollars_t{ static_cast<double>(value) };
};

constexpr rupees_t operator "" _₹(long double value)
{
    return rupees_t{ static_cast<double>(value) };
};


int main()
{
    auto dollars = 10.12_$;
    auto rupees = 1000.12_₹;

    std::cout << "You have " << dollars.value << " dollars\n";
    std::cout << "And you have " << rupees.value << " rupees\n";

    return 0;
}

【讨论】:

  • 我认为 op 要求在变量名中使用特殊字符,例如 int ₹ = 0;
  • 呵呵,是的,我倾向于想太多。哦,好吧
  • different question 的好回答;)
  • 谢谢,我会把它贴在那里;)
猜你喜欢
  • 2010-11-10
  • 2012-09-23
  • 2011-05-14
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多