V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Tony042  ›  全部回复第 13 页 / 共 39 页
回复总数  772
1 ... 9  10  11  12  13  14  15  16  17  18 ... 39  
2020-08-26 21:00:47 +08:00
回复了 Tony042 创建的主题 C++ clang, msvc 可以编译通过, gcc 不行
@wutiantong 额,这个不能这么改,这样改就扩大继承的 VariantChoice 的 Constructor 范围了,VariantChoice<T, Types>中的 T 必须是 parameter pack Types 中的一个类型,Variant 本质上是一个半自动的被赋值为 Types 中任意类型的变量,这就是为什么要用 using VariantChoice<Types, Types...>::operator=...; ,第二个 parameter pack 在尖括号里展开,第一个 parameter pack 在外面展开,继承 number=sizeof...(Types)个 constructor,本质上 Variant 继承 VariantChoice 的 constructor 再通过 VariantStorage 手动管理内存
2020-08-26 10:33:07 +08:00
回复了 Tony042 创建的主题 C++ clang, msvc 可以编译通过, gcc 不行
@secondwtq 这个没法删,删了之后就得手写 Variant 的 constructor 了,估计是 gcc 的 bug,看来 gcc bug 还是相对较多的
2020-08-26 10:04:58 +08:00
回复了 Tony042 创建的主题 C++ clang, msvc 可以编译通过, gcc 不行
@secondwtq 试了一下确实编译过去啦,估计是 gcc 对模板类继承范围查询出了偏差,谢谢指导~
2020-08-26 09:08:20 +08:00
回复了 hertzry 创建的主题 程序员 小白吐槽一下今天 C/C++装机历程
这边人多,请问有人知道同一份代码不同编译器有的可以编译过去,有的不能,原因是什么吗 代码链接 https://godbolt.org/z/eWhsne
2020-08-25 23:11:53 +08:00
回复了 hertzry 创建的主题 程序员 小白吐槽一下今天 C/C++装机历程
@Tony042 也不用命令行启动 VSCode
2020-08-25 23:10:12 +08:00
回复了 hertzry 创建的主题 程序员 小白吐槽一下今天 C/C++装机历程
这样子,Visual Studio + VSCode+VSCode C++插件 + CMake 插件,编译关系用 CMake 来写,用起来还是很舒服的,会直接产生 pdb 和 exe 文件,然后直接在 VSCode 调试就行
不知道 C 怎么做,C++内置了关键字 直接 alignas(4) uint_32 即可
2020-08-24 20:58:35 +08:00
回复了 mpb 创建的主题 职场话题 求问成都字节跳动和华为 Cloud Bu 哪个更适合应届生?
@keepchen 你好,请问下华为 Cloud BU 里面的计算事业线怎么样呢
2020-08-20 09:35:16 +08:00
回复了 ffLoveJava 创建的主题 问与答 十六进制怎么快速计算转成十进制
#pragma once
#include "../typelist/ctvalue.hpp"
#include <cassert>
#include <cstddef>

constexpr int toInt(char c)
{
if (c >= 'A' && c <= 'F')
{
return static_cast<int>(c) - static_cast<int>('A') + 10;
}
if (c >= 'a' && c <= 'f')
{
return static_cast<int>(c) - static_cast<int>('a') + 10;
}
assert(c >= '0' && c <= '9');
return static_cast<int>(c) - static_cast<int>('0');
};

