小编Grz*_*nio的帖子

如果我抛出一个字符串文字,我应该抓住什么类型?

我正在使用Linux下的g ++在C++中编写一个非常简单的应用程序,我试图将一些原始字符串作为异常(是的,我知道,这不是一个好的做法).

我有以下代码(简化):

int main()
{
  try
  {
    throw "not implemented";

  }
  catch(std::string &error)
  {
    cerr<<"Error: "<<error<<endl;
  }
  catch(char* error)
  {
    cerr<<"Error: "<<error<<endl;
  }
  catch(...)
  {
    cerr<<"Unknown error"<<endl;
  }
}
Run Code Online (Sandbox Code Playgroud)

Unknow error上了控制台.但是,如果我将文字字符串静态转换为其中任何一个,std::string或者按预期char *打印Error: not implemented.我的问题是:如果我不想使用静态演员,我应该抓住什么类型?

c++ linux g++ exception

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

不区分大小写的列表

我需要一个不区分大小写的列表或集合类型的集合(字符串).创建一个最简单的方法是什么?您可以指定要在Dictionary的键上获得的比较类型,但我找不到任何类似的List.

.net c# collections

18
推荐指数
3
解决办法
9715
查看次数

使用CMake静态链接到项目外的库

我想使用CMake将我的项目链接到我的共享库.该库只在少数项目之间共享,而且相当小,所以我真的想在链接之前构建它.每次构建它似乎比维护最新的预编译版本更好,因为我要与项目一起更改它.它是独立的,因为它包含我在下一个项目中几乎肯定需要的东西.

我如何配置CMake来做呢?

我目前相关项目的CMakeLists.txt如下所示:

find_package( Boost REQUIRED COMPONENTS unit_test_framework)

include_directories(${BaumWelch_SOURCE_DIR}/../../grzesLib/src
                    ${BaumWelch_SOURCE_DIR}/src 
                    ${Boost_INCLUDE_DIRS})

if(CMAKE_COMPILER_IS_GNUCXX)
    add_definitions(-g -std=c++11 -Wall -Werror -Wextra -pedantic -Wuninitialized)
endif()


# Create the unit tests executable
add_executable(
 baumwelchtests stateindextest.cpp baumiterationtest.cpp baumwelchtest.cpp sampleparameters.cpp sdetest.cpp
 # Key includes for setting up Boost.Test
 testrunner.cpp
 # Just for handy reference
 exampletests.cpp
)

# Link the libraries
target_link_libraries( baumwelchtests ${Boost_LIBRARIES} baumwelchlib grzeslib)
Run Code Online (Sandbox Code Playgroud)

但显然编译失败了:

/usr/bin/ld: cannot find -lgrzeslib
Run Code Online (Sandbox Code Playgroud)

c++ dependencies cmake

16
推荐指数
1
解决办法
9695
查看次数

从SortedList或SortedDictionary获取第i个值

我有一个排序的对象集合(它可以是SortedList或SortedDictionary,我将主要用于阅读,所以添加性能并不重要).我怎样才能获得第i个值?

所以例如,当我在集合中有数字1,2,3,4,5并且我想要中位数(在这个例子中为3)时,我该怎么办呢?

.net c# collections

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

如何在Visual Studio中更改键盘快捷键?

我想在Visual Studio 2013中更改键盘快捷键以便快速修复,以便它与ReSharper等效(我只在办公室机器上使用)相匹配.我该怎么做?

visual-studio visual-studio-2013

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

使用属性和性能

我正在优化我的代码,我注意到使用属性(甚至是自动属性)会对执行时间产生深远的影响.请参阅以下示例:

[Test]
public void GetterVsField()
{
    PropertyTest propertyTest = new PropertyTest();
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    propertyTest.LoopUsingCopy();
    Console.WriteLine("Using copy: " + stopwatch.ElapsedMilliseconds / 1000.0);

    stopwatch.Restart();
    propertyTest.LoopUsingGetter();
    Console.WriteLine("Using getter: " + stopwatch.ElapsedMilliseconds / 1000.0);
    stopwatch.Restart();
    propertyTest.LoopUsingField();
    Console.WriteLine("Using field: " + stopwatch.ElapsedMilliseconds / 1000.0);
}

public class PropertyTest
{
    public PropertyTest()
    {
        NumRepet = 100000000;
        _numRepet = NumRepet;
    }

    int NumRepet { get; set; }
    private int _numRepet;
    public int LoopUsingGetter()
    {
        int dummy = 314;
        for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

.net c# optimization performance

15
推荐指数
1
解决办法
715
查看次数

如何在Web Setup Project中创建新的应用程序池?

我需要部署我的Web服务.它需要使用自己的凭据在IIS中的单独应用程序池中运行.

是否可以通过在VS 2008中使用Web安装项目来实现此目的?

默认情况下,我似乎只能选择现有的应用程序池.

c# iis windows-installer iis-6 web-services

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

使用给定的用户名在远程计算机上安装Windows服务

在远程计算机上安装用C#编写的Windows服务(以标准方式)的最佳方法是什么,我需要提供应该运行的用户名和密码?

我将从MSBuild运行它作为集成测试的一部分.

编辑:我没有msi,我不想创建一个.

.net c# msbuild windows-services

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

在C++中实现工厂方法的首选方法是什么?

一个新手问题:我有一个带有一些虚函数的类的层次结构,我正在尝试实现一个工厂方法,但我不确定什么是最好的方法:

  1. 从工厂方法返回一个原始指针,并将其包装到调用方法中的智能指针中
  2. 从工厂返回一个智能指针
  3. 从工厂返回一个正确的对象(但它是否正确复制派生类?)并将其分配给调用方法中的本地对象
  4. 从工厂返回一个引用(但是如何在没有内存泄漏的情况下在工厂方法中创建对象?)

我将非常感谢工厂方法和最小客户端的示例,它有效并且不会泄漏内存.

我的背景是C#和Java,所以我在C++ atm中的内存管理方面有点迷失.

c++ memory-management factory

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

XLL Excel插件在非托管C++中

我在非托管C++中进行了一些数学模拟,现在我需要将它们与Excel集成(这样就可以从Excel调用函数并获取值).我不想使用任何VBA,所以我想我必须实现一个XLL插件.我想尽可能少使用第三方附加框架.有人能指点我一个好的教程吗?

c++ excel add-in xll

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