标签: casting

Naming.lookup()做什么?

我一直在通过一个非常简单的示例来设置远程方法调用应用程序,并且在通过客户端代码时,我无法理解一个代码,如下所示.当然,我的知识缺口,因为我虽然界面不能有对象,除非你使用匿名内部类.所以在下面的代码中我们是如何创建远程接口的对象的.如果我不得不猜测,对我来说似乎是某种类型的铸造.

import java.rmi.*; 
public class HelloClient { 
  public static void main(String args[]) { 
  try { 
    if (args.length < 0) { 
      System.err.println("usage: java HelloClient string …\n"); 
      System.exit(1); 
    } 
HelloInterface hello = (HelloInterface)Naming.lookup("//localhost/Hello");          
Run Code Online (Sandbox Code Playgroud)

最后一行是我无法理解(HelloInterface)部分究竟发生了什么?

java casting rmi

-1
推荐指数
1
解决办法
6356
查看次数

为什么`reinterpret_cast`不像C++标准那样表现?

在入口处reinterpret_cast,cppref说:

可以将积分,枚举,指针或指向成员类型的表达式转换为其自己的类型.结果值与表达式的值相同.(自C++ 11以来)

但是,以下代码无法编译(clang 5.0 with -std=c++1z):

enum class A : int {};

int main()
{
    A a{ 0 };
    reinterpret_cast<int>(a); // error : reinterpret_cast from 'A' to 'int' is not allowed
}
Run Code Online (Sandbox Code Playgroud)

为什么不像reinterpret_castC++标准那样表现?

c++ standards casting type-conversion c++11

-1
推荐指数
1
解决办法
70
查看次数

我是否过多地投射整数类型?

我是Rust的新手,我一直在重新解决Project Euler的问题.问题是,我意识到我一直在构建整数类型(主要是i32- i64)以适应我的陈述; for iterators,in循环,函数输入,条件等等.这是正常的吗?

我猜我在使用PE的一次性功能以及主要来自动态类型语言时做错了.

我总是尝试使用尽可能小的(或最可行的)积分类型来解决问题,我觉得我应该只i64考虑所有事情并完成它而不是那么多.

哪个是更好/推荐的方法,毯i64式类型或合理的整数类型与代码中的转换?

编辑:在我想澄清的评论之后,这不是一个代码审查查询,而是关于最佳实践和可读性问题,因为这两个选项中的哪一个是首选.我认为,在循环中没有误用时,铸造对性能的影响可以忽略不计.

不相关的PS:我正在使用一系列素数因素做P4,结果是没有回文是两个4位数素数的产物,而两个3位素数的最大值是99899

casting rust

-1
推荐指数
1
解决办法
208
查看次数

将SQL Server中的varchar转换或转换为INT

我正在尝试将以下内容转换为整数,以便可以进行从123.456.789到的计算123456789

但是,当我尝试

CAST([Total number] AS INT)
Run Code Online (Sandbox Code Playgroud)

要么

CONVERT(int, [Total number])
Run Code Online (Sandbox Code Playgroud)

然后我得到一个错误

将varchar值'123.456.789'转换为数据类型int时,转换失败。

sql sql-server casting type-conversion

-1
推荐指数
1
解决办法
4811
查看次数

如何将ifstream转换为istream

有什么方法可以转换ifstream成一个istream?我有一个函数调用getToken(istream* br),接受一个istream作为参数,但在我main()使用an ifstream来读取文件,我必须使用它ifstream来调用getToken.我怎样才能克服这个问题?

c++ casting istream ifstream

-1
推荐指数
1
解决办法
575
查看次数

将哈希引用转换为数组引用

我想在perl中可以从散列中获取数组引用或将ref散列转换为ref数组!

例如 :

%trad = ('January','Jan','February','Feb');
$ref = \%trad;      # made a reference on hash
$ref2 = [%{$ref}];  # convert ref hash to ref array
Run Code Online (Sandbox Code Playgroud)

以其他方式我们可以写:

$ref2 = [%{\%trad}];
Run Code Online (Sandbox Code Playgroud)

但是这段代码是散列上的ref数组的错觉,因为contruction $ ref = [...]创建了一个对通过Perl复制哈希元素而创建的匿名数组的引用.

您可以通过尝试填充$ ref2指向的数组来查看,这对哈希没有影响!

有没有办法直接在内存区域直接操作哈希,使用真正的引用数组,如C中的cast方法!

arrays perl hash casting reference

-1
推荐指数
1
解决办法
540
查看次数

为什么(int)pow(2,32)== -2147483648

在互联网上,我发现了以下问题:

int a = (int)pow(2, 32);
cout << a;
Run Code Online (Sandbox Code Playgroud)

它在屏幕上打印什么?

首先我想到了0,但是在我编写代码并执行它之后,我得到了-2147483648,但为什么呢?

我也注意到了(int)(pow(2, 32) - pow(2, 31))等于-2147483648.

谁能解释为什么(int)pow(2, 32)等于-2147483648

c++ casting

-1
推荐指数
1
解决办法
904
查看次数

正确的强制语法

我有这样的代码:

const quint8* data[2];    
const float *p0 = (float*)data[0]
Run Code Online (Sandbox Code Playgroud)

在QtCreator中,我收到警告:

"使用旧式演员".

我试着像这样写:

const float *p0 = const_cast<float*>(data[0])
Run Code Online (Sandbox Code Playgroud)

但我得到的另一个错误是类型之间无法生成.

什么应该是正确的语法?

c++ casting

-1
推荐指数
1
解决办法
86
查看次数

有没有合法的方法将unsigned char指针转换为std :: byte指针?

我使用STB库将图像加载到内存中.特定函数stbi_load返回指向a的指针unsigned char,该指针是一个数组.

我很想将新的C++ 17 API用于原始数据,std::byte这将使我更具表现力,让我逐个像素地对原始数据进行别名,或者通过将其转换为不同的数据类型来逐个颜色(不同大小的整数).

现在我尝试了这个:

std::unique_ptr<std::byte[], stbi_deleter>(stbi_load(...));
Run Code Online (Sandbox Code Playgroud)

当然,由于缺乏隐式转换,它不起作用.

然后我尝试了:

std::unique_ptr<std::byte[], stbi_deleter>(
  static_cast<std::byte*>(stbi_load(...))
);
Run Code Online (Sandbox Code Playgroud)

同样,它仍然没有奏效.我不得不决定使用reinterpret_cast.并让我怀疑这种转换是否合法.我unsigned char*可以std::byte* 根据严格的别名规则合法地转换为?然后我可以将数据转换为另一种数据类型std::uint32_t*并进行变异吗?这会破坏别名规则吗?

c++ casting bytebuffer strict-aliasing

-1
推荐指数
1
解决办法
193
查看次数

将char**转换为char* - 它会改变它指向的内容吗?

如果我有一个指向char*s数组的指针,换句话说,一个名为p1的char**,如果我这样做(char*)p1我会得到什么?我猜测会有一些精度损失.我会丢失哪些信息,以及p1现在指向的是什么?谢谢!

c casting point

-1
推荐指数
1
解决办法
67
查看次数