小编Dan*_*aum的帖子

Visual Studio:如何在运行VS的实例中从Windows命令行打开文件到特定行?

遗憾的是,无法使用Windows命令行在特定行号已运行的Visual Studio实例中打开文件.(VS 2008)

在Visual Studio中以特定行号打开文件,显示失败的命令行参数组合,并显示可在命令行中调用的可执行文件的代码 - 但此代码不构建为开箱即用的在VS 2008中.

有没有人知道能够完成这个非常基本的任务的变通方法(例如VS宏)?

(注意:只有官僚机构才能阻止这个非常基本的功能在10年的大量商业用途中实施.)

谢谢Dan Nissenbaum

visual-studio-2008 visual-studio

5
推荐指数
2
解决办法
5579
查看次数

为什么信号量的条件/互斥量实现在其"wait()"函数中需要"while"循环?

我一直在仔细研究以下SO问题的接受答案:C++ 0x没有信号量?如何同步线程?

在该答案的信号量实现中,这里是wait()函数的实现:

void wait()
{
    boost::mutex::scoped_lock lock(mutex_);
    while(!count_)
        condition_.wait(lock);
    --count_;
}
Run Code Online (Sandbox Code Playgroud)

我试图了解while(!count_)病情的目的.

另一个SO问题的答案(信号量的这种实现如何工作?)表明当notify_one()条件变量被调用时,有可能超过一个等待该条件变量的线程将被唤醒 - 因此需要while环.我想确认一下 - 是完整的和/或正确的答案,还是有其他原因while需要循环?

如果多个线程被唤醒,哪个线程拥有互斥锁?我想的越多,如果多个线程因单次调用而唤醒,那么看起来就越不明确notify_one().BOTH唤醒线程是否不可能将count_值看作高于0,并继续递减count_,导致count_值小于0,并且失败信号量的目的(和正确性)?

c++ boost

5
推荐指数
1
解决办法
613
查看次数

boost :: posix_time :: microsec_clock是CPU密集型的吗?

我想使用Boost以毫秒精度获得时间.(准确度不需要是毫秒,只需关闭.)

参考当地时间(以毫秒为单位)和其他时间,表示应使用微秒钟:

boost::posix_time::microsec_clock::local_time();
Run Code Online (Sandbox Code Playgroud)

根据我的经验,使用标准的,低影响的系统调用(即::GetTicks()在Windows上),不可能获得精确到微秒(假设具有相似的准确度)的时间.相反,需要发出CPU密集型调用以提高精度超过毫秒(以微秒为单位).

正如我所提到的,我不需要微秒精度 - 只是接近毫秒精度.但是,Boost.Date_Time不提供任何"millisec_clock" - 它提供了一个second_clock,而下一个渐变是microsec_clock,其间没有"millisec_clock".

如果我使用microsec_clock,如上所述,获得MILLIseconds,我会被CPU密集型呼叫击中?

c++ boost

5
推荐指数
2
解决办法
1834
查看次数

如何解释"const int i = 2; {int i [i];}"的"声明点" - 来自C++标准的一个例子?

我正在研究C++标准,以了解操作,表达式,语句和副作用的顺序.

相关问题是名称的"声明点".在C++ 11标准的§3.3.2.1节中,标准规定:

声明的名称是在完整的声明者(第8条)之后和初始化者(如果有的话)之前......

以下段落添加了一个带有示例的注释:

注意:外部作用域中的名称在隐藏它的名称声明之前仍然可见.

......举例说明

const int i = 2;
{ int i[i]; }
Run Code Online (Sandbox Code Playgroud)

并且注释声明此代码示例"声明了两个整数的块范围数组".

我希望能够查看示例代码,并通过应用"声明点"的定义以及关于外部作用域中名称可见性的说明,能够查看该代码并进入逻辑结论,我自己,这是一个结构良好的代码,它做了它似乎做的事情.

但是,根据这些定义和规则,我无法理解如何查看此代码并得出此结论.

