小编Ram*_*Yen的帖子

了解对象是否为整数或类类型有什么意义?

您好,我在Cppreference.com上看到了许多这样的示例:

std::is_class<T>
std::is_integral
Run Code Online (Sandbox Code Playgroud)

等等。我知道我是否例如运行代码get truefalse。但是,这有什么意义呢?例如知道对象是否为类类型?

#include <iostream>
#include <type_traits>

struct A {};
class B {};
enum class C {};

int main()
{
    std::cout << std::boolalpha;
    std::cout << std::is_class<A>::value << '\n';
    std::cout << std::is_class<B>::value << '\n';
    std::cout << std::is_class<C>::value << '\n';
    std::cout << std::is_class<int>::value << '\n';
}
Run Code Online (Sandbox Code Playgroud)

输出:

true
true
false
false
Run Code Online (Sandbox Code Playgroud)
  • 我已经使用这个找遍了一个真实的例子(is_classis_integralis_arithmetic,...),但所有的教程只显示无望例如:只truefalse

  • 有人能帮我举一个使用此模板的有用示例吗?

c++ templates

15
推荐指数
2
解决办法
380
查看次数

默认初始化和值初始化之间的歧义

我发现许多文章解释了“默认初始化和值初始化”之间的区别,但实际上我并不清楚。

这是一个例子:

class A{
   public:
      int x;
};


int main(){
    A a;// default initialization so x has undefined value.
    A b = A(); // value initialization so x is a scalar thus it is value initialized to 0

}
Run Code Online (Sandbox Code Playgroud)

我猜上面在上面可以,但是在这里:

int value = 4; // is this considered a value-initialization?
Run Code Online (Sandbox Code Playgroud)

请帮助我了解两种初始化形式之间的主要区别。

c++ initialization value-initialization default-initialization

12
推荐指数
1
解决办法
83
查看次数