小编tun*_*nuz的帖子

处理线性代数的最佳基类型

我正在用C++为一个项目编写一个小而且不充分的线性代数库(对不起).我正在使用双精度数来实现矩阵和运算.我做得对吗?我应该实现模板类吗?周围有更精确的类型吗?

c++ linear-algebra double-precision

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

我可以使用块来管理C++中的变量范围吗?

我试图在C++程序中节省一些内存,我想知道我是否可以使用块作为变量的范围(如Perl).假设我有一个巨大的对象执行一些计算并给出结果,这样做是否有意义:

InputType  input;
ResultType result;

{
    // Block of code
    MyHugeObject mho;
    result = mho.superHeavyProcessing();
}

/*
   My other code ...
*/
Run Code Online (Sandbox Code Playgroud)

退出块时,我可以期望对象被销毁吗?

c++ object scoping

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

如何在CLI上打印下标/上标?

我正在编写一段处理数学变量和索引的代码,我需要在CLI上打印下标和上标,有没有(可能是跨平台的)方法呢?我在使用vanilla C++工作.

注意:我希望这是跨平台的,但是从第一个答案开始,这似乎不可能我在MacOS和Ubuntu Linux下工作(所以bash).

谢谢

c++ command-line typography superscript subscript

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

在Ubuntu下,C++或Mono的最佳编程IDE是什么?

正如标题所说:在Ubuntu下编程C++或Mono的首选IDE是什么?Eclipse是一种可行的方式吗?MonoDevelop是否足够成熟?其他IDE怎么样?

c# c++ linux mono

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

如何知道枚举器是否已在C#中到达集合的末尾?

我正在将一个库从C++移植到C#.旧库使用来自C++的向量,在C#中我使用泛型字典,因为它们实际上是我正在做的一个很好的数据结构(每个元素都有一个ID,然后我只是使用TypeDictionary = Dictionary<String, Type>;).现在,在C#代码中,我使用像这样的循环

TypeDictionary.Enumerator tdEnum = MyTypeDictionary.GetEnumerator();

while( tdEnum.MoveNext() ) 
{
   Type element = typeElement.Current.Value;

   // More code here
}
Run Code Online (Sandbox Code Playgroud)

迭代集合的元素.问题是,在特殊情况下,我需要检查某个枚举器是否已到达集合的末尾,在C++中我会像这样检查:

if ( tdEnum == MyTypeDictionary.end() ) // More code here
Run Code Online (Sandbox Code Playgroud)

但我只是不知道如何在C#中处理这种情况,任何想法?

谢谢
Tommaso

c# c++ collections containers porting

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

检查C++中的指针定义

如何检查变量,特别是指针是否在C++中定义?假设我有一个班级:

class MyClass {  
public:

    MyClass();

    ~MyClass() {
        delete pointer; // if defined!
    }

    initializePointer() {
        pointer = new OtherClass();
    }

private:

    OtherClass* pointer;

};
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

朋友班及其所有后代

假设我有一个带有几个子类(B,C和D)的A类.我需要BC和D才能从类E中访问一些受保护的成员.是否可以在一次点击中创建E的B,C和D朋友,而不必全部列出?

我尝试过:

class E {

    friend class A;

    ...

};
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

谢谢

c++ inheritance class friend

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

是否可以在C#项目中添加引用,具体取决于条件编译符号(预处理器常量)的值?

我正在开发一个可以为两种不同技术编译的库.基本上,库的用户应该能够为Unity3D游戏引擎或NeoAxis游戏引擎编译解决方案.问题是:虽然库已准备好进行条件编译(#if UNITY使用... #endif等),但我找不到根据条件编译符号启用一组引用或另一种引用的方法.

有可能吗?如果是这样,怎么样?

.net c# reference add c-preprocessor

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

是否有Perl的__DATA__段的C++等价物(或等效技术)?

是否有人知道Perl的C++等效__DATA__片段?对于不熟悉Perl的人,该__DATA__段是一个(可选)注释,指向Perl文件的末尾; 任何后来被认为是(虚拟)文件的内容,Perl可以通过DATA文件句柄访问(读取,写入).我正在寻找类似于在C++程序中使用的东西(不要问,不要告诉).

谢谢

c++ perl data-segment

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

成员访问和模板专业化

我有这个类模板

template <typename T>
class Wrapper
{
    public:
        virtual void parse(std::string s) = 0;

    protected:
        T value;
};
Run Code Online (Sandbox Code Playgroud)

理想情况下,每种类型都应该知道如何将自己从一个字符串解析,所以我想有,例如,特如

template<>
class Wrapper<int> 
{
    public:
        virtual void parse(std::string s) 
        {
            value = atoi(s.c_str());
        }
};
Run Code Online (Sandbox Code Playgroud)

但是,显然,我无法从主模板访问"value"成员.我得到的是:

In member function 'virtual void Wrapper<int>::parse(std::string)':
error: 'value' is not a member of 'Wrapper<int>'
Run Code Online (Sandbox Code Playgroud)

this->在前面添加value没有帮助.

你知道如何解决这个问题吗?

谢谢

c++ inheritance templates member-functions template-specialization

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