小编sud*_*008的帖子

.h和.cpp文件中的默认参数

编译器: g ++ 4.7.2

好.所以我对.h.cpp文件中的默认参数感到困惑.许多地方(包括本网站)都提到默认参数只能添加到.h文件而不能添加到.cpp文件中.但是,这段代码证明错了:

test1.h

#pragma once

#include <iostream>
using namespace std;

class Class{
public:
    Class(int, int, int=1);
};
Run Code Online (Sandbox Code Playgroud)

test1.cpp

#include "test1.h"

Class::Class(int a, int b=2, int c)
{
    cout<<a<<" "<<b<<" "<<c<<endl;
}

int main()
{
    Class a(1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,根据我测试的内容,可以将默认参数添加到.cpp文件中.但是,以下限制包含:

  1. 存在于.cpp.h文件中的默认参数不应重叠.即Class(a, b, c=1)(在.h文件中)和 Class::Class(a,b,c=2)(在.cpp文件中)无效.

    众所周知,一旦添加了默认参数,之后声明的所有变量也必须包含默认值.让我们称之为defpara规则.现在,

  2. 函数声明(.h文件)中声明的变量应遵守defpara规则,即Class(a, b=2, c)(在.h文件中)无效,无论.cpp文件中声明的是什么.

  3. 如果考虑具有默认值的变量(作为.h.cpp文件中的默认值的交集),它将遵循defpara规则.即Class(a, …

c++ oop header-files

36
推荐指数
3
解决办法
4万
查看次数

sudo模式和内核模式之间有区别吗?

在类UNIX系统中,我们有一个用户模式和一个内核模式.有些指令在用户模式下无法访问.但是,当我们这样做时sudo,我们可以访问操作系统的许多关键部分,执行关键操作.

我的问题是:当程序在sudo模式下执行时,整个程序是否以内核模式运行?或者,sudo模式只是一个管理用户,其权力仅仅是内核可以执行的操作的子集?

unix linux sudo operating-system linux-kernel

21
推荐指数
2
解决办法
5057
查看次数

在emacs中设置SLIME

我正在尝试安装SLIME.我下载了压缩包,根据README文件,我不得不把这段代码放在.emacs文件中:

(add-to-list 'load-path "~/hacking/lisp/slime/")  ; your SLIME directory
(setq inferior-lisp-program "/opt/sbcl/bin/sbcl") ; your Lisp system
(require 'slime)
(slime-setup)
Run Code Online (Sandbox Code Playgroud)

slime目录很简单.关于Lisp系统.我怎么找到它?

lisp emacs common-lisp slime

12
推荐指数
2
解决办法
8730
查看次数

如何在emacs中永久启用hs-minor-mode

我在.emacs文件中使用thhs代码来永久启用hs-minor-mode并更改快捷方式:

(setq-default hs-minor-mode t)
(global-set-key (kbd "C-c C-h") (kbd "C-c @ C-h"))         ;;hiding block of code
(global-set-key (kbd "C-c C-r") (kbd "C-c @ C-s"))         ;;revealing block of code
Run Code Online (Sandbox Code Playgroud)

但模式不会自动激活.我该怎么办?

emacs elisp

11
推荐指数
2
解决办法
5306
查看次数

绳索数据结构

我正在阅读有关绳索数据结构的内容.我有兴趣使用C++和Qt构建文本编辑器.我的问题是:C++等编程语言中的内置字符串操作函数是否使用了绳索数据结构?或者我是否需要编写自己的代码来实现绳索,以便我可以更有效地执行串联和删除等字符串操作?

c++ string rope data-structures

10
推荐指数
1
解决办法
3017
查看次数

在StartLogin函数中传递几个参数

我正在构建一个自定义连接器,通过OAuth2连接到我们的API.这样我们就可以使用api作为powerbi的数据源.

    // Resource definition
        Resource = [
            Description = "MyAPI",
            Type = "Custom",
            MakeResourcePath = (env) => env,
            ParseResourcePath = (env) => {env},
            Authentication = [OAuth=[StartLogin = StartLogin, FinishLogin = FinishLogin, Refresh = Refresh]],
    ......
Icons = [
            Icon16 = { Extension.Contents("MyAPI10.png"), Extension.Contents("MyAPI20.png") }
        ],
        Label = "MyAPI"
    ]
in
    Extension.Module("MyAPI", { Resource })
Run Code Online (Sandbox Code Playgroud)

我使用MakeResourcePath和ParseResourcePath传递Environment参数(在power bi site/desktop中将其作为用户的输入).传递给StartLoginOAuth授权调用.

  StartLogin = (env, state, display) =>
        let
            resourceUrl = getOAuthUrlFromEnvName(env) & "/oauth/authorize",
            AuthorizeUrl = resourceUrl & "?" & Uri.BuildQueryString([ …
Run Code Online (Sandbox Code Playgroud)

m oauth-2.0 powerbi powerbi-embedded powerbi-datasource

9
推荐指数
1
解决办法
337
查看次数

在 AppCenter 中构建使用 Carthage 的应用程序

我继承了一个用 Carthage 构建的项目。使用 Xcode 12,我遇到了这个错误:

致命错误:/Applications/Xcode_12.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:/Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/ 4.6.0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML 和 /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6 .0/Build/Products/Release-iphonesimulator/AEXML.framework/AEXML 具有相同的体系结构 (arm64),并且不能位于同一个 fat 输出文件中

使用通用架构构建通用框架是不可能的。“AEXML”的设备和模拟器切片均针对以下版本构建:arm64 使用 --use-xcframeworks 重新构建以创建 xcframework 捆绑包。

快速的谷歌搜索让我发现了这个适用于我的本地机器。

第一次使用 AppCenter,我使用以下内容创建了一个预构建脚本:

#!/usr/bin/env bash

# Pre-build
# See: https://learn.microsoft.com/en-us/appcenter/build/custom/scripts/#pre-build
echo "Pre-build has started."
sh ./carthage.sh update --use-submodules
echo "Pre-build has ended."
Run Code Online (Sandbox Code Playgroud)

我认为应该使用迦太基来构建这个?我在 AppCenter 中收到错误:

*** 在 AEXML.xcodeproj 中构建方案“AEXML iOS” shell 任务 (/usr/bin/xcrun lipo -create /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6. 0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML\ iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0 /Build/Products/Release-iphonesimulator/AEXML.framework/AEXML -output /Users/runner/work/1/s/Carthage/Build/iOS/AEXML.framework/AEXML) 失败,退出代码 1:致命错误:/Applications /Xcode_12.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:/Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build /Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML 和 /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/ Products/Release-iphonesimulator/AEXML.framework/AEXML 具有相同的架构 (arm64),并且不能位于同一个 fat 输出文件中

使用通用架构构建通用框架是不可能的。“AEXML”的设备和模拟器切片均针对以下版本构建:arm64 使用 --use-xcframeworks …

mobile carthage visual-studio-app-center visual-studio-app-center-distribute

9
推荐指数
2
解决办法
4289
查看次数

以'并行'运行语句

在python中,我必须交换2个变量的值,所有你需要做的就是

x,y=y,x
Run Code Online (Sandbox Code Playgroud)

可以看一下它就好像两个语句 - (x = y)和(y = x)并行执行而不是一个接一个地执行.

有没有办法在c ++中实现相同的效果?

注意/编辑:

我希望将这种"并行效果"(如果存在)扩展到更复杂的表达式,如
ones,twos= (ones ^ n) ^ ~twos, (ones & n) | (twos & ~n);

这在python中是可能的,是否可以在c ++中使用?

结论:

所以根据leemes给出的答案和对他答案的评论:

1.您可以在C++ 03或中使用boost库

你可以使用C++ 11

访问std::tiestd::tuple实现这种"并行"效果.至于目前,我将leemes的答案标记为已被接受,但我仍然在寻找在C++ 03中实现这一很酷功能的方法.

c++ python

8
推荐指数
1
解决办法
321
查看次数

在emacs中为Qt自动完成

我已经沉迷于emacs,并一直在使用它.现在,我已经启动了Qt4.我被迫转移到Qt Creator,因为它在Qt中编写程序时需要自动完成功能,因为它中大量使用了预定义函数.

但问题是我不想离开emacs.有没有办法在emacs中获得接近Qt Creator的自动完成功能.

我已经安装了CEDET-1.1,我发现了c ++的文本文件,其中包含了所有常用的c ++关键字.一种方法是在该文件中添加Qt类和函数名称,这为Qt提供了一个非常基本的自动完成.但我可以获得更好的汽车完成吗?

emacs qt autocomplete qt4

7
推荐指数
1
解决办法
2012
查看次数

用箭头连接可变半径的节点

我有一些不同半径的圆/节点,我必须用箭头末端的路径连接它们.

这是标记的代码:

svg.append("svg:defs").selectAll("marker")
    .data(["default"])
  .enter().append("svg:marker")
    .attr("id", String)
    .attr("viewBox", "0 -5 10 10")
    .attr("refX", 5)
    .attr("refY", -1.5)
    .attr("markerWidth", 10)
    .attr("markerHeight", 10)
    .attr("orient", "auto")
    .append("svg:path")
    .attr("d", "M1,-5L10,0L0,5");  
Run Code Online (Sandbox Code Playgroud)

我已将圆的半径存储在数组中.这是屏幕截图:

在此输入图像描述

箭头实际上是"圈内".如何让箭头位于圆圈表面?

javascript svg graph d3.js

6
推荐指数
2
解决办法
2322
查看次数