小编sas*_*ang的帖子

Windows PowerShell:更改命令提示符

使用Windows PowerShell,如何更改命令提示符?

例如,默认提示符说

PS C:\Documents and Settings\govendes\My Documents>
Run Code Online (Sandbox Code Playgroud)

我想自定义该字符串.

windows powershell

78
推荐指数
6
解决办法
5万
查看次数

指向无效内存时,sizeof(*ptr)是否未定义行为?

我们都知道解除引用空指针或指向未分配内存的指针会调用未定义的行为.

但是在传递给表达式时使用的规则是什么sizeof

例如:

int *ptr = 0;
int size = sizeof(*ptr);
Run Code Online (Sandbox Code Playgroud)

这也未定义吗?

c c++ language-lawyer

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

结构中的Unsized数组声明

为什么C允许这样:

typedef struct s
{
  int arr[];
} s;

数组arr没有指定大小?

c arrays flexible-array-member

12
推荐指数
1
解决办法
4358
查看次数

shared_ptr和切片

我曾与之合作的人曾说过,shared_ptr是不安全的,并且会在从派生类转换为基类时进行切片(即向上转换).例如,如果有两个A和B类,其中B来自A,那么

shared_ptr<A> a(new B)
Run Code Online (Sandbox Code Playgroud)

会切片.我指着他http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/shared_ptr.htm 在那里说

shared_ptr<T>可以隐式转换到shared_ptr<U>每当T*可以隐式转换到U*.

暗示在这些情况下使用是安全的,但他似乎并不这么认为.

c++ shared-ptr

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

vim脚本:如何在vim函数中执行命令

为什么如下:

let s:colorschemes = ['synic', 'ir_black']
let s:colorscheme_idx = 0

function! RotateColorscheme()
  let s:colorscheme_idx += 1
  let s:name = s:colorschemes[s:colorscheme_idx]
  echo s:name
  colorscheme s:name
endfunction
Run Code Online (Sandbox Code Playgroud)

不执行colorscheme?Vim抱怨以下错误'找不到colorschem s:name'.我如何告诉它我希望它能够对该变量进行反驳,而不是直接应用于:colorscheme?

vim

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

bash中的垃圾收集

bash运行垃圾收集器吗?可以通过一些命令行选项来控制吗?关于这一点我在网上找不到任何东西.

我有一个bash脚本运行,并在几天内内存使用量增加.我想知道记忆的去向.

linux bash

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

使名称错误的选择器生成编译时错误

在objective-c中,如何使错误名称的选择器生成编译时错误?

例如,说我有这个

 @selector(some_misnamed_func)
Run Code Online (Sandbox Code Playgroud)

我的班级有这个成员

  -(void)some_func
Run Code Online (Sandbox Code Playgroud)

我希望objective-c编译器告诉我它在编译时找不到该函数,而不是仅在运行该代码时生成运行时异常.

objective-c

7
推荐指数
2
解决办法
819
查看次数

如何找到svn存储库的位置?

我在"本地"目录中有所有源文件.我svn upsvn ci于降频,并分别上载代码和库.

现在我意识到存储库中有一个目录我没有制作本地副本.所以,我需要做两件事:

  1. 找出存储库所在的位置(我很确定它位于文件系统中的某个位置,而不是URL).
  2. 我需要创建此目录的本地副本.

怎么做到呢?目前我对第一步更感兴趣.我需要知道存储库的位置,因为我不知道我需要复制的子目录的名称是什么(但是如果我看到我猜的名字).

svn working-copy svn-repository

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

无法加载文件或程序集“System.Runtime.CompilerServices.Unsafe”

尝试将 SQLTypeProvider 与 postgres 一起使用时,运行时出现以下错误

dotnet build
Run Code Online (Sandbox Code Playgroud)

错误 FS3033:类型提供程序 'FSharp.Data.Sql.SqlTypeProvider' 报告错误:无法加载文件或程序集 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'。该系统找不到指定的文件。[/home/sashan/code/titan/src/Server/Server.fsproj]

我的数据提供者是这样的:

type SQL = SqlDataProvider< 
                  ConnectionString = pg_dev_conn_string,
                  DatabaseVendor = Common.DatabaseProviderTypes.POSTGRESQL,
                  UseOptionTypes = true >
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为以下内容

type SQL = SqlDataProvider< 
              ConnectionString = pg_dev_conn_string,
              DatabaseVendor = Common.DatabaseProviderTypes.POSTGRESQL,
              ResolutionPath = "/home/sashan/code/dotnet/2.1.500/sdk/NuGetFallbackFolder/system.runtime.compilerservices.unsafe/4.5.1/lib/netcoreapp2.0",
              UseOptionTypes = true >
Run Code Online (Sandbox Code Playgroud)

错误消失了,但我不明白为什么。修复看起来真的很奇怪。为什么我必须将它指向我的项目之外的文件?System.Runtime.CompilerServices.Unsafe.dll 不应该位于编译器可以找到它的项目子目录之一中的某个位置吗?

c# f# npgsql visual-studio f#-data

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

允许 F#(或任何函数式语言)在同一输入上多次应用函数的理论漏洞是什么

在 F# 中,如果我写

let p = printfn "something"
Run Code Online (Sandbox Code Playgroud)

它将对表达式求值一次。任何后续引用都p将计算为单位。从理论的角度来看,函数的定义,这是有道理的。函数应该只对相同的输入返回相同的结果。

但是,如果我希望发生副作用(即输出到屏幕),那么我需要将参数传递给 p。通常这个参数就是unit值。

let p () = printfn "something"
Run Code Online (Sandbox Code Playgroud)

但是,当每次应用函数的参数都相同时,为什么 F# 每次都会对函数求值呢?当然,与第一种情况相同的推理应该适用吗?函数的输入p不会改变,因此不需要多次评估它。

f# functional-programming

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