由买买提看人间百态

topics

全部话题 - 话题: constexpr
(共0页)
v******y
发帖数: 84
1
来自主题: Programming版 - 问两个C++语法问题
第一个装逼通得过编译么?简直就是扯淡
constexpr隐含着const的意思,是implicitly indicates a const.
constexpr is an expression that can be evaluate into a constant,
during compiling when a variable is initiated.
比如
int x=20;
constexpr int y=x+1;
const X& foo() &
第二个&是要求foo是一个class的 method,foo这个function不会改变这个class fields
的值
比如
class X{
private:
int val;
...
const X & foo() &{
//you can not change X.val here
}
}
A*******e
发帖数: 2419
2
来自主题: Programming版 - 问两个C++语法问题
在别人程序里看到的。
constexpr const char* x = "hello";
这里面的constexpr const是什么意思?
const X& foo() & {
...
}
第二个&是什么意思?
C++进化忒快了。
m******t
发帖数: 1171
3
? : 和 if else的区别并不是这个。 他们都只evaluate一个分支。
他们的区别是:
? : 可以用在constexpr中,C++11的特性。
而if else不可以。
z*********n
发帖数: 1451
4

也放松一下,贴个以前写的编译时间计算int to Roman number的C++ metaprogramming
, 学生时在实验室天天就玩这种东西了:
class R2I {
const static int DIG;
public:
constexpr static char IN[] = "MCDXLVI"; ///This is the INPUT number;
const static int OUT;
};
template struct ID {};
template <> struct ID <'I'> { static const int I = 0; static const int V = 1
; };
template <> struct ID <'V'> { static const int I = 1; static const int V = 5
; };
template <> struct ID <'X'> { static const int I = 2; static const int V =
10... 阅读全帖
w***g
发帖数: 5958
5
来自主题: Programming版 - (zz)C++11新特性
1. nullptr和constexpr这两个关键字定义的一点美感也没有。形式上已经和Ritchie高
下立现了。要我说还不如把NULL引入成关键字来的好。这样实际上还是跟C兼容的。
2. 什么时候用auto什么时候不适合用或者不能用auto不是很直观。
除了上面两点吹毛求疵的问题以外,我觉得C++更容易写了。
t****t
发帖数: 6806
6
来自主题: Programming版 - (zz)C++11新特性
constexpr我也确实不是很喜欢, 感觉为优化而优化了, 还不如引入var-size array呢.
nullptr我倒觉得没什么, 从一致性的角度来说, NULL这样的大写习惯上是macro, 不合
适成为关键字.
auto我觉得没问题, 多写写就清楚了:)
w***g
发帖数: 5958
7
来自主题: Programming版 - (zz)C++11新特性
1. nullptr和constexpr这两个关键字定义的一点美感也没有。形式上已经和Ritchie高
下立现了。要我说还不如把NULL引入成关键字来的好。这样实际上还是跟C兼容的。
2. 什么时候用auto什么时候不适合用或者不能用auto不是很直观。
除了上面两点吹毛求疵的问题以外,我觉得C++更容易写了。
t****t
发帖数: 6806
8
来自主题: Programming版 - (zz)C++11新特性
constexpr我也确实不是很喜欢, 感觉为优化而优化了, 还不如引入var-size array呢.
nullptr我倒觉得没什么, 从一致性的角度来说, NULL这样的大写习惯上是macro, 不合
适成为关键字.
auto我觉得没问题, 多写写就清楚了:)
V9
发帖数: 143
9
来自主题: Programming版 - One c++ non-type template question
manybe constexpr can help
d******3
发帖数: 70
10
来自主题: Programming版 - Learn C++ 11 in 20 Minutes (视频)
20 minutes video that helps you get started with the latest C++ standard: C+
+ 11 standard.
Part I:
http://www.youtube.com/watch?v=U6mgsPqV32A&list=PLE28375D4AC946
Part II:
http://www.youtube.com/watch?v=Lt0ASrloGSE&list=PLE28375D4AC946
Table of Contents:
Initializer List
Uniform Initialization
Auto Type
foreach
nullptr
enum class
static assert
delegating constructor
constexpr
New string literals
Keyword final
Keyword delete
Keyword default (for default constructor)
Keyword override
Lambda Funct... 阅读全帖
b*******s
发帖数: 5216
11
来自主题: Programming版 - 关于c++的效率再给个例子
我换constexpr怎么样
这个总不是meta programming了吧
q****x
发帖数: 7404
12
来自主题: Programming版 - 大家觉得C++还有生命力吗?
要记的太多啦。比如big 3 => big 5,lambda的语法,constexpr vs const,等等。
为了向下兼容,只增不减。上一代标准就几百页,这次有没有翻番?要无限膨胀下去?
不能用奥多姆剃刀原则来设计吗?
A*******e
发帖数: 2419
13
来自主题: Programming版 - 问两个C++语法问题
constexpr和const不是重复了吗?虽然语义略有区别。
b*******s
发帖数: 5216
14
来自主题: Programming版 - 没觉得Java比Python和Perl有啥优点
Okay I will give you an example. Suppose you have already known something
about meta programming.
If I want to use F(1) F(1000) and F(10000) in my application. Maybe like
this,
constexpr int64_t val = F(1) + F(1000) + F(10000);
Do you think there any cache issue? No, obviously
And F(1) F(1000) F(10000) are in different cache lines in your solution.
Or you should design a complicated hash function.
We don't like runtime things. That's modern c++
P*******L
发帖数: 2637
15
来自主题: Programming版 - 给几个teacherwei代码的评审意见吧

推荐用 constexpr 定义常量
w***g
发帖数: 5958
16
来自主题: Programming版 - const int foo()啥意思?
没见过const这么用的。如果是constexpr,则函数会在编译时被求知。
(共0页)