我想问一个关于构造函数中的内存泄漏的问题.我们来考虑一个课程:
class Foo
{
public:
Foo(){ throw 500;}
};
Run Code Online (Sandbox Code Playgroud)
有什么区别
std::unique_ptr<Foo> l_ptr = std::make_unique<Foo>();
Run Code Online (Sandbox Code Playgroud)
和
std::unique_ptr<Foo> l_ptr;
l_ptr.reset(new Foo());
Run Code Online (Sandbox Code Playgroud)
在我看来,make_unique的解决方案应该保护我免受内存泄漏,但在这两种情况下我得到了相同的valgrind结果:
$ valgrind --leak-check=full ./a.out
==17611== Memcheck, a memory error detector
==17611== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17611== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==17611== Command: ./a.out
==17611==
terminate called after throwing an instance of 'int'
==17611==
==17611== Process terminating with default action of signal 6 (SIGABRT)
==17611== at 0x5407418: raise …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试从 Firebase 获取数据的异步 Redux 操作。我使用 jest 和 moxios 来模拟异步调用
动作类型.js
export const FETCH_ORDERS_START = 'FETCH_ORDERS_START'
export const FETCH_ORDERS_SUCCESS = 'FETCH_ORDERS_SUCCESS'
export const FETCH_ORDERS_FAILED = 'FETCH_ORDERS_FAILED'
Run Code Online (Sandbox Code Playgroud)
订单.js
import * as actionTypes from './actionTypes'
import axios from './../../axios-orders'
export const fetchOrdersSuccess = (orders) => {
return {
type: actionTypes.FETCH_ORDERS_SUCCESS,
orders: orders,
}
}
export const fetchOrdersFailed = (error) => {
return {
type: actionTypes.FETCH_ORDERS_FAILED,
error: error,
}
}
export const fetchOrdersStart = () => {
return {
type: actionTypes.FETCH_ORDERS_START,
}
}
export …Run Code Online (Sandbox Code Playgroud) 我正在编写一个简单的应用程序,单击按钮后,应该执行对 spotify API 的异步调用,并且当 promise 解决时,它应该更新组件的状态。我正在使用 React 钩子来管理组件中的状态。
在我的测试中,我模拟了 API 调用。
发现.jsx
export default class Spotify {
constructor(token) {
this.axiosInstance = axios.create({
baseURL: baseURL,
headers: buildHeaders(token),
});
}
async getUserInfo() {
const userInfo = await this.axiosInstance({
url: `/me`,
});
return userInfo.data
}
}
Run Code Online (Sandbox Code Playgroud)
Spotify模拟:
const getUserInfoMock = jest.fn();
const mock = jest.fn().mockImplementation(() => ({
getUserInfo: getUserInfoMock,
}));
export default mock;
Run Code Online (Sandbox Code Playgroud)
用户.jsx
const User = props => {
const [user, setUser] = useState(null);
const {token} = useContext(AuthContext);
const spotify = useMemo(() …Run Code Online (Sandbox Code Playgroud) 我正在使用linq从我的数据库中获取一些数据.当查询为空时我想抛出异常.
public class LinqDataBaseConnector : IDataBaseConnector
{
public LinqDatabaseDataContext dataContext;
public User getUser(string login, string password)
{
var query = (from c in dataContext.Users
where c.username == login && c.password == password
select c);
if (query.Any())
{
return query.First();
}
else
{
throw new NullReferenceException("Empty query!");
}
}
public HardwareConfiguration getHardwareConfiguration(int id)
{
var query = (from c in dataContext.HardwareConfigurations
where c.ID == id
select c);
if (query.Any())
{
return query.First();
}
else
{
throw new NullReferenceException("Empty query!");
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个列表
public class PolynomialCoefficients<T> : IEnumerable<T>
{
private List<T> coefficients;
public string ToString(string format)
{
StringBuilder polynomialString = new StringBuilder();
char separator = ':';
foreach(T coefficient in coefficients)
{
polynomialString.Append(String.Format("0.0000", coefficient.ToString()));
polynomialString.Append(separator);
}
polynomialString.Remove(polynomialString.Length - 1, 1);
return polynomialString.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
让我们说列表包含元素:1,2,3我想调用ToString("0.000")并得到输出:1.000:2.000:3.000但每次输出类似于0.000:0.000:0.000
c# ×2
reactjs ×2
unit-testing ×2
asynchronous ×1
axios ×1
c++ ×1
c++11 ×1
enzyme ×1
format ×1
javascript ×1
jestjs ×1
linq ×1
memory-leaks ×1
redux ×1
string ×1
unique-ptr ×1