在开发新产品的过程中,我们决定采用C++和C#的混合方式,但有人告诉他们将它们联系起来以允许C#代码调用C++代码很容易(更糟糕的是,它不是).
我们是非常有经验的C++程序员,而不是所有C#程序员,因此我们几乎不得不相信我们所读过的内容.一些调用C和Objective-C的尝试很有希望,我们甚至发现了一些文章,展示了如何在C#中提供非托管C++类 - 或者至少我们认为.文章中的C++代码不是C++,而是微软似乎认为可怕的怪物C++/CLI是C++.由于我们正在做C#的东西,以便在macOS和Windows中"免费"获取一些内容,因此C++/CLI也不是一个选项:-(.
无论如何,很多人都声称从一些特定的编程语言中调用C++代码很容易,但到目前为止,我还没有看到一个允许我这样做的单一代码(我没有过多关注这个,请给我一个明显的例子).C++总是意味着C完全没有C++的东西; 没有名称空间,类,没有stl,lambdas或任何东西.只是简单的愚蠢C.
那么,还有没有任何语言,除了C++(/ CLI),因此将允许我做到以下几点:
使用C++构造函数创建类的实例,并使用C++析构函数调度它.
foo f; f.foo();使用C++类在object()上调用成员函数.
使用std::vector,std::find_if,std::string和STL的其他的东西.不需要完全覆盖stl.
使用重载函数(即f(),f(int),f(std::string))
使用重载运算符(foo operator + (foo, foo))
使用C++ 11,C++ 14和/或C++ 17功能.
使用RAII(相当重要的恕我直言).
使用名称空间.
假设我们有一个庞大的代码库,并且我们正在使用 C++ 进行开发。我们是否每次都必须重新编译才能测试代码?
如果是的话,那么开发将需要很长时间。
这个问题的解决办法是什么?
这可能是一个愚蠢的问题,但我是C++和编程的新手,我在这里找不到答案.我知道在C++中,{}在某些情况下是可选的.例如,如果您有一个只执行一个操作的简单if语句,则不需要用{}括起它.
我只是想知道额外的括号是否对程序的速度有任何影响(即使是最小的).我问的原因是因为我总是在我的所有语句中包括大括号,即使不是必需的,只是因为我想阻止我的代码.
我个人的偏好是:
if (foo)
{
bar;
}
Run Code Online (Sandbox Code Playgroud)
而不是简单
if (foo)
bar;
Run Code Online (Sandbox Code Playgroud)
我只是喜欢阅读代码时的样子.但是,如果这实际上对代码的速度有影响,那可能不是一个好主意.有谁知道额外的括号是否会影响速度?谢谢.
只有 C 和 C++ 转换为 exe 在编译级别会发生什么?所有应用程序都必须是exe才能在Windows上运行,那么为什么这些语言不包含编译后生成exe文件的功能呢?