Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将C++中未定义的已声明函数与Haskell中的“未定义”放在一起?

如何将C++中未定义的已声明函数与Haskell中的“未定义”放在一起?
EN

Stack Overflow用户
提问于 2017-11-21 04:03:52
回答 3查看 890关注 0票数 2

在Haskell中,有一个名为undefined的常量,您可以使用它来声明一个函数,而不需要定义它(即一个带空体的函数原型),就像在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
square :: Int -> Int   -- declaration
square = undefined     -- empty definition

main = putStrLn.show.square $ 3

这对于推迟关于square的工作并首先将精力放在正确的main函数上是非常有用的,因为Haskell编译器确保整个文件编译起来就像定义了square一样。

C++等效为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import <iostream>
int square(int x){
  //TODO incomplete
  return 0;
}

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

我的目的是将像clang++这样的编译器单独作为main的打字机调用,然后在square上工作。假设square确实是许多尚未定义的复杂函数之一,这些函数返回具有非平凡构造函数的复杂数据结构。我需要编写大量的代码来创建可返回的对象,这样才能编译函数。

在C++中有类似于undefined的快速和肮脏的东西吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-21 15:02:17

谢谢你@molbdnilo。使用throw很简洁,而且工作非常完美:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int square(int x) {
  throw("undefined");
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-22 07:17:38

您还可以使用assert,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int square(int x) 
{
  assert(0);
}

它的优点是它不能被抓住,而且总是失败。这将更好地保护您,以防您忘记实现该功能。

票数 0
EN

Stack Overflow用户

发布于 2017-11-22 07:49:30

C++具有纯virtual函数,用于抽象基类。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class foo {
  virtual void bar() = 0;
};

函数foo::bar()无法调用,甚至不能创建foo对象,但是可以在foo的派生类中重写它。但是,您可以给出派生类默认继承的定义。

C++中另一个与undefined有点相似的地方是一个未初始化的函数指针。更安全、更现代的解决方案可能是中止程序的lambda表达式或static存根函数。

在实际使用中,undefined的含义是这样的:一个占位符,如果您试图真正调用它,它将使程序崩溃,但是它编译正确,并将被类型检查。对于单个对象文件,为一个没有在任何地方定义的函数声明一个extern原型将完成这项工作。如果要链接整个程序,就必须有某种定义(虽然函数指针可以绕过它,而代价是安全),但它可以是存根。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47412703

复制
相关文章
Golang计算两个经度和纬度之间的距离
Go语言计算两个经度和纬度之间的距离 package main import ( "fmt" "math" ) func main() { lat1 := 29.490295 lng1 := 106.486654 lat2 := 29.615467 lng2 := 106.581515 fmt.Println(EarthDistance(lat1, lng1, lat2, lng2)) } func EarthDistance(lat1, lng1, lat2, lng
大师级码师
2021/11/02
2.6K0
已知两点的经度和纬度,计算两点间的距离(php,javascript)
php代码:转载  http://www.cnblogs.com/caichenghui/p/5977431.html
lin_zone
2018/08/15
7830
【Java AWT 图形界面编程】经度 Longitude 、纬度 Latitude 计算 ( 经度、纬度概念 | 根据经纬度计算距离 )
经度 Longitude , 本初子午线 位置 为 0 度经线 , 相当于水平 x 轴 的坐标 , 经度的取值范围 -180 度 ~ +180 度 ;
韩曙亮
2023/03/25
7790
【Java AWT 图形界面编程】经度 Longitude 、纬度 Latitude 计算 ( 经度、纬度概念 | 根据经纬度计算距离 )
百度地图JavaScript API获取用户当前经纬度和详细地理位置,反之通过详细地理位置获取当前经纬度
  前端时间刚好使用了百度地图的js api定位获取用户当前经纬度并获取当前详细位置和通过当前用户详细地理位置换取用户当前经纬度坐标的功能,为了方便下次找起来方便一些自己在这里记录一下,希望也能够帮助到有需要的童鞋们!
追逐时光者
2019/08/28
7.2K0
根据位置、经纬度获取天气API
https://seniverse.yuque.com/books/share/ded1e167-e35c-4669-8306-cf65c6e01dc0/start
莫空9081
2021/06/02
6.9K0
通过IP地址获取当前地理位置的接口(包含纬经度)
直接访问:https://api.liguangchun.cn/api/v7/ip/ 就可以查询到了
李光春
2018/09/18
3.5K0
HTML5的Geolocation API
Geolocation API用于将用户当前地理位置信息共享给信任的站点,这涉及用户的隐私安全问题,所以当一个站点需要获取用户的当前地理位置,浏览器会提示用户是“允许” or “拒绝”。
meteoric
2018/11/15
1.5K0
JavaScript与jQuery获取元素的宽、高和位置
今天汇总整理了 JavaScript 和 jQuery 获取元素宽高和位置的方法,比较全面,方便自己和需要并搜到此文章的朋友们查看。
德顺
2019/11/13
3.1K0
第182天:HTML5——地理定位
HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。
半指温柔乐
2018/09/11
2K0
第182天:HTML5——地理定位
JavaScript 中获取光标位置
DOM中并没有直接获取光标位置的方法,那么我们只能间接来获取光标位置。DOM支持获取光标选中的范围,我们可以以此为切入点,来获取或定位光标的位置,当选取范围起始点和结束点一样时,就是光标插入的位置。
越陌度阡
2020/11/26
12.5K0
【Java 进阶篇】JavaScript BOM(浏览器对象模型)详解
BOM,即浏览器对象模型(Browser Object Model),是JavaScript与浏览器之间的接口,它允许JavaScript与浏览器进行交互,实现访问和控制浏览器窗口、文档和其他浏览器功能的功能。本文将详细介绍BOM的各个方面,包括窗口对象、定时器、历史记录、位置信息等,并提供示例代码来帮助您更好地理解和运用BOM。
繁依Fanyi
2023/10/19
6790
用Javascript获取页面元素的位置
制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置。 下面的教程总结了Javascript在网页定位方面的相关知识。 一、网页的大小和浏览器窗口的大小 首先,要明确两个基本概念。 一张网页的全部面积,就是它的大小。通常情况下,网页的大小由内容和CSS样式表决定。 浏览器窗口的大小,则是指在浏览器窗口中看到的那部分网页面积,又叫做viewport(视口)。 很显然,如果网页的内容能够在浏览器窗口中全部显示(也就是不出现滚动条),那么网页的大小和浏览器窗口的大小是相等的。如果不能全部显示,则滚动浏览器
ruanyf
2018/04/12
3.3K0
小程序地图学习之获取位置 获取经纬度 获取地名 获取地址
我们在做小程序开发时,难免会遇到地图相关的开发,而小程序已经为我们提供的比较完善的地图组件。我们只需要调用相关的api就可以实现大致的功能。如:获取经纬度,获取位置,获取地址,获取地名。接下来就具体给大家讲解
编程小石头
2020/10/22
1.8K0
小程序地图学习之获取位置 获取经纬度 获取地名 获取地址
【Go 语言社区】HTML5 Geolocation(地理定位)-转
HTML5 Geolocation(地理定位)用于定位用户的位置。 ---- 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的隐私,除非用
李海彬
2018/03/20
2.5K0
GIS数据漫谈(三)
赤道把地球分为了北半球和南半球,与赤道平行的线就是纬线。赤道是最大的纬圈,由此向北或向南,纬圈半径递减。赤道纬度为 0°,由赤道向两级各分为90°。
thingjs
2022/07/12
1.8K0
GIS数据漫谈(三)
第127天:移动端-获取触摸点的位置
$("#demoid").bind('touchstart',function(){ //代码处理});
半指温柔乐
2018/09/11
1.5K0
第127天:移动端-获取触摸点的位置
实践:了解Redis Geo范围查询,获取当前位置最近的经纬度点
近期有个获取车辆所处道路的需求,车辆行驶的范围在一个城市的市区内,针对一个城市的道路经纬度节点的数据量会比较大(就济南市而言,目前数据量在20万左右),数据的准确性以及检索效率是首要考虑的问题。
恒宇少年
2021/04/12
3.1K0
WebView处理网页位置请求
随着移动设备的激增,LBS(Location Based Service)已然成为趋势,其最关键的还是获取设备的位置信息。native代码获取位置信息轻轻松松可以搞定,实际上网页获取位置信息也不是那么困难。
技术小黑屋
2018/09/04
1.3K0
点击加载更多

相似问题

获取位置(纬度和经度)

20

获取位置的纬度和经度

10

获取位置的纬度和经度

14

无法获取用户位置的经度和纬度

11

无法映射纬度和经度位置

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文