dtolnay/cxx

Box clone() member function to call Clone on opaque Rust types

オープン

#105 opened on 2020/04/11

 (3 件のコメント) (0 件のリアクション) (0 人の担当者)Rust (253 件のフォーク)batch import
help wanted

Repository metrics

Stars
 (4,472 個のスター)
PR merge metrics
 (平均マージ 8m) (30d で 3 merged PRs)

説明

We should provide a way to constrain that some opaque Rust type implements Clone and then expose the Clone impl to C++ via a clone() member function on rust::Box.

Something like:

mod ffi {
    extern "Rust" {
        type ClonableR: Clone;
    }

    extern "C++" {
        fn f(b: Box<ClonableR>); // C++ will be able to clone b
    }
}
  template <typename T>
  class Box {
+   Box clone() const noexcept;
  };

コントリビューターガイド