从左到右阅读,i[]数组的声明似乎出现在使用i外部范围之前,因此" 在声明之前仍然可见"的含义并不意味着在阅读中从左到右感.

" 直至宣言 "必须意味着"操作秩序"意义上的某些内容.

C++标准中的定义或规则规定,在数组声明中,数组名称的"声明点"出现在方括号内的表达式之后?在这种情况下,"后"究竟是什么意思?

c++ language-lawyer c++11

5
推荐指数
1
解决办法
180
查看次数

什么(设置PATH = ...;%PATH:)= ^)%)在Windows shell脚本中是什么意思,我怎样才能在Qt5 nmake构建的上下文中克服这一行的失败?

在尝试使用VS 2012构建Qt5(32位)障碍过程中,我遇到了另一个构建错误.

它是:

(设置PATH = C:\ Users\daniel347x\Desktop\Backup\__ Dan_Root\qt5\qtbase\lib;%PATH:)= ^)%)&C:\ Users\daniel347x\Desktop\Backup__Dan_Root\qt5\qtbase\bin\uic.exe对话框\ qfiledialog.ui -o ui_qfiledialog.h

NMAKE:致命错误U1077:'(设置':返回代码'0xc0000135'

停止.

当我执行详细的Google/StackOverflow搜索时,我找不到任何与(set PATH=...;%PATH:)=^)%)失败问题相关的信息(返回错误代码0xc0000135).

请注意,nmake很长一段时间(超过1小时)快乐地切换目录,运行中间.exe,以及编译和链接代码文件.

我在32位Visual Studio 2012工具命令提示符下运行nmake(以及运行configure); 据我所知,我的所有path变量都已正确设置(它们包括32位Perl和32位Python的路径,尽管我认为这不是相关的).

我已重新启动计算机,并运行具有管理员权限的VS 2012工具命令提示符(如果是权限错误),尝试运行nmake,并发生相同的错误.

然后我试图弄清楚错误究竟是什么.那时,我对这个命令行语句的语法感到困惑,该语句显然是在Makefile触发的shell脚本中执行的:

(set PATH=...;%PATH:)=^)%)
                   ^^^^^^ // What do the symbols :)=^)% mean?
Run Code Online (Sandbox Code Playgroud)

我不明白这个脚本的上下文中的符号:)= ^)%.

有人可以告诉我这些符号在Windows shell脚本的上下文中是什么意思(在nmakeMakefile 的上下文中执行(使用VS 2012构建32位Qt5))?

作为一个附加的可选问题,我可以做些什么来克服这个错误并继续构建Qt5而不会阻止进度的这个错误?

shell qt makefile windows-7 qt5

5
推荐指数
1
解决办法
3547
查看次数

_XP64__在OSX 10.6上为C++应用程序的默认构建定义在哪里?

我正在OSX 10.6上以32位模式构建第三方库(该库是Xerces 2.8).我已确定__LP64__已设置预处理器定义.但是,据我所知,它没有被设置在第三方项目的任何配置文件中,并且通过所有文件(通过Finder)进行全局搜索#define __LP64__并没有向我显示这是由系统.

我通过make命令行构建库(不涉及Xcode).

我想知道在哪里__LP64__定义 - 以及它的目的是什么,因为我正在以32位模式构建项目.

c++ macos makefile gnu-make

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

在JNI中,是否有从AttachCurrentThread()返回的JNIEnv指针的清理函数?

我想知道JNIEnv *从JNI函数中获得的生命周期AttachCurrentThread().考虑以下检索JNIEnv指针的函数.

JNIEnv * RetrieveJniEnvPtr()
{
    JavaVM * pJavaVM; // Assume pJavaVM is already initialized
    JNIEnv * pEnv = NULL;
    if(pJavaVM->GetEnv((void**)&pEnv, JNI_VERSION_1_6) != JNI_OK)
    {
        pJavaVM->AttachCurrentThread((void**) &pEnv, NULL);
    }
    return pEnv;
}
Run Code Online (Sandbox Code Playgroud)

