小编use*_*993的帖子

在vb.net中是否存在"全局"类型的导入语句?

我有一个名为"VectorExt"的类库

因为我在我正在处理的项目中的每个.vb文件中使用它,所以我在每一个中都编写了"Imports VectorExt".有没有办法省去麻烦并让它在整个项目中导入?尽管没有import语句,但仍然可以使用一些基本的.net命名空间.

vb.net

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

是否可以更改专用模板函数的返回类型?

这是我想做的:

template<int I> struct banana {
    float number;
    banana(float n) {
        number = n;
    }

    int getNumber() { 
        return number; 
    }
};

template<> float banana<0>::getNumber() {
    return number;
}
Run Code Online (Sandbox Code Playgroud)

因此,当创建一个新的 Banana<0> 时,它会返回浮点数而不是整数。但编译器不会让我这样做。

我找到了看似相同问题的答案/sf/answers/1113855991/(尽管如此,我可以使用 c++ 11 但不能使用 14,如果这有影响的话),但我不明白它是如何工作的或如果它是同一件事的话。

c++ templates template-specialization

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

是否可以在模板化类之外获取指定的模板类型?

这是我正在尝试做的简化版本

template <typename T>
class myClass {};

auto p = new myClass<int32_t>;
int TSizeOfP = sizeof(??);
Run Code Online (Sandbox Code Playgroud)

所以我想从对象指针获取我在myClass之外设置为int32_t的T.

显然我知道我把它设置为什么所以我可以做= sizeof(int32_t)但我希望能够只声明一次类型而不必遍历我写了sizeof(int32_t)的所有地方,如果我决定改变类型.

我也可以做一些像#define pType int32_t或者使用语句或其他什么的东西,但是如果有办法没有额外的行,我想听听它.

c++ templates

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

当从异步函数内部调用它们时,是否有任何理由更喜欢 Node.js 中函数的异步版本?

主要看 FS api,对于大多数功能来说,似乎有三种风格可供选择:

  1. 同步
  2. 使用回调异步
  3. 异步使用 Promise

异步是使用系统资源的更好方法,但是,如果我已经在异步函数中并且正在等待每个调用,那么这与仅使用同步调用之间应该没有任何区别,对吗?对我来说,它就像一个内置的等待语句。

我不知道异步是如何在 js/node 中实现的。如果我一开始就在异步函数中,那么使用异步函数有什么好处吗?(不包括并行运行异步任务时的场景)

javascript asynchronous node.js

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

std ::未知大小的数组作为类成员

我正在制作一个N维图像格式,我想将原始数据存储在一个

std::array<T, multiple of all dimensions>* where T is the type of single channel pixel value
Run Code Online (Sandbox Code Playgroud)

我希望构造函数采用像{20,30,50}这样的通道数组来制作一个20x30x50的位图,这样可以使数据的总长度为30000.最后,我希望能够像这样声明通道

auto* channelRed = new Channel<uint32_t>({20, 30, 50});
Run Code Online (Sandbox Code Playgroud)

问题是std :: array需要在模板参数中传递大小,这会在我的N维计划中引发一个问题.

如何在我的类中将std :: array指针设置为类字段,以便在构造函数执行期间定义数组的长度?

PS!是的,我知道我可以很容易地使用一个常规阵列,这就是我现在正在做的事情.我只想弄清楚什么是std :: array是有益的.

c++ arrays

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

在 C++ 中初始化查找表

由于我似乎无法将转换类的构造函数设为静态,因此我尝试伪造它,但它给了我一个关于未解析外部的错误:

struct FloatConversions {
    static std::array<float, 256> ByteLUT;

    struct Initializer {
        Initializer() {
            for (double i = 0; i < 256; i++) {
                ByteLUT[i] = i / 255.0;
            }
        }
    };
    Initializer Init;

    static inline float ByteToFloat(int val) {
        return ByteLUT[val];
    }
    static inline uint8_t FloatToByte(float val) {
        return static_cast<uint8_t>(val * 255.0f);
    }
};
typedef FloatConversions FC;
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

