标签: ownership

验证域名所有权

将Google Adsense或Gmail设置为网站所有者时,您需要修改CNAME记录以进行验证.微软做了同样的事情.

我正在建立一个网站,我希望组的所有者以同样的方式验证域的所有权.我该如何做到这一点?

dns verification verify ownership

6
推荐指数
1
解决办法
1799
查看次数

成员拥有参数的所有权

我看到一个成员获得参数所有权问题的两个合理的解决方案:

Foo::Foo(std::unique_ptr<int> parameter)
: member(std::move(parameter))
{
}

Bar::Bar(std::unique_ptr<int> parameter)
{
    member.swap(parameter);
}
Run Code Online (Sandbox Code Playgroud)

哪一个更惯用,更容易理解,更容易调试,更容易维护等?

我错过了这个问题的其他解决方案吗?

c++ constructor ownership move-semantics c++11

6
推荐指数
1
解决办法
155
查看次数

C++ - 通过指针表示所有权

在我的游戏引擎中,有三个类:EntityCharacter,EntityVehicleEntityVehicleSeat.

在此输入图像描述

EntityVehicle包含具有指向EntityCharacter实例的指针的席位对象.如果seat对象的目标字符实体指针是空指针,则该特定的seat对象上不会有任何字符.EntityCharacter类实例还具有指向座位对象的指针,指示这些字符实体是否位于某些车辆中.

换句话说,EntityCharacter类实例有一个指向EntityVehicleSeat的指针,反之亦然:

EntityCharacter -> EntityVehicleSeat
EntityCharacter <- EntityVehicleSeat
Run Code Online (Sandbox Code Playgroud)

这样我们就可以通过角色和车辆实体来检查这种所有权.

设置指针以指向彼此会很简单,但是有一个问题 - 如果另一个对象超出范围,我们最终在剩余对象中有一个无效指针.

在此输入图像描述

如何能够很好地代表这种所有权?另一个对象如何被告知另一个对象不再存在的事实?

c++ pointers ownership nullptr

6
推荐指数
1
解决办法
202
查看次数

具有EXECUTE AS OWNER的存储过程是从第三个模式表中选择的视图的有效替换吗?

数据库用户A应该只能访问特定数据.此数据当前由视图B.VIEW1提供,该视图从模式BC拥有的表中进行选择.

CREATE VIEW [B].[VIEW1] AS SELECT * FROM [B].[VIEW2], [C].[VIEW1]
Run Code Online (Sandbox Code Playgroud)

由于C.VIEW1不归B所有,因此所有权链适用.

这意味着虽然A被授予对B.VIEW1的SELECT权限,但它无法从中进行选择.

SELECT permission denied on object 'C.VIEW1', database '...', schema '...'.
Run Code Online (Sandbox Code Playgroud)

存储过程B.PROC1EXECUTE AS OWNER条款在安全性方面是B.VIEW1的有效替代吗?

CREATE PROC [B.PROC1] WITH EXECUTE AS OWNER AS BEGIN SELECT * FROM [B.VIEW2], [C].[VIEW1] END
Run Code Online (Sandbox Code Playgroud)

或者是否存在可能导致任何安全问题的负面副作用?

sql sql-server permissions stored-procedures ownership

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

所有权和有条件执行的代码

我在周末阅读了这本锈,我对所有权概念有疑问.我得到的印象是所有权用于静态确定资源可以解除分配的位置.现在,假设我们有以下内容:

{                                                 // 1
    let x;                                        // 2
    {                                             // 3
        let y = Box::new(1);                      // 4
        x = if flip_coin() {y} else {Box::new(2)} // 5
    }                                             // 6
}                                                 // 7
Run Code Online (Sandbox Code Playgroud)

我很惊讶地看到编译器接受了这个程序.通过插入println!s并Drop为盒装值实现特征,我看到包含值1的框将在第6行或第7行解除分配,具体取决于返回值flip_coin.编译器如何知道何时解除分配该框?这是在运行时使用一些运行时信息决定的(比如一个标志来指示盒子是否仍在使用中)?

ownership rust

6
推荐指数
1
解决办法
222
查看次数

复制构造函数以转移unique_ptr的所有权

我需要编写一个复制构造函数,它还传输要复制的对象的unique_ptr成员的所有权.情况如下:

class C{
   // C class stuff       
};

class A{
public:
    public A();
    public A(const A& a);
private:
    std::unique_ptr<C> c_;
}

class B{

public:

    B(const A& b) : a_(a){}

private:
     A a_;


};
Run Code Online (Sandbox Code Playgroud)

我该如何实现复制构造函数A

c++ copy-constructor ownership unique-ptr

6
推荐指数
1
解决办法
3021
查看次数

如何声明一个比其封闭块更长寿的闭包

我想这个问题一般都是关于生命周期的,但我特别是因为你不能写出他们的类型而对闭包有困难.

这个例子有点做作 - 我刚刚开始学习Rust,这是我一直挂着的东西.

这个程序不会编译:

fn main () {
    let mut list: Vec<&Fn() -> i32> = Vec::new();

    {
        list.push(&|| 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

因为:

src/main.rs:5:25: 5:24 error: borrowed value does not live long enough
src/main.rs:5         list.push(&|| 1);
                                 ^~~~
src/main.rs:2:50: 7:2 note: reference must be valid for the block suffix following statement 0 at 2:49...
src/main.rs:2     let mut list: Vec<&Fn() -> i32> = Vec::new();
src/main.rs:3
src/main.rs:4     {
src/main.rs:5         list.push(&move || 1);
src/main.rs:6     }
src/main.rs:7 }
src/main.rs:5:9: 5:26 note: ...but borrowed value is …
Run Code Online (Sandbox Code Playgroud)

lifetime ownership rust

6
推荐指数
2
解决办法
330
查看次数

什么时候实现想要在Rust中拥有自己的所有权?

我正在阅读有关生命周期的Rust文档.我尝试过类似的东西:

struct S {
    x: i8,
}

impl S {
    fn fun(self) {}

    fn print(&self) {
        println!("{}", self.x);
    }
}

fn main() {
    let s = S { x: 1 };
    s.fun();
    s.print();
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error[E0382]: borrow of moved value: `s`
  --> src/main.rs:16:5
   |
15 |     s.fun();
   |     - value moved here
16 |     s.print();
   |     ^ value borrowed here after move
   |
   = note: move occurs because `s` has type `S`, which does not implement the `Copy` trait
Run Code Online (Sandbox Code Playgroud)

这是因为该 …

ownership rust

6
推荐指数
2
解决办法
666
查看次数

如何将值的所有权转移到Rust的C代码?

我正在尝试用FFI编写一些Rust代码,其中涉及C获取结构的所有权:

fn some_function() {
    let c = SomeStruct::new();
    unsafe {
        c_function(&mut c);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想c_function拥有c.在C++中,这可以通过以下release方法实现unqiue_ptr.Rust中有类似的东西吗?

ffi ownership rust

6
推荐指数
1
解决办法
942
查看次数

Google Play控制台开发者帐户-转让所有权

就像标题中提到的-如何更改Google Play控制台开发者帐户的所有权。

更改所有权意味着将开发者的帐户与其他Gmail帐户相关联,并放开以前的关联(并且可能不会再支付25美元的注册费)。

注意:有一个类似的问题,但我认为它被错误地标记为一个不能回答该问题的重复项。(它回答了如何将应用程序转移到另一个帐户)

我也不同意接受的答案似乎也没有回答问题。

因此,对于未来的读者,作为一个单独的问题进行询问和回答。

android ownership google-play google-play-console

6
推荐指数
2
解决办法
2586
查看次数