小编Arn*_*amm的帖子

具有最大长度的字符串类型

我需要实现一个类似于C++ 11或C++ 14类型的STRING std:string,但具有以下附加约束/功能:

  1. 声明期间指定的WIDTH参数.如果STRING的长度大于WIDTH,则STRING将抛出异常
  2. 声明期间指定的可选FIXED参数.如果STRING的长度不等于WIDTH,则STRING将抛出异常

在所有其他方面,STRING应该表现得像std::string并且公开相同的成员函数std:string(例如.append()etc ..).

我的第一直觉是使用一个STRING包含a 的模板类std::string,如下所示:

template<int WIDTH= 0, bool FIXED = false>
class STRING {
    static_assert(WIDTH >= 0, "WIDTH of STRING cannot be negative.");
public:
    STRING() : value{} { }

    STRING(const std::string &s) { if (is_valid(s)) value = s; }

    STRING(const char c[]) { if (is_valid(c)) value = c; }

    STRING& operator=(const std::string& s){ if (is_valid(s)) value = s;}
    operator std::string() const { return …
Run Code Online (Sandbox Code Playgroud)

c++ string stdstring c++11

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

物料侧导航发生器

我看了一下新ng generate @angular/material:material-nav在这近角博客功能.

不幸的是,当在一个全新的项目中运行以下CLI命令时,我收到一条错误消息(见下文).

ng add @angular/material
ng generate @angular/material:material-nav
Run Code Online (Sandbox Code Playgroud)

错误信息:

Schematic input does not validate against the Schema: {"dryRun":false,"inlineStyle":false,"inlineTemplate":false,"changeDetection":"Default","styleext":"css","spec":true,"flat":false,"skipImport":false,"export":false}
Errors:

Data path "" should have required property 'name'.
Run Code Online (Sandbox Code Playgroud)

这种糟透了.我尝试添加这样的名字

ng generate @angular/material:material-nav home
Run Code Online (Sandbox Code Playgroud)

但它仍然会产生相同的错误.请指教.

Angular CLI:6.0.0节点:8.11.1 OS:darwin x64 Angular:6.0.0

angular-cli angular6

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

抑制或覆盖关键字NULL

我正在解析一个复杂的语法,这需要我定义一个enum class像这样:

enum class NULLSTYLE {
    NULL,
    NOTNULL
};
Run Code Online (Sandbox Code Playgroud)

既然我可以使用0或者nullptr在C++ 11中,我可以以某种方式抑制或覆盖C++自己的定义,NULL以便我可以坚持我的语法吗?

c++ c++11

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

标签 统计

c++ ×2

c++11 ×2

angular-cli ×1

angular6 ×1

stdstring ×1

string ×1