Questions tagged «initialization»

7
如何使用Hibernate将初始数据导入数据库?
部署应用程序时,我经常使用Hibernate的功能来创建数据库架构,以简化部署。通过配置hibernate.hbm2ddl.auto属性可以轻松实现。 但是,有时我还需要向数据库中插入一些初始数据,例如root用户。有什么办法可以通过休眠并加载某种文本文件来实现? 我知道我可以轻松地编写将要执行此操作的代码,但是只是想知道是否已经有一些实用程序可以帮助我通过配置实现相同的功能?

2
这个C#字典初始化如何正确?
我偶然发现以下内容,并且想知道为什么它没有引发语法错误。 var dict = new Dictionary<string, object> { ["Id"] = Guid.NewGuid(), ["Tribes"] = new List<int> { 4, 5 }, ["MyA"] = new Dictionary<string, object> { ["Name"] = "Solo", ["Points"] = 88 } ["OtherAs"] = new List<Dictionary<string, object>> { new Dictionary<string, object> { ["Points"] = 1999 } } }; 请注意,“ MyA”和“ …

4
如果缺少const char *数组初始化逗号,则生成编译器警告
我在C代码中经常使用字符串文字表。这些表或多或少看起来像这样: static const char* const stateNames[STATE_AMOUNT] = { "Init state", "Run state", "Pause state", "Error state", }; 上面代码的问题是,如果表变长了,并且在开发过程中被修改了,我会不时忘记逗号。代码编译时不会出现逗号缺失的问题,但是由于最后一个字符串设置为,我的程序最终崩溃了NULL。我使用了MinGW和Keil编译器进行了验证。 如果缺少逗号,有什么方法可以为我的初始化生成编译器警告吗?
53 c  initialization 

4
使用未初始化的成员复制结构
复制一个未初始化其成员的结构是否有效? 我怀疑这是未定义的行为,但如果是这样,则会使任何未初始化的成员保留在结构中(即使从未直接使用这些成员)也很危险。所以我想知道标准中是否有允许它的东西。 例如,这有效吗? struct Data { int a, b; }; int main() { Data data; data.a = 5; Data data2 = data; }

1
在自己的初始化器中使用变量
C ++ 20标准草案的[basic.scope.pdecl] / 1在注释中具有以下(非规范性)示例(合并请求3580之前的部分引号,请参见此问题的答案): unsigned char x = x; x使用其自己的(不确定的)值初始化。 这实际上在C ++ 20中具有明确定义的行为吗? 通常T x = x;,由于在初始化完成之前x的值是不确定的,因此表单的自我初始化具有未定义的行为。评估不确定值通常会导致未定义的行为([basic.indent] / 2),但是[basic.indent] /2.3中有一个特定的例外,该例外允许直接unsigned char从unsigned char具有不确定值的左值初始化变量(导致使用不确定值进行初始化) )。 这本身并不会因此导致不确定的行为,但会为其他类型T不属于无符号窄字符类型或std::byte如int x = x;。这些注意事项同样适用于C ++ 17及之前的版本,另请参见底部的链接问题。 但是,即使对于unsigned char x = x;,当前草案的[basic.lifetime] / 7也表示: 类似地,使用不依赖于其值的glvalue的属性,在其生命周期开始之前已得到明确定义。该程序在以下情况下具有未定义的行为: glvalue用于访问对象,或者 [...] 这似乎暗示x示例中的值只能在其生命周期内使用。 [basic.lifetime] / 1说: [...] 类型为T的对象的生存期始于以下情况: [...]和 它的初始化(如果有的话)已经完成(包括真空初始化)([dcl.init]), [...] 因此,x仅在初始化完成后才开始生命周期。但是在引用的示例中,x在x初始化完成之前使用的值。因此,使用具有未定义的行为。 …

6
通过C ++中的重载构造函数初始化未知类型的变量
来自主要来自python的背景,我在使用C ++类型方面有些挣扎。 我试图通过几个采用不同类型作为参数的重载构造函数之一来初始化类变量。我已经读到使用auto关键字可以用于变量的自动声明,但是在我的情况下,直到选择构造函数后,它才会被初始化。但是,编译器对不初始化并不满意value。 class Token { public: auto value; Token(int ivalue) { value = ivalue; } Token(float fvalue) { value = fvalue; } Token(std::string svalue) { value = svalue; } void printValue() { std::cout << "The token value is: " << value << std::endl; } }; 在python中,它可能看起来像: class Token(): def …

4
如何调用模板类型的正确构造函数?
在以下代码中,如何使注释行与其上方的行一样工作? 我想将其设为通用代码,以调用合适的template构造函数Type。 #include <string> #include <iostream> template <typename Type> struct Class { Type data; Class(Type data) : data(data) { } }; int main() { Class<std::string> a = std::string("abc"); // Class<std::string> b = "abc"; std::cout << a.data << std::endl; return 0; }



4
隐藏空的基类以进行聚合初始化
考虑以下代码: struct A { // No data members //... }; template<typename T, size_t N> struct B : A { T data[N]; } 这是初始化B的方式:B<int, 3> b = { {}, {1, 2, 3} }; 我想避免基类不必要的空{}。Jarod42 在此处提出了一个解决方案,但是,它不适用于元素默认初始化:B<int, 3> b = {1, 2, 3};很好,但B<int, 3> b = {1};不是:b.data[1]并且b.data[2]没有默认初始化为0,并且发生了编译器错误。有什么办法(或c ++ 20会有)从构造中“隐藏”基类?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.