template <std::size_t N>
constexpr int parseInt(char const (&arr)[N])
{
int base = 10;
int offset = 0;
if (N > 2 && arr[0] == '0')
{
switch (arr[1])
{
case 'x':
case 'X':
base = 16;
offset = 2;
break;
case 'b':
case 'B':
base = 2;
offset = 2;
break;
default:
base = 8;
offset = 1;
break;
}
}
int value = 0;
int multiplier = 1;
for (std::size_t i = 0; i != N - offset; ++i)
{
if ((arr[N - 1 - i] != '\'') && (arr[N - 1 - i] != '\0'))
{
value += toInt(arr[N - 1 - i]) * multiplier;
multiplier *= base;
}
}
return value;
}
今天刚用 C++ constexpr 实现了个进制转换
2020-08-19 11:27:24 +08:00
回复了 Tony042 创建的主题 C++ C++友元函数问题
@Wirbelwind 应该是编译器实现问题吧,我查了下 stl 源码,msvc 的方式是将 get 函数声明为友元函数,gcc 是声明友元类。 在这个 case 里面,由于每个 tuple 类的实现都声明了所有 get 函数为友元函数,其实按理说 private 不会影响 get 函数做 Derived->Base 转换的
2020-08-19 10:49:04 +08:00
回复了 Tony042 创建的主题 C++ C++友元函数问题
@codehz anyway 谢谢老哥的回复啊,基本上我的每个问题都是你帮我回答的,谢谢啦
2020-08-19 10:45:07 +08:00
回复了 Tony042 创建的主题 C++ C++友元函数问题
@codehz 同不知道发生了什么,友元函数不行,友元类却可以,gcc 这行为挺奇怪的。stl 里面的 get 函数就是通过 static_cast 获得 tuple 里元素的值。《 C++ templates 》这本书代码有点坑,好多地方都有小错误,或者不太稳定
2020-08-19 10:01:33 +08:00
回复了 Tony042 创建的主题 C++ C++友元函数问题
果然 C++的回答就是少啊,自顶一下,另外题中代码可以通过这个链接调试 https://godbolt.org/z/Wr4arz
2020-08-19 05:36:49 +08:00
回复了 Tony042 创建的主题 C++ C++友元函数问题
刚才又试了下,clang-10, MSVC 16.7.0 都可以编译通过,gcc-9, gcc-10 都编译不通过...
2020-08-16 09:17:37 +08:00
回复了 Hlianbobo 创建的主题 Python 下面这个代码求不定积分为什么结果不正确?
@Hlianbobo 这样子的,我做科学计算( LAMMPS)出来的一堆数据先要用另外一个专用软件的 Python 接口读取,然后做一些预处理,变成类似于表格的形式方便 Matlab 读取,然后具体的科学计算过程用 Matlab 进行计算,Python 主要负责文本字符串处理,当作胶水来用。Scipy 的问题主要有两点,一个是文档写的没有 Matlab 详细,Matlab 有的连 Ref 都给列出来了,另一个是 Matlab 接口比 Scipy 要统一很多,比如说我有个模型之前用 PatternSearch 搜索全局极值,之后改成 GA 或者 fmin 等算法,Matlab 基本上只要改个函数名字就好,参数类型,接口大致统一,太方便调试了,我用了之后就回不去了,但是 Matlab 有一个问题是,代码很容易写的很脏,不够简洁...
2020-08-16 07:51:33 +08:00
回复了 Hlianbobo 创建的主题 Python 下面这个代码求不定积分为什么结果不正确?
@Hlianbobo 真的,商业软件还是香,我之前一直用 Python 做科学计算,scipy 用着很别扭,现在代码一半 Python 一半 Matlab 好多了,现成的函数比自己写效率高多了
2020-08-16 07:50:00 +08:00
回复了 Hlianbobo 创建的主题 Python 下面这个代码求不定积分为什么结果不正确?
@Hlianbobo Python 符号库好像出名的只有 sympy,我觉得符号计算还是 Mathematica 吧
2020-08-16 03:45:19 +08:00
回复了 Hlianbobo 创建的主题 Python 下面这个代码求不定积分为什么结果不正确?
完成作业的话 wolframalpha 求积分会把每一部都列出来,简单的积分手算即可,复杂的数值积分 matlab 比 sympy 强多了,符号积分找 mathematica
2020-08-13 21:01:46 +08:00
回复了 Tony042 创建的主题 C++ 模板类内模板构造函数的重载问题
@ftfunjth 为什么要这样再 cast const 呢,相比第一种会有什么好处?
2020-08-12 23:58:12 +08:00
回复了 Tony042 创建的主题 C++ 模板类内模板构造函数的重载问题
@EggtartZ 我看的是 C++ templates 2nd edition. 作者写的挺好的,里面我有困惑的地方就发到 v2 上了
1 ... 9  10  11  12  13  14  15  16  17  18 ... 39  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2418 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 14:26 · PVG 22:26 · LAX 07:26 · JFK 10:26
Developed with CodeLauncher
♥ Do have faith in what you're doing.