相关疑难解决方法(0)

从char**隐式转换为const char**

为什么我的编译器(GCC)没有隐式地转换char**const char**

以下代码:

#include <iostream>

void print(const char** thing) {
    std::cout << thing[0] << std::endl;
}

int main(int argc, char** argv) {
    print(argv);
}
Run Code Online (Sandbox Code Playgroud)

给出以下错误:

oi.cpp: In function ‘int main(int, char**)’:
oi.cpp:8:12: error: invalid conversion from ‘char**’ to ‘const char**’ [-fpermissive]
oi.cpp:3:6: error:   initializing argument 1 of ‘void print(const char**)’ [-fpermissive]
Run Code Online (Sandbox Code Playgroud)

c c++ string gcc casting

17
推荐指数
2
解决办法
5753
查看次数

为什么我不能reintpret_cast uint到int?

这就是我想要做的事情:

const int64_t randomIntNumber = reinterpret_cast<int64_t> (randomUintNumber);

randomUintNumber的类型uint64_t.

错误是(MSVC 2010):

错误C2440:'reinterpret_cast':无法从'const uint64_t'转换为'int64_t'1>转换是一种有效的标准转换,可以隐式执行,也可以使用static_cast,C风格的转换或函数式转换

为什么不编译?两种类型都有相同的位长,是不是reinterpret_cast用于什么?

c++ type-conversion reinterpret-cast

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

标签 统计

c++ ×2

c ×1

casting ×1

gcc ×1

reinterpret-cast ×1

string ×1

type-conversion ×1