小编Mel*_*ius的帖子

有没有理由在C++ 03中使用'auto'关键字?

请注意,此问题最初发布于2009年,在C++ 11批准之前以及auto关键字的含义发生重大变化之前.提供的答案仅适用于C++ 03的含义auto- 即指定的存储类 - 而不是C++ 11的含义auto- 即自动类型推导.如果您正在寻找有关何时使用C++ 11的建议auto,则此问题与该问题无关.

在最长的时间里,我认为没有理由static在C中使用关键字,因为在块范围之外声明的变量是隐式全局的.然后我发现static在块范围内声明一个变量会给它一个永久的持续时间,并且在块范围之外(在程序范围内)声明它会给它文件范围(只能在该编译单元中访问).

所以这给我留下了一个我可能还没有完全理解的auto关键字:关键字.除了"局部变量"之外还有其他一些含义吗?无论你想在哪里使用它,它都没有隐含地为你做的事情?auto变量如何在程序范围内表现?static auto文件范围中的变量是什么?此关键字除完全性之外是否还有其他目的?

c++ keyword c++03

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

CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_LIST_DIR之间的区别

来自Wiki:

CMAKE_CURRENT_SOURCE_DIR 这是当前处理的CMakeLists.txt所在的目录

CMAKE_CURRENT_LIST_DIR (自2.8.3起)这是当前正在处理的列表文件的目录.

来自Docs:

CMAKE_CURRENT_SOURCE_DIR:当前正在处理的源目录的路径.这是cmake当前正在处理的源目录的完整路径.

CMAKE_CURRENT_LIST_DIR:当前正在处理的列表文件的完整目录.当CMake处理项目中的列表文件时,该变量将始终设置为当前正在处理的列表文件(CMAKE_CURRENT_LIST_FILE)所在的目录.该值具有动态范围.当CMake开始处理源文件中的命令时,它将此变量设置为此文件所在的目录.当CMake完成从文件处理命令时,它将恢复先前的值.因此,宏或函数内部变量的值是调用调用堆栈上最底部条目的文件的目录,而不是包含宏或函数定义的文件的目录.

在什么情况下这些变量会有不同的价值?

cmake

83
推荐指数
2
解决办法
3万
查看次数

虚拟析构函数是继承的吗?

如果我有一个带有虚拟析构函数的基类.有一个派生类来声明一个虚拟析构函数吗?

class base {
public:
    virtual ~base () {}
};

class derived : base {
public:
    virtual ~derived () {} // 1)
    ~derived () {}  // 2)
};
Run Code Online (Sandbox Code Playgroud)

具体问题:

  1. 1)和2)是一样的吗?是2)因为它的基础自动虚拟还是"停止"虚拟?
  2. 如果没有任何关系,可以省略派生的析构函数吗?
  3. 声明派生析构函数的最佳实践是什么?如果可能,将其声明为虚拟,非虚拟或省略?

c++ inheritance virtual-destructor

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

将项添加到关联数组

//go through each question
foreach($file_data as $value) {
   //separate the string by pipes and place in variables
   list($category, $question) = explode('|', $value);

   //place in assoc array
   $data = array($category => $question);
   print_r($data);

}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它取代了数据的价值.我怎么能让它在每个循环中添加一个关联值呢?$file_data是一个具有动态大小的数据数组.

php

75
推荐指数
5
解决办法
20万
查看次数

如何在Python中实现虚方法?

我知道PHP或Java的虚拟方法.

它们如何在Python中实现?

或者我要在抽象类中定义一个空方法并覆盖它?

python virtual-functions

69
推荐指数
6
解决办法
7万
查看次数

无法运行带有Mono的.net应用程序 - 找不到mscorlib.dll(版本不匹配?)

我有一个简单的.net命令行工具在Windows下编写和编译,使用.net 3.5SP1.我想在Linux上使用Mono运行它.

我正在使用Ubuntu 12.04,并使用Ubuntu软件中心安装了Mono Runtime.如果我尝试在终端中启动我的应用程序:

mono MyApp.exe
Run Code Online (Sandbox Code Playgroud)

我收到错误:

未找到或无法加载程序集mscorlib.dll.它本应安装在'usr/lib/mono/2.0/mscorlib.dll'中.

如果我导航到该位置,我发现它不存在.但是,usr/lib/mono/4.0/mscorlib.dll(在同一文件夹中有一些DLL).

所以看似版本不匹配.

[万一重要,mono -V节目Mono JIT compiler version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2)]

ubuntu mono

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

如何将所有新文件添加到SVN

我正在使用ORM从CLI生成大量文件.是否有一种简单的方法来运行svn add目录中的所有文件,这些文件在?我运行时出现svn status

编辑 这些文件存在于目录树中,因此添加*一个目录将不起作用.

svn

62
推荐指数
5
解决办法
10万
查看次数

在Java中定义常量字符串?

我有一个常量字符串列表,我需要在我的Java程序中的不同时间显示.

在CI中可以在我的代码顶部定义这样的字符串:

#define WELCOME_MESSAGE "Hello, welcome to the server"
#define WAIT_MESSAGE "Please wait 5 seconds"
#define EXIT_MESSAGE "Bye!"
Run Code Online (Sandbox Code Playgroud)

我想知道在Java中做这种事情的标准方法是什么?

java string

59
推荐指数
6
解决办法
15万
查看次数

如何删除当前行并在Notepad ++中添加新行?

如何删除当前行并在Notepad ++中添加新行?

这两个操作很常见,但我找不到任何关键设置如何在Notepad ++中执行它们.任何插件都可以完成这项工作吗?

hotkeys notepad++

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

配置Visual Studio以英语显示错误消息

我目前在另一个国家工作,我的电脑安装了非英文版的Windows.我并不关心这一点,但是当Visual Studio显示错误消息时我非常关心,因为它们也被本地化为与Windows相同的语言.

有时我会花很多时间试图找到它意味着什么,这很无聊......

有没有办法配置Windows或Visual Studio以英文显示消息?

localization visual-studio-2008

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