V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yorTX9t  ›  全部回复第 1 页 / 共 2 页
回复总数  30
1  2  
2018-04-25 01:54:57 +08:00
回复了 chigco 创建的主题 问与答 c++ 提示 “ 数组元素类型不能是函数或抽象类类型 ”
因为声明 Element m_element[ nArraySize ]; 的时候,Element 的大小必须是编译期常量,抽象类明显不符合要求。

如果多态是必须的,数组也不想放弃,建议考虑下编译期多态,而不是运行期多态,也就是 CRTP。
我去,空格被吞了
C++er 路过,pythonic 的代码是这样么?

```
for num in range( 100000 ):
print( str(num).zfill(6) )
```
2018-02-01 02:14:30 +08:00
回复了 Cryse 创建的主题 程序员 准备家里整个廉价服务器,两个选择无法决断
敢问有人考虑过用 raspberrypi 或者 bananapi 之类的做家用服务器的么?
2018-01-12 04:39:25 +08:00
回复了 Annual 创建的主题 PHP 发一个认为自己代码很差很差的
你们拍黄片的都会写这么长的一行代码么?我是指最后一行
2018-01-12 04:36:51 +08:00
回复了 hardman 创建的主题 问与答 v 友学习 Linux 都用哪个版本
升级基本正常,除了 cuda

[URL=http://thumbsnap.com/D4470STJ][IMG]http://thumbsnap.com/t/D4470STJ.jpg[/IMG][/URL]
2017-09-27 22:34:17 +08:00
回复了 aron001 创建的主题 C 手撸了 lstm,gru,tanh-rnn, 求代码 review~
page not found
2017-09-27 22:33:16 +08:00
回复了 lrxiao 创建的主题 C MSVC 在接下来的 VS15.3 终于支持了 2-phase name lookup
三十多年的修修补补,相关代码怎么也得几十万行吧,能舍得扔掉也真不容易。
2017-09-27 22:29:34 +08:00
回复了 owenliang 创建的主题 C if you learn c++11, we are not friend anymore.
But I have been using c++17 for quite a long time......
C++ 可以,Java 不行

{
Student stu{};
//...
}
2017-09-13 00:45:20 +08:00
回复了 cooka 创建的主题 云计算 阿里云竟然在 V 站投入水军了🤔 ??
我的 id 是用密码生成器生成的,看起来奇怪很正常
2017-09-08 19:56:48 +08:00
回复了 t2doo 创建的主题 问与答 激动的周五来玩个游戏,请晒出公司为你准备的工作电脑配置
呃,CPU 是两个 E5-2650
2017-09-08 19:55:41 +08:00
回复了 t2doo 创建的主题 问与答 激动的周五来玩个游戏,请晒出公司为你准备的工作电脑配置
用四台,三台台式机外加一台 RMBP。
配置最好的台式机是这样的
CPU: E5-2650
内存: 128G
硬盘:...
显卡: 四块,Nvidia Tesla K40c + 3 X Nvidia Tesla K20c
自己打果汁或者果酱不行么?
2017-09-04 00:54:55 +08:00
回复了 scinart 创建的主题 C 求助,问一个 c++模板推导的问题。
@scinart 啊,上边的回复 at 错了人
2017-09-04 00:12:55 +08:00
回复了 scinart 创建的主题 C 求助,问一个 c++模板推导的问题。
@gnaggnoyil 我来说下我的理解吧。不一定正确,只供参考。

1. 在 template definition phase,也就是 two-phase name lookup 的 phase 1,编译器在处理 has_value_type_1<T>::value 和 has_value_type_2<T>::value 的时候,编译器寻找 non-dependent 的模板匹配,这时候 has_value_type_1<T> 和 has_value_type_2<T> 都被理解为从 false_type 里边继承的,因为 template <typename, typename = void> struct has_value_type_1 : false_type {} 不需要依赖任何模板参数。于是函数 template< typename T> bool f_1(T) { return has_value_type_1<T>::value; } 被理解为 template<typename T> bool f_1(T){ return has_value_type_1<T,void>::value; }; ; f_2(T) 也是如此,被理解为 has_value_type_2<T,void>::value;,因为编译器不能得知模板参数 T 的内部,因此后边的两个偏特化 template <typename T> struct has_value_type_1< T, typename type_sink< typename T::value_type >::type > : true_type {}; 和 template <typename T> struct has_value_type_2< T, typename T::value_type > : true_type {}; 都不会被处理。

2. 在 template instantiation phase,也就是 phase 2,编译器为 has_value_type_1<T,void> 寻找合适的匹配,这时候编译器看到了两个偏特化,一个写出来是 template< typename T = A > struct has_value_type_1<A,void>:true_type;,另一个写出来是 template< typename T = A > struct has_value_type_2<A,int>:true_type;。于是头一个被选中,替代 bool f_1(A) 中的那个 has_value_type_1<A,void>,于是为 true_type,而另外一个不变,还是 false type。

如果将主楼代码中的 template <typename> struct type_sink { typedef void type; }; 替换为 template <typename> struct type_sink { typedef int type; }; 那么所有的输出当为 false,因为偏特化时 has_value_type_1 也未被选中。
2017-09-03 23:39:25 +08:00
回复了 scinart 创建的主题 C 求助,问一个 c++模板推导的问题。
```
//template <typename, typename = void> struct has_value_type_2 : false_type {};
template <typename, typename = int> struct has_value_type_2 : false_type {};
```
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1022 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 19:49 · PVG 03:49 · LAX 11:49 · JFK 14:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.