标签: curly-braces

重新格式化C++括号而不改变缩进?

我们希望使我们的C++大括号样式更加一致.现在,我们的代码包含以下内容:

if (cond)
{
    // ...    
}
else
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

...和:

if (cond) {
    // ...
} else {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我们想要专门使用后一种风格.

但是,我们希望改变我们的代码的缩进.我尝试过使用astyle,bcpp,GNU indent和Uncrustify(我看过GreatCode的命令行选项).不幸的是,这些工具中的每一个都坚持重新定义我们的代码,并且大多数工具都非常糟糕地破坏了C++构造函数初始化程序列表和预处理程序宏.

是否有任何C++代码美化器可以修复大括号而只留下缩进?它不一定是一个预先存在的工具 - 如果你知道如何使用一些疯狂的Perl单线程,这也很好.谢谢!

更新:是的,我们知道这将使得难以读取旧代码的差异.这是一个长期推迟的代码清理,我们已经确定一致格式化的日常优势超过任何版本控制困难.

c++ formatting coding-style indentation curly-braces

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

C#范围运算符

回到学校,我们写了一个编译器,其中花括号具有执行所有表达式的默认行为,并返回最后一个值...所以你可以这样写:

int foo = { printf("bar"); 1 };
Run Code Online (Sandbox Code Playgroud)

在C#中有相同的东西吗?例如,如果我想编写一个具有副作用的lambda函数.

关于lambda副作用的一点(仅仅是一个例子),如果有这个功能则更多...例如在lisp中,你有预测

c# scope curly-braces

6
推荐指数
3
解决办法
408
查看次数

How to use constants with Complex (curly) syntax?

I was surprised to see that the following doesn't work as expected.

define('CONST_TEST','Some string');
echo "What is the value of {CONST_TEST} going to be?";
Run Code Online (Sandbox Code Playgroud)

outputs: What is the value of {CONST_TEST} going to be?

Is there a way to resolve constants within curly braces?

Yes, I am aware I could just do

echo "What is the value of ".CONST_TEST." going to be?";
Run Code Online (Sandbox Code Playgroud)

but I'd prefer not to concatanate strings, not so much for performance but for readability.

php const curly-braces

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

我怎样才能让emacs自动插入关闭括号

我刚刚开始使用emacs,并且有一个我非常喜欢的功能,并且搜索一下也没用.我希望其他人这样做是因为我还不想学习elisp.

void foo()<cursor>
Run Code Online (Sandbox Code Playgroud)

我想输入一个"{"来导致这种情况发生

void foo(){
    <cursor>
}
Run Code Online (Sandbox Code Playgroud)

我希望这只发生在cc模式中,并且只在不在字符串/ comment/etc中的行尾

我想到的第一件事是重新绑定"{"来做到这一点(我可以弄清楚如何自己做),但很难让它只在恰当的时间发生.

任何提示将不胜感激.

emacs curly-braces cc-mode

6
推荐指数
2
解决办法
3517
查看次数

初始化列表作为operator []的参数

这个问题与这里讨论的问题有关.

我尝试使用初始化列表来创建要传递给的参数operator[].

#include <string>
#include <vector>

struct A {

std::string& operator[](std::vector<std::string> vec)
{
  return vec.front();
}

};

int main()
{
    // ok
    std::vector<std::string> vec {"hello", "world", "test"};

    A a;
    // error: could not convert '{"hello", "world", "test"}' to 'std::vector...'
    a[ {"hello", "world", "test"} ];
}
Run Code Online (Sandbox Code Playgroud)

我的编译器(GCC 4.6.1)抱怨:

g++ -std=c++0x test.cpp
test.cpp: In function ‘int main()’:
test.cpp:20:8: error: expected primary-expression before ‘{’ token
test.cpp:20:8: error: expected ‘]’ before ‘{’ token
test.cpp:20:8: error: expected ‘;’ before ‘{’ token …
Run Code Online (Sandbox Code Playgroud)

c++ curly-braces initializer-list c++11

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

简单if语句与普通if语句

在Java字节代码级别,简单的if语句(示例1)和普通的if语句(示例2)之间是否有任何区别:

例1:

if (cond) statement;
Run Code Online (Sandbox Code Playgroud)

例2:

if (cond) {
    statement;
}
Run Code Online (Sandbox Code Playgroud)

问题的背景是,我在"高性能"类中看到过,java.awt.Rectangle而且Point只看到没有花括号的变体.

是否有任何速度优势,或者只是代码风格?

java performance if-statement bytecode curly-braces

6
推荐指数
2
解决办法
511
查看次数

什么是JSDoc @type花括号?

JSDoc @type标记允许指定变量类型,例如/** @type {Number} */.然而,我也看到/** @type Number */没有花括号,它似乎同样有效.

使用JSDoc有一个带有和不带花括号的例子,但没有讨论它们的区别.在谷歌关闭编译文档意味着所有声明必须有大括号,但并没有规定他们不这样做会发生什么.

花括号重要吗?如果是这样,为什么?如果没有,我应该使用它们吗?

javascript syntax curly-braces jsdoc

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

使用花括号来隔离我想在C++中多次使用的变量

在下面的代码中,我有一个while语句用于确保输入字符串少于10个字符.我已经声明了一个bool被叫cont,我用它来告诉while循环在我的条件满足后停止.

#include "stdafx.h"
#include <iostream>
#include <string>

int main()
{
    using namespace std;

    cout << "Enter a string less than 10 characters long: ";

    string teststring;

    {
        bool cont(false);

        //if input is 10 or more characters, ask for input again until it is less
        while (!cont)
        {
            getline(cin, teststring);

            if (teststring.length() >= 10)
            {
                cout << "Too long, try again: ";
            }
            else
            {
                cout << "Thank you.\n\n";
                cont = true;
            }

        }
    }

    return 0; …
Run Code Online (Sandbox Code Playgroud)

c++ loops curly-braces while-loop

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

删除"if"语句的花括号是否有例外?

我是一名计算机科学专业的学生,​​不久前我们的教授向我们解释说,在C语言中,当只有一个语句时我们可以删除大括号:

if (a)
  do b
Run Code Online (Sandbox Code Playgroud)

但我们做不到这样的事情:

if(a)
  do b
  do c
Run Code Online (Sandbox Code Playgroud)

因为那会做不止一个陈述.

但它也告诉我们,删除花括号有一个例外,即使它只是一个语句,我们也做不到.我做了很多搜索,但我发现的唯一一件事就是我不能在do-while循环中做到这一点,但我们在讨论if语句,有什么帮助吗?

编辑:我们也在谈论嵌套的if语句,也许是关于那个?

c if-statement curly-braces nested-if

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

块的 C 语法背后的基本原理

我最近试图找出导致C 语言和同族其他语言中块(复合语句)使用大括号的原因。

认为像数组的方括号或括号来改变运算符优先级似乎来自用于这些事物的数学 符号,所以这对我来说是有意义的。分号也很有意义,它的作用是将相关的句子与独立的子句分开,它的作用与 C 中的类似。

但我找不到与花括号类似的东西:它们用于数学中的集合,并且在某种程度上相似的是它们在乐谱合奏五线谱)中的使用,其中它们用于指示所有五线谱上的音乐是同时播放(不完全相同的用法,但我认为它比它们在数学中的集合更接近)。

另外,我想知道 C 是否实际上是第一个引入这种块语法的语言,或者它只是普及了它?

c syntax curly-braces notation

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