我正在寻找一种方法来识别模板类定义中的基元类型.
我的意思是,有这个课:
template<class T>
class A{
void doWork(){
if(T isPrimitiveType())
doSomething();
else
doSomethingElse();
}
private:
T *t;
};
Run Code Online (Sandbox Code Playgroud)
有没有办法"实现"isPrimitiveType().
我在我的程序中制作了一个小内存泄漏查找程序,但我的方法是重载new和delete(以及new []和delete [])似乎没有做任何事情.
void* operator new (unsigned int size, const char* filename, int line)
{
void* ptr = new void[size];
memleakfinder.AddTrack(ptr,size,filename,line);
return ptr;
}
Run Code Online (Sandbox Code Playgroud)
我重载的方式new显示在上面的代码片段中.我想这是操作员返回void*的东西,但我不知道该怎么办.
为什么在Mac中编译C++总是创建*.dSYM目录?有没有办法禁用它?
在Java中,如果方法的输入参数无效,我们可以抛出一个IllegalArgumentException(类型为RuntimeException).在C++中,没有检查和未检查异常的概念.标准C++中是否有类似的异常可用于指示运行时异常?或者是否有一种不符合标准的共同风格,但每个人都在实践中遵循这样的情况?
或者,我应该创建自己的自定义异常并抛出它吗?
传统上,模板类型的名称只是一个大写字母:
template<class A, class B, class C>
class Foo {};
Run Code Online (Sandbox Code Playgroud)
但我犹豫不决,因为它是非描述性的,因此难以阅读.所以,这样的事情会不会更好:
template<class AtomT, class BioT, class ChemT>
class Foo {};
Run Code Online (Sandbox Code Playgroud)
我也倾向于认为以下不是一个坏主意:
template<class ATOM, class BIO, class CHEM>
class Foo {};
Run Code Online (Sandbox Code Playgroud)
它使它们脱颖而出(而且,它又是大写字母).你怎么看?
我想问题就是这一切,但是,如果有人关闭c ++控制台应用程序会发生什么?如上所示,单击顶角的"x".它会立即关闭吗?它会引发某种异常吗?是不确定的行为?
我需要实现对私有成员容器的只读访问.如果我返回一个常量引用,是否可以const_cast它并获得对该成员的完全访问权限?使用的技术是什么?
谢谢.
两者都应该在O(n log n)中运行,但一般排序比stable_sort快.实践中的性能差距有多大?你对此有一些经验吗?
我想排序大量大约20字节的结构.结果的稳定性在我的情况下会很好,但它不是必须的.目前底层容器是一个普通数组,也许稍后可以将其更改为std :: deque.
我在寻找编译使用C++程序最简单的方法SDL2和SDL_image与cmake的.
经过几个小时的搜索后,这是我最好的尝试:
的CMakeLists.txt
project(shooter-cmake2)
cmake_minimum_required(VERSION 2.8)
set(SOURCES
shooter.cpp
classes.cpp
utils.cpp
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
add_executable(${PROJECT_NAME} ${SOURCES})
INCLUDE(FindPkgConfig)
PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2_image REQUIRED sdl2_image)
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARY})
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
In function `loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SDL_Renderer*)':
undefined reference to `IMG_LoadTexture'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
这是函数调用:
#include "SDL.h"
#include "SDL_image.h"
SDL_Texture* loadTexture(const std::string &file, SDL_Renderer *ren){
SDL_Texture *texture = IMG_LoadTexture(ren, file.c_str());
texture != nullptr or die("LoadTexture");
return texture;
}
Run Code Online (Sandbox Code Playgroud)
我很绝望.请帮我!谢谢!:)
最近我的一位朋友在接受采访时遇到了这个问题.面试官问他是否有特殊字符$, @, |, ^, ~在c或c ++中有任何使用方法.
我知道它们|, ^ and ~分别用作Bitwise OR,XOR和Complement.
但我不知道是否@ and $有任何特殊含义.如果有,请举例说明可以应用的地方吗?