c++

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

如何为括号运算符定义 setter?

假设我有这门课:

struct testy {
    std::array<int, 10> data;
    float operator[] (int idx) const        { return 1 / data[idx]; }
    float &operator[](int idx)              { return ??? }
};
Run Code Online (Sandbox Code Playgroud)

例如,我想要发生的事情是,当我写的时候

testy Pineapple;
Pineapple[1] = 0.1;
Run Code Online (Sandbox Code Playgroud)

那么实际发生的是

Pineapple.data[1]= 1 / 0.1;
Run Code Online (Sandbox Code Playgroud)

我开始编写括号重载,然后意识到通过引用返回的第二个重载实际上无法执行任何逻辑来转换数据本身,所以我在这里有点困惑。

是的,我知道我可以只编写一个设置函数,但是该数组将被各种算法大量使用,我希望从编码方面尽可能方便地访问它。

c++

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

在一个简单的类上实现IDisposable

我想为MySql包装器创建一个辅助类。这个想法是封装mysql命令构造和执行的方法有一个可选的MySqlConnection作为参数。如果通过了特定的连接,它将使用该连接,否则将创建一个连接并在完成后将其处置。为了在每种方法上节省4行,我可以在using块中使用此类,并将可选参数作为构造参数传递。无论如何,这是下课:

Public Class DynaConnection
    Implements IDisposable

    Public Dynamic As Boolean
    Public Connection As MySqlConnection
    Public Sub New(Connection As MySqlConnection)
        If Connection Is Nothing Then
            Dynamic = True
            Me.Connection = Connect()
        Else
            Dynamic = False
        End If
    End Sub
    Public Shared Widening Operator CType(ByVal Connection As DynaConnection) As MySqlConnection
        Return Connection.Connection
    End Operator

    Public Sub Dispose() Implements IDisposable.Dispose
        If Dynamic Then
            Connection.Close()
            Connection.Dispose()
        End If
        GC.SuppressFinalize(Me)
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

但是,当我第一次写字母“ Implements IDisposable”时,整个类的代码都跳了进去。我看了msdn看看有什么问题,但是那边还有一堆甚至更多的关于如何“正确地”实现IDisposable的代码。

从我之前编写简单的IDisposable类的过程中所记得的东西,我在上面的类中所做的事情就足够了。有什么改变吗?

vb.net

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

在javascript中是否有'OrElse'等价物?

如果我在vb.net中有此行

If (a = Nothing OrElse a.value = Nothing) Then 
    DoSomething()
End If
Run Code Online (Sandbox Code Playgroud)

它相当于

if (a = nothing) Then 
    DoSomething()
else
    if (a.value = nothing) Then
        DoSomething()
    End If
End If
Run Code Online (Sandbox Code Playgroud)

因此,"OrElse"与"Or"的不同之处在于,只有在左侧应该返回false时才会评估右侧,在这种情况下,这是必要的,因为如果我要检查a.value而不是然后我会得到一个空引用异常.

在javascript中是否有等效的OrElse运算符?

javascript

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

为什么我不能将html min height设置为100%?

HTML代码:

<!DOCTYPE html>
<html>
   <head></head>
   <body>
      <link rel="stylesheet" type="text/css" href="style.css">
      <div class="sheet" style="width:80%;max-width:1024px;height:400px;"></div>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS代码:

html,
body {
    min-height: 100%;
    margin: 0;
    padding: 0
}
body {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}
.sheet {
    background-color: red
}
Run Code Online (Sandbox Code Playgroud)

我期望看到的是一个漂浮在屏幕中间的红色矩形,但我得到的是位于顶部中间的矩形.

它从未在FF中工作,它在添加DOCTYPE标签之前在chrome中工作,但之后它也不再适用于chrome.

当我使用height而不是min-height但我不想将高度值固定到屏幕大小时,工作是什么,因为当容器长到足以滚动时,我可能需要它.

html css

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