gpt4 book ai didi

c++ - 如何在 C++ 中保留未定义的声明函数,如 Haskell 中的 `undefined`?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:42:13 24 4
gpt4 key购买 nike

在 Haskell 中有一个叫做 undefined 的常量,你可以用它来声明一个函数而不定义它(即函数原型(prototype)为空体),与 square 一样

square :: Int -> Int   -- declaration
square = undefined -- empty definition

main = putStrLn.show.square $ 3

这对于推迟 square 的工作并专注于首先正确获取 main 函数非常有用,因为 Haskell 编译器确保整个文件的编译就像square 已定义。

C++ 等价物是

#import <iostream>
int square(int x){
//TODO incomplete
return 0;
}

int main() {
std::cout << square(3);
}

我的意图是单独调用像 clang++ 这样的编译器作为 main 的类型检查器,然后在 square 上工作。想象一下,square 确实是许多尚未定义的复杂函数之一,这些函数返回具有非平凡构造函数的复杂数据结构。我将不得不编写大量代码来创建可返回对象,只是为了编译函数。

在 C++ 中是否有类似 undefined 的东西?

最佳答案

谢谢@molbdnilo。使用 throw 简洁且完美:

int square(int x) {
throw("undefined");
}

关于c++ - 如何在 C++ 中保留未定义的声明函数,如 Haskell 中的 `undefined`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47412703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com