是否有与呼叫相关的清理呼叫AttachCurrentThread()

另外,这是一个轻量级的功能吗?RetrieveJniEnvPtr()在同一个线程中多次调用(在此示例中)是标准编程实践- 还是代码只能JNIEnv *在线程的生命周期内检索一次?

c++ java-native-interface

4
推荐指数
1
解决办法
1842
查看次数

间隔列表中非重叠区间范围的最大总和

有人问我这个问题:
给你一个间隔清单.您必须设计一种算法来查找非重叠区间的序列,以便区间范围的总和最大.

例如:
如果给定的间隔是:

["06:00","08:30"],
["09:00","11:00"],
["08:00","09:00"],
["09:00","11:30"],
["10:30","14:00"],
["12:00","14:00"]
Run Code Online (Sandbox Code Playgroud)

三个间隔时范围最大化

[“06:00”, “08:30”],
[“09:00”, “11:30”],
[“12:00”, “14:00”],
Run Code Online (Sandbox Code Playgroud)

被选中.

因此,答案是420(分钟).

algorithm dynamic-programming greedy intervals

4
推荐指数
2
解决办法
4907
查看次数

如何将boost :: multiprecision :: cpp_int转换为cpp_dec_float <0>(而不是cpp_dec_float_50等)?

正如Boost Multiprecision库文档中所明确的那样,将a从a转换为a是很简单boost::multiprecision::cpp_intboost::multiprecision::cpp_dec_float:

// Some interconversions between number types are completely generic,
// and are always available, albeit the conversions are always explicit:

cpp_int cppi(2);
cpp_dec_float_50 df(cppi);    // OK, int to float // <-- But fails with cpp_dec_float<0>!
Run Code Online (Sandbox Code Playgroud)

从a转换cpp_int为固定宽度浮点类型(即a cpp_dec_float_50)的能力给出了一种希望,即可以在库中从a转换cpp_int任意宽度的浮点类型 - 即a cpp_dec_float<0>.但是,这不起作用; 我在Visual Studio 2013中转换失败,如下面的简单示例程序演示:

#include <boost/multiprecision/number.hpp>
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>

int main()
{
    boost::multiprecision::cpp_int n{ 0 };
    boost::multiprecision::cpp_dec_float<0> f{ n }; // Compile error in …
Run Code Online (Sandbox Code Playgroud)

c++ boost c++11 multiprecision

4
推荐指数
1
解决办法
3033
查看次数

Kubernetes:hostPath 存储权限

问题:无法写入容器内的目录。

我正在使用 hostPath 存储来满足持久存储要求。我没有使用 PV 和 PVC 来使用 hospath,而是使用它的卷插件。例如

{
    "apiVersion": "v1",
    "id": "local-nginx",
    "kind": "Pod",
    "metadata": {
        "name": "local-nginx"
    },
    "spec": {
        "containers": [
             {
                 "name": "local-nginx",
                 "image": "fedora/nginx",
                 "volumeMounts": [
                     {
                         "mountPath": "/usr/share/nginx/html/test",
                         "name": "localvol"
                     }
                 ]
             }
        ],
        "volumes": [
            {
                 "name": "localvol",
                 "hostPath": {
                    "path": "/logs/nginx-logs"
                 }
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:nginx pod 只是为了举例。

我在主机上的目录被创建为“drwxr-xr-x。2 root root 6 Apr 23 18:42 /logs/nginx-logs”并且相同的权限反映在 pod 内,但由于它是 755,其他用户即用户在里面pod 无法在挂载的目录中写入/创建文件。

问题:

  1. 有没有办法避免上面指定的问题?

  2. 在 Hostpath 存储的情况下,有没有办法指定目录权限?

  3. 我可以在以下定义中设置任何字段以提供所需的权限吗?


"volumes":{
   "name": "vol",
    "hostPath": …
Run Code Online (Sandbox Code Playgroud)

kubernetes docker-volume

4
推荐指数
1
解决办法
4849
查看次数