即使我有一台强大而快速的计算机(Pentium Dual Core 2.0和2Gb RAM),我总是在寻找轻量级软件,因此即使许多应用程序同时启动和运行,它也能快速运行.
在过去的几周里,我一直在逐渐迁移到Linux,并希望安装一个免费的轻量级但有用的IDE来编写C++和PHP程序.Sintax突出显示和代码完整提示是必备的.
所以,我想收到你们的一些建议.
目前我正在重写/扩展我的C++实用程序库,考虑新的C++ 11功能.其中一个新增功能是一个模板类,它可以在编译时提供一组数字的最大值.
template<typename T, T... Xs> class ConstMax
{
private:
template<typename... Ts> static constexpr T Max(Ts... xs);
template<typename Tx> static constexpr T Max(Tx x)
{
return x;
}
template<typename T1, typename T2, typename... Ts> static constexpr T Max(T1 x, T2 y, Ts... xs)
{
return y > x ? Max<T2, Ts...>(y, xs...) : Max<T1, Ts...>(x, xs...);
}
public:
static const T Value = Max(Xs...);
};
Run Code Online (Sandbox Code Playgroud)
此类的示例用法:
int max = ConstMax<int, 1, 8, 66, 32, 90, 12, 33>::Value;
Run Code Online (Sandbox Code Playgroud)
这里有另一个例子可能会让我更难以验证在编译期间是否实际评估了ConstMax <...> :: …
我已经开始学习C(所以,你知道..指针).
我有这个代码:
#include <stdio.h>
#include <string.h>
int main (int argc, char* argv[])
{
char c = 'c';
char* cptr = &c;
printf("c = %c\n", c);
printf("*cptr = %c\n", *cptr);
printf("c address = %p\n", &c);
}
Run Code Online (Sandbox Code Playgroud)
我的输出是:
c = c
*cptr = c
c address = 0x7fff0217096f
Run Code Online (Sandbox Code Playgroud)
当我将上面的十六进制转换为十进制时,我得到:140720994002157
我的问题:
1)这个十进制值是否代表内存地址?不是太大了吗?
2)如何将指针的值(表示c变量的地址)打印为小数?
当两个线程同时访问同一个变量并且至少有一个访问是写入时,就会发生数据争用.
https://isocpp.org/wiki/faq/cpp11-language-concurrency
// start with x==0 and y==0
if (x) y = 1; // Thread 1
if (y) x = 1; // Thread 2
Run Code Online (Sandbox Code Playgroud)
这里有问题吗?更确切地说,是否有数据竞争?(不,没有).
为什么原始文章声称这里没有数据竞争?
假设我有一个函数的两个重载
template <typename T>
void f(const T&) {
cout << "f(T&)" << endl;
}
template <typename T>
void f(const T*) {
cout << "f(T*)" << endl;
}
Run Code Online (Sandbox Code Playgroud)
为什么要f(new int)解决f(const T&)而不是f(const T*)?标准中的任何地方都谈到了这种反直觉的行为?
做的时候 v.erase(some_iterator);
实现是否足够聪明,不能进行任何重新分配/字节复制,因为我们只能更新大小?(与严格删除内部元素时不同.)
在通知中使用大图标时,会出现此错误,并且应用程序崩溃:
06-06 19:53:34.688 25207-25207/com.example.hadi.music E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.hadi.music, PID: 25207
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/graphics/drawable/Icon;
at com.example.hadi.music.service.MediaPlayerService.buildNotification(MediaPlayerService.java:90)
at com.example.hadi.music.service.MediaPlayerService.access$100(MediaPlayerService.java:25)
at com.example.hadi.music.service.MediaPlayerService$1.onPlay(MediaPlayerService.java:126)
at android.media.session.MediaSession$CallbackMessageHandler.handleMessage(MediaSession.java:1150)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.Icon" on path: DexPathList[[zip file "/data/app/com.example.hadi.music-2/base.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.hadi.music-2/split_lib_slice_7_apk.apk", zip …Run Code Online (Sandbox Code Playgroud) 以下C++代码标准是否兼容?
#include <iostream>
int main()
{
[](auto v){ std::cout << v << std::endl; }.operator()<int>(42);
}
Run Code Online (Sandbox Code Playgroud)
既铛++ 3.8.0和克++ 7.2.0 编译该代码细(编译器标志-std=c++14 -Wall -Wextra -Werror -pedantic-errors).
从类型<cstdint>(如例如int16_t,uint_fast64_t,int_least8_t)保证是typedefS为内建类型等中的一个short,unsigned long等等?
或者是允许使用非常规内置类型来实现固定宽度类型的实现?
我的计算机上有不同的C++编译器,每个编译器都有自己的libstdc ++.所以它们的大小不同.
-rwxr-xr-x. 1 root root 967K Mar 22 2017 libstdc++.so.6.0.13
-rwxr-xr-x. 1 root root 6.5M Aug 1 2017 libstdc++.so.6.0.20
-rwxr-xr-x. 1 root root 11M Aug 1 2017 libstdc++.so.6.0.21
-rwxr-xr-x. 1 root root 12M Jan 30 16:58 libstdc++.so.6.0.24
Run Code Online (Sandbox Code Playgroud)
我想知道为什么libstdc ++.so.6.0.13比其他人小得多,并且有什么方法可以减少其他人的大小.如果有人可以帮助我,我会很高兴的.