我一直在尝试将备份到备份到谷歌驱动器.但看起来它仍然使用旧的客户端API.
我发现一些线程说应该支持新的API,但没有太多关于如何使它工作的细节.
我得到了编译和使用duplicity 7.0.3,但后来我得到了这个错误:
BackendException: GOOGLE_DRIVE_ACCOUNT_KEY environment variable not set. Please read the manpage to fix.
Run Code Online (Sandbox Code Playgroud)
有没有人设置双重性来使用Google云端硬盘并知道如何执行此操作?
我一直在考虑从C++ 11中继承STL容器.我知道如果没有一些考虑因素就不应该这样做,因为没有虚拟析构函数.
根据我的理解,使用typedef是为STL容器命名的首选方法.
但是,typedef本身并非没有问题.首先,它们不能轻易地向前声明,并且两个typedef可能意外地是相同的类型.
请考虑以下事项:
typedef std::vector<int> vec_a_t;
typedef std::vector<float> vec_b_t;
void func(const vec_a_t& v);
void func(const vec_b_t& v);
Run Code Online (Sandbox Code Playgroud)
这两个函数的行为应根据逻辑类型vec_a_t
或不同而有所不同vec_b_t
这种情况将正常工作,直到有人改变vec_a_t
到
typedef std::vector<float> vec_a_t;
Run Code Online (Sandbox Code Playgroud)
现在打电话func()
突然变得含糊不清.一个现实的例子func()
是
std::ostream& operator<<(std::ostream& ost, const vec_a_t& v);
Run Code Online (Sandbox Code Playgroud)
现在,如果我们改为继承
class Vector : public std::vector<int>
{};
std::ostream& operator<<(std::ostream& ost, const Vector& v);
Run Code Online (Sandbox Code Playgroud)
也可以宣布
class Vector2 : public std::vector<int> {};
std::ostream& operator<<(std::ostream& ost, const Vector2& v);
Run Code Online (Sandbox Code Playgroud)
这显然是消除歧视.
但是,因为std::vector
没有从它们派生的虚拟析构函数,所以这是错误的并且可能导致问题.
相反,我们尝试
class Vector : private std::vector<int>
{
public:
using::size;
//Add …
Run Code Online (Sandbox Code Playgroud) 从标准的角度来看,从一个接口读取参数是否合法,我感到有点困惑.
像这样
interface foo_if #(parameter BAR=5)();
...
logic [BAR-1:0] data;
modport slave(input data, ...);
endinterface
module foobar(foo_if.slave s);
...
logic [s.BAR-1:0] bar;
logic [$bits(s.data)-1:0] m_data;
...
endmodule
Run Code Online (Sandbox Code Playgroud)
我有一个问题,主要的综合工具供应商甚至无法处理这个问题.并且他们在帮助消息中明确告诉您,不允许将$ bits()与接口成员一起使用.
然而,来自其他供应商的仿真工具完全像我拥有的另一个综合工具一样处理这个问
然而,在S.Sherherland等人的SystemVerilog for Design中.它说:
由于在详细说明期间可能尚未完全解析设计层次结构,因此为参数,specparam或localparam常量指定从设计层次结构中的其他位置派生的值是非法的.
但是,如果不允许我使用接口中的参数,它实际上削弱了接口的有用性.
另一方面,SystemVerilog 1800-2012标准规定:
25.10访问界面对象
无论接口是通过端口连接还是通过虚拟接口访问,并且无论该接口中是否存在任何声明的modport,都可以通过分层名称引用访问接口中声明的对象.modport可用于通过显式列出modport中的可访问对象来限制对通过端口连接或虚拟接口引用的接口中声明的对象的访问.但是,不允许在modport中列出的对象仍然可以访问.
我正在尝试使用时钟模块在SystemVerilog中构建测试平台cb_module
.
我从命令行运行Modelsim:
vsim -c test_bench -do "run -all"
Run Code Online (Sandbox Code Playgroud)
一切正常但我无法弄清楚如果像这样的断言失败,如何让Modelsim退出并返回非零退出代码:
##1 assert(cb_module.dat_o == 4'h0) else $finish;
Run Code Online (Sandbox Code Playgroud) backup ×1
c++ ×1
c++11 ×1
inheritance ×1
modelsim ×1
stl ×1
synthesis ×1
vector ×1
verification ×1