我刚刚发现下面的代码是不是有效的C++(它不会在解析int后~):
int x = 5;
x.~int();
Run Code Online (Sandbox Code Playgroud)
但是,以下代码段确实有效:
int32_t x = 5;
x.~int32_t();
Run Code Online (Sandbox Code Playgroud)
这是因为int32_t是typedef在我的特定实现C++的,和析构函数,显然,可以在任何Typedef的类型调用.
我的问题是:是否需要允许第二个剪切编译的C++的任何实现?特别是,int32_t保证是一个typedef,并且如果它知道typedef typedef要int的话,是否允许销毁typedef所需的编译器?
我有一个hashmap: HashMap<SomeKey, SomeValue>,我想使用它hashmap并将其所有值作为向量获取。
我现在的做法是
let v: Vec<SomeValue> = hashmap.values().cloned().collect();
Run Code Online (Sandbox Code Playgroud)
cloned复制每个值,但这种构造不消耗哈希图。我可以消费地图。
有没有办法在不复制它们的情况下获取值?
我正在附近使用简单的汇编脚本进行实验,似乎无法找到一种打印数组长度的方法。这是最小的复制品:
let a = new Array<string>();
logging.log(a.length.toString());
Run Code Online (Sandbox Code Playgroud)
不与
ERROR TS2339: Property 'toString' does not exist on type 'i32'.
logging.log(a.length.toString());
~~~~~~~~
in assembly/main.ts(171,23)
Run Code Online (Sandbox Code Playgroud)
虽然toString()明显存在于上i32,例如以下代码段可以编译和运行:
let a: i32 = 5;
logging.log(a.toString());
Run Code Online (Sandbox Code Playgroud) 我有一个近端帐户,其密钥不在分类帐上,并且有一个带有近端应用程序的分类帐设备。
我想将分类帐中的密钥添加到我的附近帐户中。为此,我需要知道与分类账(上的某些路径)关联的公钥。我怎样才能得到这样的公钥?
我是区块链、智能合约和近协议方面的新手。我正在尝试从https://near.academy/学习。测试网上有一个示例合约:museum.testnet。
我使用的是 Windows,并且安装了 wsl2。
我可以用
near login命令登录。但在那之后,当我调用near view museum.testnet getmemecount命令时,它给了我下面的错误。谁可以帮我这个事?
View call: museum.testnet.getmemecount()
An error occured
Error: Querying [object Object] failed: wasm execution failed with error: FunctionCallError(MethodResolveError(MethodNotFound)).
{
"block_hash": "SZv8UsCeNXLkhjPa9KeZY6xJXmKNb6MLyKXqHVddiT5",
"block_height": 65109663,
"error": "wasm execution failed with error: FunctionCallError(MethodResolveError(MethodNotFound))",
"logs": []
}
at JsonRpcProvider.query (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/node_modules/near-api-js/lib/providers/json-rpc-provider.js:116:19)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async Account.viewFunction (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/node_modules/near-api-js/lib/account.js:351:24)
at async exports.callViewFunction (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/index.js:75:48)
at async Object.handler (/home/cinar/.nvm/versions/node/v14.18.0/lib/node_modules/near-cli/utils/exit-on-error.js:52:9)
TypedError: Querying [object Object] failed: wasm execution failed with error: FunctionCallError(MethodResolveError(MethodNotFound)).
{
"block_hash": "SZv8UsCeNXLkhjPa9KeZY6xJXmKNb6MLyKXqHVddiT5",
"block_height": …Run Code Online (Sandbox Code Playgroud) 我有一个 NEAR 应用程序,其中大多数方法不传输任何令牌。用户使用 NEAR 钱包完成标准登录流程,获得 0.25N 的 Gas 限额,然后与应用程序交互。
我现在有一个新的端点,我希望可以从前端调用它,它期望用户支付明显超过 0.25N 的金额:
#[payable]
pub fn buy_stuff() {
Run Code Online (Sandbox Code Playgroud)
当我使用标准near-api-js方式调用它时:
window.contract.buy_stuff({}, undefined, price).then(m => window.location.href='/');
Run Code Online (Sandbox Code Playgroud)
它失败了,因为它试图花费登录price访问密钥的配额,而它没有——它自然只有 0.25N 的 Gas。
具体错误是“访问密钥 {account_id}:{public_key} 没有足够的余额 247864837491516400000000 用于交易成本计算 5004231023352653388973496”
我想要的是将用户重定向到钱包,并使用钱包中的完整访问密钥授权此特定交易。有没有办法做到这一点near-api-js?