标签: using

C++ 如何“取消使用”库引用?

在一个程序中,我大量使用了 std 库。我想命名一个函数less(),但是它已经被接受了std。我可以在后面添加一行using namespace std;,以便稍后声明less()

目前我收到“错误:对‘less’的引用不明确”。

我知道我可以列出我正在使用的所有内容(例如using std::cout;),我只是想问是否有一个“否定”版本。

谢谢你,丹尼尔

c++ using std

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

捕捉异常.您是否替换或包装using语句

using语句不捕获异常.要捕获异常,您有两种选择:

1)打开使用并手动实现:

void MyFunc()
{
    StreamReader myReader = null;

    try
    {
        myReader = new StreamReader(path);
        //use myReader
    }
    catch (Exception e)
    {
        //do something with exception
    }
    finally
    {
        if (myReader != null)
            myReader.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

或2)保持使用,并将其包装在另一个try catch块中

void MyFunc()
{
    try
    {
        using (StreamReader myReader = new StreamReader(path))
        {
             //use myReader
        }
    }
    catch (Exception e)
    {
        //do something with exception
    }
}
Run Code Online (Sandbox Code Playgroud)

对我来说,第二个看起来更整洁,特别是当你有多个using语句时,因为它更好地描述了流,并删除了显式声明,空检查和Dispose()调用.

但是,由于额外的尝试捕获开销有效地冗余,因此感觉不对.

什么是标准做法?

c# exception-handling using

0
推荐指数
1
解决办法
259
查看次数

对所有非原始对象使用"使用"是否有任何缺点?

我确信那里有答案......但谷歌搜索"C#使用"比你想象的要复杂一点.

无论如何......前几天真正开始学习这种方便的技术,似乎我不会将它用于我的代码中的任何非原始对象.

这是一个相当准确的陈述还是有一些缺点(在稍微混乱的代码之外)使用"使用"几乎所有东西?

c# coding-style using

0
推荐指数
1
解决办法
145
查看次数

#include <fstream> visual c ++ 2010无法正常工作

我知道标题有点模糊,但我现在想不出更好的标题.我的代码中的摘录如下所示:

#include<iostream>
#include<fstream>
int main(){
ifstream f("cuvinte.txt");
f.getline(cuvant);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我想阅读"cuvinte.txt"中的下一个单词时,我写了f.getline(cuvant); 但我得到以下错误

error C2661: 'std::basic_istream<_Elem,_Traits>::getline' : no overloaded function takes 1 arguments
Run Code Online (Sandbox Code Playgroud)

我不知道问题是什么,我不久前偶然发现了这个问题,仍然无法超越它.

c++ namespaces using std visual-c++

0
推荐指数
1
解决办法
2188
查看次数

如果在using子句中发生错误,C#`Using`语句是否会关闭变量

可能重复:
什么是C#使用块,为什么要使用它?

如果我运行以下代码:

using (SPWeb web = SPContext.Current.Site.OpenWeb("/myweb")){

   //error happens here
}
Run Code Online (Sandbox Code Playgroud)

如果在结束括号之前发生错误web,是否会正确处理对象

我们被告知使用对象的using语句OpenWeb是最好的,但
我们在日志中看到很多关于SPRequests和SPWeb的错误.

c# idisposable using spweb sharepoint-2010

0
推荐指数
1
解决办法
497
查看次数

在'Using'语句中选择@@ Identity

我正在编写一个Sql-Server-ce应用程序C#.

最近我一直在将我的代码转换为使用using语句,因为它们更清晰.在我的代码中,我有一个GetLastInsertedID非常简单的函数 - 它返回最后插入的ID.工作版本如下:

    public static int GetLastInsertedID()
    {
        int key = 0;
        try
        {
            SqlCeCommand cmd = new SqlCeCommand("SELECT CONVERT(int, @@IDENTITY)", DbConnection.ceConnection);
            key = (int)cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Could not get last inserted ID. " + ex.Message);
            key = 0;
        }
        return key;
    }
Run Code Online (Sandbox Code Playgroud)

下面的代码在我将它包装在using语句中后不起作用:

    public static int GetLastInsertedID()
    {
        int key = 0;
        try
        {
            using (SqlCeConnection conn = new SqlCeConnection(DbConnection.compact))
            {
                conn.Open();
                using (SqlCeCommand cmd …
Run Code Online (Sandbox Code Playgroud)

c# using sql-server-ce

0
推荐指数
1
解决办法
1792
查看次数

从C++中的函数typedef创建函数指针typedef?

可以从匹配的函数typedef中干净地创建函数指针typedef吗?

// Can I define fx_pt in terms of fx_t without duplicating the signature?
// Does decltype allow for any new sort of trick here?
using fx_t  = char(int, char, std::vector<float> const &);
using fxp_t = char(*)(int, char, std::vector<float> const &);

// Using function typedef to enforce interface for declarations and definitions.
fx_t foo, bar, baz;
char foo(int) { /* ... */ }

// Using fp typedef elsewhere as normal.
fxp_t whatever{bar};
whatever(99);
Run Code Online (Sandbox Code Playgroud)

我不希望任何关于函数(指针)typedef语法的内容对我来说完全直观,但我无法确定是否可以删除重复代码.

这可能与更大的类/原始typedef和类/原始指针typedef之间的转换有关,我记得听说它们之间没有可转换的...

c++ typedef using c++11

0
推荐指数
1
解决办法
524
查看次数

如何使用"使用"语句?

我正在尝试利用using以下代码中的语句:

Uri uri = new Uri("http://localhost:50222/odata"); 
var container = new CourseServiceRef.Container(uri);

CourseServiceRef.NotNeeded newTempUser = new CourseServiceRef.NotNeeded()
    { 
       Email = model.UserName,
       Username1 = model.UserName 
    };             
container.AddToNotNeededs(newTempUser);
container.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

但是这不会编译.为什么?

.net c# using

0
推荐指数
1
解决办法
137
查看次数

C#:尽管使用了为什么需要完全限定名称?

我正在制作一个跨平台的C#绘图库供我自己使用,模仿System.Drawing并使用尽可能多的标准System.Drawing类型(如PointF,RectangleF,Color和Pen).

不幸的是,iOS上没有提供Pen类.因此,在编译iOS时,我在System.Drawing中添加了这个,并且设计为与标准System.Drawing.Pen类尽可能兼容.到现在为止还挺好.

今天我添加了对线帽和连接样式的支持.在标准框架中(但不在iOS上),这些在System.Drawing.Drawing2D命名空间中定义.所以,我再次在仅在iOS上编译的代码中添加它们:

namespace System {
    namespace Drawing {
        namespace Drawing2D {
            public enum LineCap {
                Flat,
                Round,
                Square   // (etc.)
            }
        }
    public class Pen {
        public Color Color;
        public float Width;
        public Drawing2D.LineCap StartCap;
        public Drawing2D.LineCap EndCap;
        // (etc.)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我们得到了奇怪的一点.在我的主程序中,我试图使用所有这些,我有"使用System.Drawing;" 在文件的顶部.我发现,即使在iOS上,我现在也可以直接使用Pen:

Pen p = new Pen(Color.Yellow, 6);
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试直接使用Drawing2D.LineCap,我会收到一个CS0103错误,"当前上下文中不存在名称'Drawing2D'."

p.StartCap = Drawing2D.LineCap.Round;   // <-- ERROR
Run Code Online (Sandbox Code Playgroud)

为了使它工作,我必须完全限定名称,如下所示:

p.StartCap = System.Drawing.Drawing2D.LineCap.Round;   // <-- OK (but sad)
Run Code Online (Sandbox Code Playgroud)

所以,我想明白为什么会这样.我知道当有两个版本的东西时,可能需要一个完全限定的名称,因此编译器无法解决你的意思.但在这种情况下我无法看到碰撞.据我所知,MonoTouch根本没有System.Drawing2D名称空间; 我给了它一个,那么问题是什么?

c# namespaces using ios xamarin

0
推荐指数
1
解决办法
353
查看次数

使用isalpha函数时不需要std命名空间

我是C++的初学者.据我所知,为了使用名称,我们必须包含由该名称组成的库.此后,我们可以预先添加命名空间的名称或使用using关键字.

例如

不使用关键字:

std::cout << "Hello Word!" << std::endl;
Run Code Online (Sandbox Code Playgroud)

使用关键字:

using namespace std;
cout << "Hello World!" << endl;
Run Code Online (Sandbox Code Playgroud)

我在网上看到了一个使用isalpha名称空间中locale库名称的在线代码示例std.但是,该样本不使用上述任何方法.

例如

#include <iostream>
#include <locale>
int main() {
  std::cout << isalpha('a') << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么代码仍然有效吗?

c++ namespaces using std

0
推荐指数
1
解决办法
257
查看次数